用cat加入mp3文件.这件黑色巫术是什么?

sle*_*ica 22 mp3

我的一个朋友刚刚使用普通的cat连接两个mp3文件,...

cat file1.mp3 file2.mp3 > out.mp3
Run Code Online (Sandbox Code Playgroud)

...并且生成的文件完全可重现,播放一首歌然后播放下一首歌.

这个黑魔法是什么?标题,元数据怎么了?这怎么办?持续时间甚至可以正确显示.

Sim*_*han 10

MP3文件只不过是原始的MPEG2-Layer 3(音频)流数据,没有文件级头结构,例如持续时间,原始源,编码信息.MP3流由以同步标记FF Fx开头的块组成,因此任意数据(如ID3标签)可放置在任何位置,不会影响音频.如果ID3标签没有列出此信息,或者对文件进行全面扫描以准确计算,则玩家可以从比特率和文件大小猜测持续时间.


sar*_*old 9

不要忘记玩家通常准备处理可变比特率编码,因此无论如何每个帧都有可能具有不同的比特率.

至于元数据,这是一个奇怪的鸭子; 即使来自两个轨道的id3标签都将包含在新文件中,大多数玩家只会在文件末尾寻找标签以显示给用户,并且只是跳过文件中间的嵌入式标签作为已知的"非音乐"内容.有些人可能会玩垃圾或崩溃,但我怀疑如果他们那么脆弱他们会受欢迎.

请注意,mp3标头不会编码有关整体文件大小的任何信息 - 这些都是在运行时计算的.(也许通过魔术.)

当我试图通过收听流媒体广播电台来学习德语时,我常常dd通过猜测我想要开始和停止剪切的轨道距离来分割巨型流......不优雅,但没有重新编码,而我的球员处理得很好.