web-dev-qa-db-ja.com

2つのロスレスオーディオファイルを比較する方法は?

FLACファイルにも変換されるM4Aファイルがあります。変換がロスレスであるかどうか、つまり、M4Aからpcmへの出力がFLACデコードからの出力とまったく同じであるかどうかを確認したいと思います。

FFmpegまたはLibavを使用して「生の」出力を生成し、それらを比較する方法があると思いますか?

1
Determinant

両方をWAVに変換して、チェックサムを比較してみます。

ffmpeg -i file1.m4a file1.wav
ffmpeg -i file2.flac file2.wav
md5sum file1.wav
md5sum file2.wav
rm file?.wav

生成されたmd5を比較します。それらが一致する場合、おめでとうございます!ファイルには同じデータが含まれています。それらが一致しない場合は、これらのコマンドの出力をここに投稿してください。潜在的にビットレートの違いか何かがあります(あるべきではありません...しかしあるかもしれません、私は知りません)。

ffmpegsは、比較的大きな中間ファイルを生成することに注意してください。

3

md5 muxer ffmpegで、中間ファイルを必要とせずに、すべての入力オーディオ(およびビデオ)フレームのMD5ハッシュを計算して出力します。この例では、flacはmp3から作成されました(通常、非可逆から可逆への手順は推奨されませんが、これは単なるデモンストレーションです)。

$ ffmpeg -i left_right.mp3 -map 0:a -f md5 - 2>/dev/null
MD5=a34bfd9245ad6d69eddcb92035219044

$ ffmpeg -i left_right.flac -map 0:a -f md5 - 2>/dev/null
MD5=a34bfd9245ad6d69eddcb92035219044

framemd5 muxer 各オーディオ(およびビデオ)パケットのMD5ハッシュを計算して出力します。

framemd5 Intro and HowTo も参照してください。

11
llogan