
動画ファイルがありますvideo.mp4
。長さは18分23秒です。音声のみこのビデオから、ビデオのオーディオから可能な限り最高品質の MP3 を作成します。
Google で調べてみると、次のコマンドにたどり着きました:ffmpeg -i video.mp4 audio.mp3
問題は、このコマンドがダブルス出力されるオーディオの長さ (継続時間は 36 分 46 秒)。オーディオ トラックを 1 回ループするため、出力には 18 分 23 秒のオーディオ全体が含まれ、その後すぐに 18 分 23 秒のオーディオが再び開始されます。
さらにグーグルで検索すると、この旗が見つかりました-write_xing 0
:このSOの質問ただし、そのフラグを使用しても、オーディオはループします。
編集: さらにグーグルで調べた結果、2 つのオーディオ チャンネル (およびおそらく 2 つのチャンネルをマージするのではなく、チャンネル 1 の直後にチャンネル 2 をループする) と関係があるのではないかと考え、このフラグにたどり着きました。-ac 1
これは、ステレオ -> モノラルを強制的にマージするものです。これも機能せず、38 分 46 秒の MP3 ファイルが出力されます。
再生時間を 2 倍にせずに、ビデオ ファイルからオーディオを抽出 (MP3 に) するにはどうすればよいですか?
答え1
これを試して:
ffmpeg -i video.mp4 -vn -sn -c:a mp3 -ab 192k audio.mp3
私も同じ目的でこれを使用しましたが、オーディオの長さは変わりませんでした。また、(私見ですが) 品質を上げようとするのはやりすぎですが、320k で試してみることはできます。
答え2
Google は、ffmpeg Trac でいくつかのバグ レポートを発見しました。それによると、ffmpeg のコマンド ラインで -write_xing 0 を使用すると、この問題が解決する可能性があるとのことです。長さの不一致は、デフォルトで書き込まれる Xing データの値が間違っているために発生するようです。