使用-map_channel

使用-map_channel

我有一部旧的“立体声”电影,是 mp4 文件。

只有左声道有声音,右声道无声。

我想使用 ffmpeg 复制视频流:

ffmpeg -hide_banner -i video.mp4 -c:v copy ...

并通过仅选择左声道将音频转换为单声道:

-map_channel 0.1.0 -map_channel -1

但这并没有改变什么:-(

正确的 ffmpeg 命令行是什么?

不重新编码也能做到这一点吗?

答案1

至少有两种方法可以选择左音频通道并以单声道输出。

使用-map_channel

假设输入仅包含音频:

ffmpeg -i input -map_channel 0.0.0 output
  • 第一个数字是输入文件 ID:您只有一个输入,因此将是0。第二个数字是流说明符:如果音频是第二个流(在典型的视频文件中通常如此),则可以使用1。第三个数字是频道号码:在立体声输入中,第一个通道通常是左前,第二个通道通常是右前。

  • 如果您想要正确的频道,请使用-map_channel 0.0.1

  • 如果输入包含视频,那么音频可能会(但并非总是)被列为第二个流,因此您需要使用0.1.0

使用平移音频过滤器

ffmpeg -i input -af "pan=mono|c0=FL" output
  • 或者,您也可以使用pan=mono|c0=c0
  • 如果您想要正确的频道,请使用pan=mono|c0=FR(或pan=mono|c0=c1)。

另请参阅

答案2

@LordNeckbeard:找到了为什么我的结果文件像源文件一样只有左声道音频的原因。

这是因为我使用了:

-map_channel 0.1.0 -map_channel -1

它将第二个音频通道静音,而不仅仅是使用:

-map_channel 0.1.0

感谢您的帮助 :)

相关内容