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

时间:2015-03-23 18:03:57

标签: ffmpeg

我有一个视频文件video.mp4。持续时间为18分23秒。我希望从该视频中提取音频,并从视频中的音频创建最高质量的MP3。

一些googlefu引导我使用此命令:ffmpeg -i video.mp4 audio.mp3

问题在于,此命令加倍输出的音频长度(持续时间为36分46秒)。它循环音频轨道一次,因此输出包含整个18分23秒的音频,然后立即重新开始18分23秒的音频。

更多googlefu引导我到this SO question来自{{3}}这个标志:-write_xing 0,但即使有了这个标志,它仍会循环播放音频。

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

如何从视频文件中提取(到MP3)音频,而不会使持续时间加倍?

1 个答案:

答案 0 :(得分:1)

你的googlefu必须出错。

如果你有一个音轨:

ffmpeg -i movie.mp4 -map 0:a -c:a mp3 audio.mp3

如果您有多个音轨:

  1. 确定曲目:
  2. ffprobe -i movie.mp4并查找音频流#0:x ,其中x是整数

    1. 使用-map 0:x使用上述命令。 x = 2的示例:
    2. ffmpeg -i movie.mp4 -map 0:2 -c:a mp3 audio.mp3

      How to use the -map option