FFMPEG 相同的命令吗?

FFMPEG 相同的命令吗?

这两个从视频中提取音频的命令有什么区别吗?

ffmpeg -i input.mp4 -c copy -map 0:a output.wav

ffmpeg -i input.mp4 -vn -acodec copy output.wav

答案1

如果您的 mp4 文件仅包含一个音轨,那么两个命令的结果相同。

如果您的 mp4 包含多个音轨/流(我不是指流中的多个通道),则至少存在一个主要区别。

WAV 容器仅允许一个音轨,因此当您使用-map 0:a它时,可能会尝试将多个音轨复制到您的 WAV 文件中,这将导致以下错误:

Stream mapping:
Stream #0:2 -> #0:0 (copy)
Stream #0:3 -> #0:1 (copy)
Stream #0:4 -> #0:2 (copy)
Stream #0:5 -> #0:3 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

未指定映射的命令不会引发错误,因为默认情况下,如果未指定映射,ffmpeg 只会输出每种类型的一个轨道。

顺便说一句,您不需要-vn在使用-acodec copy和指定 WAV 容器时进行指定,因为 ffmpeg 将自动不会尝试将视频包含在 WAV 中。

相关内容