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 …