首页 > 其他分享 >浅析LRC歌词文件

浅析LRC歌词文件

时间:2023-06-24 11:11:06浏览次数:67  
标签:文件 LRC 标签 歌词 00 格式 浅析

浅析LRC歌词文件

 

[时间:2018-12] [状态:Open]
[关键词:字幕,LRC,歌词,lyric,文件格式]

0 引言

几年前(2010年左右),网络音乐流行与免费的时代,网上有大量的mp3,使用比较常见的播放器,比如酷狗、酷我、千千静听等,下载mp3时总会附带下载一个同名但以lrc为后缀的文本文件,在早几年你可能还会遇到当时iPod的前身mp3播放器。这个lrc文件的格式就是本文的主题。

lrc是英文lyric(歌词)的缩写,被用做歌词文件的扩展名。以lrc为扩展名的歌词文件可以在各类数码播放器中同步显示。大部分MP3显示歌词的方法使用的是lrc格式的歌词文件,也是当前网络上最流行的一种歌词格式。

本文的主要内容将包括:

  1. LRC文件格式
  2. 音乐播放器之歌词播放
  3. ffplay中渲染歌词

1 LRC文件格式

LRC文件是一种基于文本的格式,和外挂的字幕流(subtitle)类似。通常有三种格式:

1.1 简装版

这是最常见的一种LRC格式。该格式通常显示一整行歌词。
LRC中有两类元素:一种是时间标签+歌词,一种是ID标签。
时间标签的格式是[mm:ss.xx],其中mm是分钟数,ss是秒数,xx是10ms数(注意这里都是两位数,超出可能会被认为是格式错误)。
我们在很多歌词文件中看到的格式如下:

[00:25.44]自从你离开我
[00:31.14]我不知道这些心里话还能向谁说
[00:40.12]就像是童话 王国里走来的人
[00:47.80]在我的世界 悄悄的走近又悄悄的走远
[01:02.81]你是黑暗之中唯一的星光

ID标签通常出现在歌词行之前,有些播放器会忽略ID标签,不做任何解析。通常的支持的ID如下:

[al:专辑名]
[ar:歌手名]
[au:歌词作者-作曲家]
[by:此LRC文件的创建者]
[offset:+/- 时间补偿值,以毫秒为单位,正值表示加快,负值表示延后] 
[re:创建此LRC文件的播放器或编辑器]
[ti:歌词(歌曲)的标题]
[ve:程序的版本]

举个例子

[ti:最美的意外]
[ar:林凡]
[al:眼泪流回去]
[by:tocy]
[offset:0]

1.2 扩展简装版

这个版本仅在Walasoft的Walaoke(一个卡啦OK媒体播放器)上可用。此版本可使用以下标签设置歌词的性别:M: 男性, F: 女性, D: 合唱。

例如:

[00:12.00]只要有你
[00:17.20]F: 谁能告诉我,有没有这样的笔
[00:21.10]M: 如果是这样,我可以安慰自己
[00:24.00](...背景音乐...)
[00:28.25]D: 生命中只要有你,什么都变了可以
[00:29.02]所有永恒承诺

我们假设男性为蓝色,女性为红色,合唱为粉色。 第一行使用默认色(蓝色),因为没有找到标签。第二行歌词以红色开始,因为找到了F:。 第三行歌词以蓝色开始,因为找到了M:。 第四行歌词以蓝色开始,因为没有找到标签。 第五行歌词以粉色开始,因为找到了D:。 第六行歌词与第五行相同,为粉色,因为没有找到标签。

 

 

原文: 浅析LRC歌词文件 - Tocy - 博客园 (cnblogs.com)

 

标签:文件,LRC,标签,歌词,00,格式,浅析
From: https://www.cnblogs.com/jiftle/p/17500836.html

相关文章

  • 浅析GeoServer CVE-2023-25157 SQL注入
    简介GeoServer是一个开源的地图服务器,它是遵循OpenGISWeb服务器规范的J2EE实现,通过它可以方便的将地图数据发布为地图服务,实现地理空间数据在用户之间的共享。影响版本geoserver<2.18.72.19.0<=geoserver<2.19.72.20.0<=geoserver<2.20.72.21.0<=geoserver<2.21.42.22.0<=......
  • 浅析容器运行时
    1、概述首先要明确一个知识点就是容器本质上就是一个特殊的进程,通过Namespace实现资源(网络、文件系统等)隔离,通过Cgroups实现资源(CPU、内存)限制,让我们使用起来就感觉像在操作虚拟机一样,但其和虚拟机有本质上的区别,那就是容器和宿主机是共享同一个内核的。为了将我们的应用进程......
  • 浅析景区慢直播的需求与基于视频技术的解决方案
    一、行业背景从春节到“五一”假期,旅游市场高开稳走,复苏持续提速。“慢直播”是一种特别的直播形式,没有主持人,也没有绚丽的镜头切换以及精美的后期制作,只用固定机位拍摄来更加真实地展现事件现场,以很低的制作成本、“无添加”的真实画面呈现给观众,其独特的真实性受到很多受众群体......
  • 【UEC++】UE引擎程序设计浅析
    一虚幻引擎C++编程                                        未完待续.........
  • 浅析景区慢直播的需求与基于视频技术的解决方案
    一、行业背景从春节到“五一”假期,旅游市场高开稳走,复苏持续提速。“慢直播”是一种特别的直播形式,没有主持人,也没有绚丽的镜头切换以及精美的后期制作,只用固定机位拍摄来更加真实地展现事件现场,以很低的制作成本、“无添加”的真实画面呈现给观众,其独特的真实性受到很多受众群体的......
  • 浅析布隆过滤器
    最后更新时间2021-10-05.布隆过滤器(BloomFilter)是1970年由布隆提出的。它可以检索一个元素是否存在于集合中。它的优点是空间效率高,查询时间极快,缺点是有一定的误判率,而且删除困难。1.背景编程中,经常会有判断一个元素是否存在一个集合中:网络爬虫程序:判断一个地址......
  • 浅析开源容器标准——OCI
    1、导语容器技术火起来了以后,Docker的容器镜像和容器运行时已然成为行业的标准。此后,为了推进容器生态的健康发展。在Linux基金会的主导下,Docker和各大云厂商Google,Amazon,CloudFoundary,Microsoft积极响应于2015年成立了"OpenContainerInitiative",旨在主导容器的生态发......
  • 浅析GPU架构与异构计算CUDA
      下图有几个重点的元素,也是我们下文重点要阐述的概念,绿色代表的是computationalunits(可计算单元)或者称之为cores(核心),橙色代表memories(内存),黄色代表的是controlunits(控制单元)。  因此想要理解GPU的底层核心构成,就必须明确这几个元素的作用,下文会逐一讲解每个元素的......
  • Android Framework层——App启动过程浅析
    1.关于Android系统的启动系统的启动过程非常复杂,这里只是简单的了解。先上谷歌提供的架构分层图⬇**引导程序BootLoader进行初始化Linux内核->启动init进程->init进程fork出zygote进程(处于c++framework层)->zygote进程fork出system_server进程(处于javaframework层)**system_ser......
  • 【Linux交换分区】 交换分区格式浅析
    完成本文,使用了两个工具 1.strace 2.googlecodesearch. ----swap分区有一个大小为PAGE_SIZE的页面,称为signature页,上面记录swap分区的基本信息。staticstructswap_header_v1{charbootbits[1024];/*Spacefordisklabeletc.*/unsig......