我有一个视频文件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)音频,而不会使持续时间加倍?
答案 0 :(得分:1)
你的googlefu必须出错。
如果你有一个音轨:
ffmpeg -i movie.mp4 -map 0:a -c:a mp3 audio.mp3
如果您有多个音轨:
ffprobe -i movie.mp4
并查找音频流#0:x ,其中x
是整数
-map 0:x
使用上述命令。 x = 2
的示例: ffmpeg -i movie.mp4 -map 0:2 -c:a mp3 audio.mp3