发明内容
本发明的实施例提供了一种MP3文件的信息写入方法和装置,以实现简单有效的在MP3文件中写入MP3文件的版权信息。
本发明的实施例提供一种MP3文件的信息写入方法,包括:
将MP3文件的版权信息转换为二进制码;
在所述MP3文件的各音频帧帧头中写入所述版权信息转换的二进制码;
当需要获取所述MP3文件中的所述版权信息时,读取所述MP3文件的各音频帧帧头中写入的二进制码,并根据所述二进制码获取所述MP3文件的写入信息;
所述在MP3文件的各音频帧帧头中写入所述版权信息转换的二进制码包括:
顺次读取所述MP3文件的各音频帧帧头;
将所述版权信息转换的二进制码逐一写入所述各音频帧帧头中配置的信息存储字段。
所述将MP3文件的版权信息转换为二进制码包括:
将所述MP3文件的版权信息首先转换为预设字符编码;
根据所述预设字符编码与二进制码的关系将所述预设字符编码转换为二进制码。
将所述版权信息转换的二进制码逐一写入所述各音频帧帧头中配置的信息存储字段之前,还包括:在所述音频帧帧头中配置的信息存储字段中写入所述版权信息的开始标识;
将所述版权信息转换的二进制码逐一写入所述各音频帧帧头中配置的信息存储字段之后,还包括:在所述音频帧帧头中配置的信息存储字段中写入所述版权信息的结束标识。
所述读取所述MP3文件的音频帧帧头中写入的二进制码具体为:
根据所述版权信息的开始标识获知所述版权信息转换的二进制码的开始音频帧帧头,顺次读取音频帧帧头中写入的二进制码;
根据所述版权信息的结束标识获知所述版权信息转换的二进制码的结束音频帧帧头,停止音频帧帧头中二进制码的读取。
所述开始标识和结束标识具体为“0000 0000”。
所述根据所述二进制码获取所述MP3文件的写入信息包括:
根据所述二进制码与预设字符编码的关系将所述二进制码转换为预设字 符编码;
将所述预设字符编码转换为所述MP3文件的写入信息。
所述预设字符编码具体为UTF-8字符编码。
所述字段具体为版权标志位。
所述MP3文件的版权信息转换的二进制码前,还可以加入所述预设字符编码的类型标识。
本发明的实施例提供一种MP3文件的信息写入装置,包括:
编码转换单元,用于将MP3文件的版权信息转换为二进制码;
信息写入单元,用于在所述MP3文件的各音频帧帧头中写入所述版权信息转换的二进制码;
信息读取单元,用于当需要获取所述MP3文件中的所述版权信息时,读取所述MP3文件的各音频帧帧头中写入的二进制码,并根据所述二进制码获取所述MP3文件的写入信息;
所述信息写入单元包括:
帧读取子单元,用于顺次读取所述MP3文件的各音频帧帧头;
字段写入子单元,用于将所述版权信息转换的二进制码逐一写入所述各音频帧帧头中配置的信息存储字段。
所述编码转换单元包括:
第一转换子单元,用于将所述MP3文件的版权信息首先转换为预设字符编码;
第二转换子单元,用于根据所述预设字符编码与二进制码的关系将所述预设字符编码转换为二进制码。
所述信息写入单元还用于:
将所述版权信息转换的二进制码逐一写入所述各音频帧帧头中配置的信息存储字段之前,在所述音频帧帧头中配置的信息存储字段中写入所述版权信息的开始标识;将所述版权信息转换的二进制码逐一写入所述各音频帧帧头中配置的信息存储字段之后,在所述音频帧帧头中配置的信息存储字段中 写入所述版权信息的结束标识。
所述信息读取单元具体用于:
根据所述版权信息的开始标识获知所述版权信息转换的二进制码的开始音频帧帧头,顺次读取音频帧帧头中写入的二进制码;
根据所述版权信息的结束标识获知所述版权信息转换的二进制码的结束音频帧帧头,停止音频帧帧头中二进制码的读取;
根据所述二进制码与预设字符编码的关系将所述二进制码转换为预设字符编码;
将所述预设字符编码转换为所述MP3文件的写入信息。
所述信息写入单元还用于:在所述MP3文件的版权信息转换的二进制码前,写入所述预设字符编码的类型标识。
与现有技术相比,本发明至少具有以下优点:
本发明中,将MP3文件的待写入信息转换为二进制码并写入MP3文件的音频帧帧头中,当需要获取MP3文件中的待写入信息时,通过读取MP3文件音频帧帧头中写入的二进制码获取待写入信息,从而可以将MP3文件的版权信息写入音频帧帧头,隐蔽性好同时实现过程简单。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例的核心思想是:在MP3文件的音频帧帧头中写入待写入信息转换成的二进制码,当需要获取MP3文件中的待写入信息时,读取MP3文件的音频帧帧头中写入的二进制码,通过转换该二进制码获取MP3文件的写入信息,隐蔽性好同时实现过程简单。
具体的,本发明实施例提供一种MP3文件的信息写入方法,如图1所示,包括以下步骤:
步骤101,将MP3文件的待写入信息转换为二进制码。
具体的,将MP3文件的待写入信息转换为二进制码包括:
将所述MP3文件的待写入信息转换为预设字符编码,例如UTF-8字符编码;
根据预设字符编码与二进制码的关系将上述转换的得到的预设字符编码转换为二进制码。
步骤102,在所述MP3文件的音频帧帧头中写入所述待写入信息转换的二进制码。
具体的,在MP3文件的音频帧帧头中写入所述待写入信息转换的二进制 码包括:
顺次读取所述MP3文件的音频帧帧头;
将所述待写入信息转换的二进制码逐一写入所述音频帧帧头中配置的信息存储字段。
步骤103,当需要获取所述MP3文件中的所述待写入信息时,读取所述MP3文件的音频帧帧头中写入的二进制码,并根据所述二进制码获取所述MP3文件的写入信息。
将所述待写入信息转换的二进制码逐一写入所述音频帧帧头中配置的信息存储字段之前,还包括:在所述音频帧帧头中配置的信息存储字段中写入所述待写入信息的开始标识;
将所述待写入信息转换的二进制码逐一写入所述音频帧帧头中配置的信息存储字段之后,还包括:在所述音频帧帧头中配置的信息存储字段中写入所述待写入信息的结束标识。
所述读取所述MP3文件的音频帧帧头中写入的二进制码具体为:
根据所述待写入信息的开始标识获知所述待写入信息转换的二进制码的开始音频帧帧头,顺次读取音频帧帧头中写入的二进制码;
根据所述待写入信息的结束标识获知所述待写入信息转换的二进制码的结束音频帧帧头,停止音频帧帧头中二进制码的读取。
所述开始标识和结束标识具体为“0000 0000”。
所述根据所述二进制码获取所述MP3文件的写入信息包括:
根据所述二进制码与预设字符编码的关系将所述二进制码转换为预设字符编码;
将所述预设字符编码转换为所述MP3文件的写入信息。
所述预设字符编码具体为UTF-8字符编码。
所述字段具体为版权标志位。
所述MP3文件的待写入信息转换的二进制码前,还可以加入所述预设字符编码的类型标识。
通过采用本发明的实施例提供的方法,将MP3文件的待写入信息转换为 二进制码并写入MP3文件的音频帧帧头中,当需要获取MP3文件中的待写入信息时,通过读取MP3文件音频帧帧头中写入的二进制码获取待写入信息,从而可以将MP3文件的版权信息写入音频帧帧头,隐蔽性好同时实现过程简单。
下面结合具体实施例详细介绍本发明提供的MP3文件的信息写入方法。首先介绍MP3文件的结构,如图2所示,MP3文件包括ID3标签与音频数据。
其中,ID3标签即歌曲信息,包括ID3信息版本1.x和ID3信息版本2.x;ID3信息版本1.x的ID3标签信息在MP3文件的末尾128字节,以TAG三个字符开头,后面跟上歌曲信息;ID3信息版本2.x一般位于MP3文件的开头,可以存储MP3文件的歌词、该专辑的图片等大容量的信息。
音频数据由一系列音频帧组成,音频帧的数量由MP3文件的大小以及每一帧的长度,即帧长决定。每一音频帧的帧长可能固定,也可能不固定,由位率bitrate决定。每一音频帧包括帧头和实际音频数据两部分,帧头记录了MP3的位率、采样率、版本等信息,每个帧之间相互独立。帧头后面是可变长度的附加信息,对于标准的MP3文件来说,其长度是32字节,紧接其后的是压缩的声音数据,当解码器读到此处时就进行解码了。
具体的,音频帧帧头中包括的多个字段为:
同步信息,所有11位均为1,第1字节恒为FF;
版本,长度为2位,00定义为MPEG 2.5版本,01未定义,10定义为MPEG 2版本,11定义为MPEG 1版本;
层,长度为2位,00未定义,01定义为Layer 3,10定义为Layer 2,11定义为Layer 1;
CRC校验,长度为1位,0定义为校验,1定义为不校验;
位率,长度为4位,表示取样率,单位是kbps,例如采用MPEG-1 Layer3,64kbps时,位率的值为0101。具体的,位率的取值可以为0000、0001、0010、0011、0100、0101、0110、0111等共16种可能,分别对应不同的版本和不同的取样率值;
采样频率,长度为2位,对于MPEG-1,00定义为44.1kHz,01定义为48kHz,10定义为32kHz,11未定义;对于MPEG-2,00定义为22.05kHz,01定义为24kHz,10定义为16kHz,11未定义;对于MPEG-2.5,00定义为11.025kHz,01定义为12kHz,10定义为8kHz,11未定义;
帧长调节,长度为1位,用来调整文件头长度,0定义为无需调整,1定义为调整;
保留字,长度为1位,没有使用;
声道模式,长度为2位,表示声道,00定义为立体声,01定义为Joint Stereo,10定义为双声道,11定义为单声道;
扩充模式,长度为2位,当声道模式为01时才使用,其对应关系如表1所示:
表1
Value |
强度立体声 |
MS立体声 |
00 |
off |
off |
01 |
on |
off |
10 |
off |
on |
11 |
on |
on |
版权,长度为1位,表示文件是否合法,0定义为不合法,1定义为合法;
原版标志,长度为2位,表示文件是否为原版,0定义为非原版,1定义为原版;
强调方式,长度为2位,用于声音经降噪压缩后再补偿的分类,很少用到,今后也可能不会用。其中,00未定义,01定义为50/15ms,10定义为保留,11定义为CCITT J.17。
从图2以及上述对音频帧帧头中各字段的分析可以看到,每个音频帧的帧头都含有1位长的用于存储版权信息的版权标志位,且这一位可以是二进制的“1”或者“0”。考虑到对于一个MP3文件,音频帧的数量是非常大的, 因此,可以通过使用音频帧帧头中的二进制版权标志位来存储版权信息,将版权信息转换为二进制码后存储在音频帧的版权标志位中。当然,除了版权标志位以外,音频帧帧头中的其他字段,例如具有空闲空间保留字等字段也可以作为选择的对象用于存储版权信息。
具体的,本发明的实施例提供的MP3文件的信息写入方法如图3所示,包括以下步骤:
步骤301,将MP3文件的待写入信息转换为预设的字符编码。
其中,预设的字符编码以UTF-8字符编码为例,还可以为其他的字符编码形式,例如ASCII、UTF-16等;MP3文件的待写入信息具体为版权信息,也可以是其他需要写入MP3文件且应当具备一定隐蔽性的文件信息。
本发明的实施例中,首先将MP3文件的待写入信息转换为UTF-8字符编码,MP3文件的待写入性信息以版权信息“QQ音乐版权所有”为例。则首先“QQ音乐版权所有”转换为UTF-8字符编码,其转换结果为“EFBBBF5151E99FB3E4B990E78988E69D83E68980E69C89”。
步骤302,根据预设字符编码与二进制码的关系将MP3文件的待写入信息转换的预设字符编码转换为二进制码。
MP3文件的待写入信息仍然以上述“QQ音乐版权所有”为例,则将UTF-8字符编码格式的“QQ音乐版权所有”转换成二进制的结果为“1110111110111011101111110101000101010001111010011001111110110011111001001011100110010000111001111000100110001000111001101001110110000011111001101000100110000000111001101001110010001001”。上述“QQ音乐版权所有”转换成的二进制码的码数与MP3文件的音频帧的帧数相比,只是帧数的一小部分,例如通常一段1分钟的MP3文件包括的音频帧的帧数大约是2400帧,远大于版权信息转换后的二进制码写入MP3文件所需要的音频帧的数量,远大于版权信息转换后的二进制码写入MP3文件所需要的音频帧的数量。
步骤303,顺序读取MP3文件的音频帧帧头,依次获取相应的版权标志 位。
MP3文件中音频帧按照编码时的顺序排列,且在读取每一音频帧时,读取设备首先读取该帧的帧头中存储的信息,获取该帧的版权标识位。
步骤304,将所述待写入信息转换的二进制码逐一写入所述顺次读取的音频帧帧头中的版权标志位。
根据步骤303中读取的版权标识位,信息写入设备将版权信息转换后的二进制码逐一写入读取的版权标识位。
步骤305,当需要获取MP3文件中的待写入信息时,顺序读取MP3文件的音频帧帧头中写入的二进制码,并根据所述二进制码获取所述MP3文件的写入信息。
通过采用本发明的实施例提供的方法,将MP3文件的待写入信息转换为二进制码并写入MP3文件的音频帧帧头中,当需要获取MP3文件中的待写入信息时,通过读取MP3文件音频帧帧头中写入的二进制码获取待写入信息,从而可以将MP3文件的版权信息写入音频帧帧头,隐蔽性好同时实现过程简单。
本发明的实施例中,MP3文件的写入信息以版权信息为例,版权信息可以通过上述UTF-8字符编码转换为二进制码,也可以通过其他字符编码进行格式转换,例如ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)、UTF(Unicode Translation Format,统一码)-16等字符编码。
为了能够使解码方能够准确解码获得MP3文件的版权信息,本实施例中将预设字符编码的标志转换为二进制码,在版权信息之前写入MP3文件的帧头版权标识位,从而使解码方能够首先获知该字符编码的格式,方便解码方顺利解码获得MP3文件的版权信息,其中,字符编码以UTF-8字符编码为例。
具体如图4所示,MP3文件的信息写入方法包括以下步骤:
步骤401,将MP3文件的版权信息转换为UTF-8字符编码。
步骤402,根据UTF-8字符编码与二进制码的关系将MP3文件的待写入 信息转换的预设字符编码转换为二进制码,并将UTF-8字符编码的标志转换为二进制码。
步骤403,顺序读取MP3文件的音频帧帧头,依次获取相应的版权标志位,并写入转换后的MP3文件版权信息以及UTF-8字符编码的标志。
步骤404,当需要获取MP3文件中的版权信息时,顺序读取MP3文件的音频帧帧头中写入的二进制码,首先获知该二进制码在编码时使用了UTF-8字符编码,选择UTF-8字符编码或者与其相应的字符编码解码二进制码的MP3文件版权信息。
通过采用本发明的实施例提供的方法,将MP3文件的版权信息转换为二进制码并写入MP3文件的音频帧帧头中,当需要获取MP3文件中的版权信息时,通过读取MP3文件音频帧帧头中写入的二进制码获取该版权信息,从而可以将MP3文件的版权信息写入音频帧帧头,隐蔽性好同时实现过程简单;同时,本发明的实施例中,将预设字符编码的标志在版权信息之前写入MP3文件的帧头版权标识位,从而使解码方能够首先获知该字符编码的格式,方便解码方根据该预设字符编码顺利解码获得MP3文件的版权信息
本发明的实施例中,MP3文件的写入信息以版权信息为例,由于MP3文件中音频帧的数量远大于版权信息转换后的二进制码的数量,所以为了方便解码方获知解码开始以及结束的位置,本发明的实施例中在版权信息之前和之后分别添加开始标志和结束标志;其中,字符编码以UTF-8字符编码为例。
如图5所示,MP3文件的信息写入方法包括以下步骤:
步骤501,配置MP3文件的版权信息的开始标志和结束标志。
该开始标志和结束标志的类型可以根据实际需要灵活设置,本发明的实施例中以“0000 0000”表示开始标志和结束标志。
步骤502,将MP3文件的版权信息转换为UTF-8字符编码,并根据UTF-8字符编码与二进制码的关系将UTF-8字符编码转换为二进制码。
步骤503,顺序读取MP3文件的音频帧帧头,依次获取相应的版权标志位,首先写入“0000 0000”作为版权信息的开始标志。
步骤504,在“00000000”之后写入转换后的MP3文件版权信息。
步骤505,MP3文件版权信息写入完毕时,写入“00000000”作为版权信息的开始标志。
步骤506,当需要获取MP3文件中的版权信息时,顺序读取MP3文件的音频帧帧头中写入的二进制码,第一次读取到“00000000”时,获知以下为版权信息,根据实际需要可以进行灵活设置以下二进制码的读取以及存储方式等,当第二次读取到“00000000”时,获知版权信息读取完毕,停止MP3文件中二进制码的读取。
通过采用本发明的实施例提供的方法,将MP3文件的版权信息转换为二进制码并写入MP3文件的音频帧帧头中,当需要获取MP3文件中的版权信息时,通过读取MP3文件音频帧帧头中写入的二进制码获取该版权信息,从而可以将MP3文件的版权信息写入音频帧帧头,隐蔽性好同时实现过程简单;同时,在写入的版权信息之前和之后分别添加开始标志和结束标志,方便解码方获知解码开始以及结束的位置。
本发明的实施例提供一种MP3文件的信息写入装置,如图6所示,包括:
编码转换单元11,用于将MP3文件的待写入信息转换为二进制码;
信息写入单元12,用于在所述MP3文件的音频帧帧头中写入所述待写入信息转换的二进制码;
信息读取单元13,用于当需要获取所述MP3文件中的所述待写入信息时,读取所述MP3文件的音频帧帧头中写入的二进制码,并根据所述二进制码获取所述MP3文件的写入信息。
其中,如图7所示,所述编码转换单元11包括:
第一转换子单元111,用于将所述MP3文件的待写入信息首先转换为预设字符编码;
第二转换子单元112,用于根据所述预设字符编码与二进制码的关系将所述预设字符编码转换为二进制码。
所述信息写入单元12包括:
帧读取子单元121,用于顺次读取所述MP3文件的音频帧帧头;
字段写入子单元122,用于将所述待写入信息转换的二进制码逐一写入所述音频帧帧头中配置的信息存储字段。
所述信息写入单元12还用于:
将所述待写入信息转换的二进制码逐一写入所述音频帧帧头中配置的信息存储字段之前,在所述音频帧帧头中配置的信息存储字段中写入所述待写入信息的开始标识;将所述待写入信息转换的二进制码逐一写入所述音频帧帧头中配置的信息存储字段之后,在所述音频帧帧头中配置的信息存储字段中写入所述待写入信息的结束标识。
所述信息读取单元13具体用于:
根据所述待写入信息的开始标识获知所述待写入信息转换的二进制码的开始音频帧帧头,顺次读取音频帧帧头中写入的二进制码;
根据所述待写入信息的结束标识获知所述待写入信息转换的二进制码的结束音频帧帧头,停止音频帧帧头中二进制码的读取;
根据所述二进制码与预设字符编码的关系将所述二进制码转换为预设字符编码;
将所述预设字符编码转换为所述MP3文件的写入信息。
所述信息写入单元13还用于:在所述MP3文件的待写入信息转换的二进制码前,写入所述预设字符编码的类型标识。
通过采用本发明的实施例提供的装置,将MP3文件的待写入信息转换为二进制码并写入MP3文件的音频帧帧头中,当需要获取MP3文件中的待写入信息时,通过读取MP3文件音频帧帧头中写入的二进制码获取待写入信息,从而可以将MP3文件的版权信息写入音频帧帧头,隐蔽性好同时实现过程简单。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技 术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。