ogg vorbis文件的无损串联
我有几个ogg vorbis文件,所有文件的编码属性都与我想连接到一个文件中的属性完全相同。 我知道ogg vorbis格式支持多个文件的简单串联,例如: $ cat file1.ogg file2.ogg > output.ogg 但是可悲的是,并不是所有播放器都能理解这样创建的文件,例如我的移动音频播放器,而我会避免购买新的文件。其他不了解它的程序是gstreamer。如果输入的ogg文件恰好都具有相同的流ID,则该方法也不起作用。 另外,由于我想丢弃原始文件而只保留串联的版本,因此我希望将串联做到无损,就像cat解决方案一样。 我还希望避免将文件串联为无格式(例如flac),因为这会不必要地增加文件大小。如果可以,那么我可以保留原始的ogg文件,并使用更少的空间。 似乎ffmpeg有时可以使用concat demuxer来做到这一点: $ cat inputs.txt file 'in1.ogg' file 'in2.ogg' $ ffmpeg -f concat -i inputs.txt -c copy out.ogg 如果查看输入文件的原始hexdump,则可以找到输出文件中确切表示的vorbis数据包。所以我想真的没有重新编码发生。 但这似乎不适用于所有输入文件。有时(不确定是什么触发了这一点),ffmpeg会给出警告: Non-monotonous DTS in output stream 0:0; previous: 5011328, current: 5011200; changing to 5011329. This may result in …