使用ffmpeg将两个通道转换为单个通道左或右

使用ffmpeg将两个通道转换为单个通道左或右,ffmpeg,python-3.6,Ffmpeg,Python 3.6,我有一些.wav文件,我想转换它们的频率fs和通道数nchannels。我正在jupyter笔记本电脑python3.6上使用ffmpeg。我使用了下面的命令,它可以工作 cmd= 'ffmpeg -i %s -ar %d -ac %d %s.wav'%(filepath,fs,nchannel,wavfilename) os.system(cmd) 但是,当将两个通道转换为单个通道时,我只希望ffmpeg只使用左通道或右通道,而不是两个信号的平均值?如果我使用地图频道如下,这是正确的吗?这会

我有一些.wav文件,我想转换它们的频率fs和通道数nchannels。我正在jupyter笔记本电脑python3.6上使用ffmpeg。我使用了下面的命令,它可以工作

cmd= 'ffmpeg -i %s -ar %d -ac %d %s.wav'%(filepath,fs,nchannel,wavfilename)
os.system(cmd)
但是,当将两个通道转换为单个通道时,我只希望ffmpeg只使用左通道或右通道,而不是两个信号的平均值?如果我使用地图频道如下,这是正确的吗?这会创建wav文件,但我不确定是否只使用一个通道

'ffmpeg -i %s -ar %d -map_channel 0.0.0 %s.wav(filepath,fs,wavfilename)'
如果没有,我如何修改上面的代码来实现这一点?我也试过了

'ffmpeg -i %s -af channelsplit=channel_layout=stereo:channels=FL -ar %d %s.wav'%(filepath,fs,wavfilename)'
但这会创建空的wav文件

谢谢

使用:


查看带有ffmpeg-layouts的频道名称列表。

谢谢您的回答。我想一次完成所有到.wav、fs、channel的转换,这就是为什么我问如何修改我的代码,我只是在将您的解决方案合并到我的命令行时遇到了麻烦。但也许这是不可能的?@kutlus我不懂python,我认为这更像是一个ffmpeg问题而不是python问题。尝试cmd='ffmpeg-i%s-af channelsplit=channel\u layout=stereo:channels=FL-ar%d%s.wav'%filepath,fs,nchannel,wavfilename。您不需要-ac,因为输出将是单声道的,正如您所要求的。非常感谢您的帮助。嗨,Ilogan,这个命令创建了wav文件,但它们是空的。我尝试了这个命令,没有引号,并且使用了cmd='ffmpeg-i%s-af channelsplit=channel_layout=stereo:channels=FL-ar%d%s.wav'%filepath,fs,wavfilename中的四分之一。创建的文件是空的,有什么想法吗?@kutlus是python代码还是ffmpeg的问题?在命令行界面中手动尝试未编写的ffmpeg命令。它有用吗?如果没有,则显示实际命令和命令中的完整日志。
ffmpeg -i input -af "channelsplit=channel_layout=stereo:channels=FL" front_left.wav