FFMPEG 从视频中提取音频时将音频长度加倍

FFMPEG 从视频中提取音频时将音频长度加倍

我有一个视频文件video.mp4。它的长度为 18 分 23 秒。我想提取仅音频从该视频中提取音频,并使用视频中的音频创建最高质量的 MP3。

一些 googlefu 引导我找到这个命令:ffmpeg -i video.mp4 audio.mp3

问题是,这个命令双打输出的音频长度(持续时间为 36 分 46 秒)。它会循环播放音轨一次,因此输出包含整个 18 分 23 秒的音频,然后立即重新开始播放 18 分 23 秒的音频。

经过更多的 googlefu ,我找到了这个标志:-write_xing 0来自这个问题,但即使有该标志,它仍然会循环播放音频。

编辑:其他 googlefu 和我似乎认为这与 2 个音频通道有关(也许在通道 1 之后立即循环通道 2,而不是合并这两个通道),这让我找到了这个标志:-ac 1强制它合并立体声 -> 单声道。这也不起作用,它仍然输出 38 分钟 46 秒的 MP3 文件。

怎样才能从视频文件中提取音频(为 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 数据中的值不正确造成的。

相关内容