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

答え2

lame直接使用すると、どの可変ビットレートメカニズムを選択しても(lame提供--abr--vbr-oldおよび)--vbr-new同じことが起こります。

だからこれはMP3形式や不都合なエンコーダの限界のようです。このようなプレーヤーは、mplayerこれまでに経験した平均ビットレートで全長を推測しているようです。

私が試したファイルは30分を表示し始め、10秒後に実際の8:08に近い8:15に落ちました。

今まではうまく再生されるので修正する必要はないようです。ハードウェアプレーヤーがそれを処理できない場合は、固定ビットレートに切り替える必要があります。または、プレーヤーが可変ビットレート(OGG / Vorbis?)をサポートする他のフォーマットをサポートしている場合は、まったく異なるフォーマットを使用する必要があります。

答え3

avconvにこの問題があることを確認できますが、いいえ絶頂!私のLinux Mint 14 Nadiaで

avconv パスの場合、クイック修正は次を使用することです。修理する最終的なmp3ファイルは次のようになります。vbrfix -always -makevbr -lameinfo imput.mp3 output.mp3

関連情報