avconv の生成により持続時間が間違ったファイルが生成される

avconv の生成により持続時間が間違ったファイルが生成される

次のコマンドを使用してflacで可変速度mp3を作成しようとしています。

avconv -i t.flac -id3v2_version 3 -vn -acodec libmp3lame -aq 0 t.mp3

avconvとmediainfoはどちらも最終的なmp3の再生時間を2分40秒で正確に表示しますが、私が使ってみたすべてのmp3プレーヤー(clementine、juk、amarok)では曲の長さが21分15秒と言われています。 clementineとamarokを使ってファイルに関する詳細を見てみると、ビットレートは32kbpsであると考えていましたが、avconvとmediainfoは(正確に)全体のビットレートを255kbpsとリストしました。 (255/32)*2.66 = 21.20 なので、体感ビットレートが問題なのは確かなのですが、どのように解決すべきかわかりません。

楽しみにして、以下を使って固定ビットレートファイルを作成してみました。

avconv -i t.flac -id3v2_version 3 -vn -acodec libmp3lame -ab 320k u.mp3

これも同じ問題があります。奇妙なことに、ビットレートが指定されているにもかかわらず、mediainfoはまだビットレートが可変であると報告し、mp3プレーヤーにも持続時間に関する同じ一般的な問題があります。

この問題をどのように解決できますか?

ベストアンサー1

一定のビットレートの場合、修正は次のトピックで説明されます。libmp3lameを使用してCBRを取得する方法:avconv 出力をファイルにパイプします。

avconv -i test_orig.mp3 -b:a 128k -f mp3 - >test_ffmpeg_cbr.mp3

これにより、avconvはCBRに良いmp3ヘッダーを使用します。

他の方法:結果のmp3を扱う(ソースデータが利用できなくなったときに便利です):

avconv -i faulty_mp3 -vn -c:a copy -ss 0:0:0 repaired_mp3

おすすめ記事