使用FFMPEG在GSM6.10上将两个音频通道(立体声)合并为一个(单声道)


27

我想知道是否可以使用FFMPEG将立体声音频合并到GSM6.10音频文件上的单声道中。如果是这样,请提供命令以实现此目的。
否则,是否可以通过FFMPEG将GSM6.10转换为WAV PCM?然后,我可以合并WAV PCM上的通道。

如果有另一个免费工具可以做到这一点,我也可以尝试。

Answers:


42

在ffmpeg中任何受支持的文件中从立体声“混音”到单声道的方式如下:

ffmpeg -i file.ext -ac 1 file_mono.ext

“ -ac 1”位指示ffmpeg仅输出1个音频通道,即单声道。默认情况下,此操作将保留您的文件格式,但会将比特率恢复为ffmpeg的默认值64kbs。如果要更高的比特率,可以执行以下操作:

ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext

...用您喜欢的比特率替换192k。

请注意,您安装的ffmpeg必须支持您特定的GSM编解码器,才能使其正常工作。我知道通过libgsm在ffmpeg中支持某些GSM编码的音频,但是我自己从未处理过GSM文件。但是,我已经成功地将其他类型的文件(MP3)转换为单声道。


3
这真的是混合的,还是只是渠道的减少?
2014年

在“平移”过滤器文档中:“请注意,ffmpeg集成了默认的缩混(和上混)系统,除非您有非常特殊的需求,否则应优先使用该系统(请参阅“ -ac”选项)。”
停止危害莫妮卡

输入和输出文件都只能是音频文件。输入内容不能为视频。
凯文

1
音频通道操纵 “将单个立体声流混合成单声道流。立体声流的两个通道都将被缩混成该流:”ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra,2015年

@Kevin-输入可以是一个视频文件,我刚刚验证过(带或不带-vn)
Berry Tsakala

7

如果您仍想在格式之间进行转换,但是对于较长的文件,则可能需要很长时间,因此上述答案适用。或者,也许您不想再次转换,从而降低质量,因此您可能只想流式复制。不能同时使用-codec:a和-ac 1,但是根据ffmpeg pan过滤器文档,如果满足某些条件(例如您没有调整通道的级别或将两个通道混合为一个) ,它将识别出这种情况并报告:“检测到纯通道映射”,并进行流复制,这要快得多。

例如:要通过仅使用左声道并仅复制视频流来制作单声道立体声文件,请执行以下操作:

ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext


0

为了保存视频,我结合使用了以上两个答案:

ffmpeg -i infile -codec:v copy -ac 1 -ab 192k outfile

这为我提供了足够的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.