Answers:
在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)转换为单声道。
ffmpeg -i stereo.flac -ac 1 mono.flac
如果您仍想在格式之间进行转换,但是对于较长的文件,则可能需要很长时间,因此上述答案适用。或者,也许您不想再次转换,从而降低质量,因此您可能只想流式复制。不能同时使用-codec:a和-ac 1,但是根据ffmpeg pan过滤器文档,如果满足某些条件(例如您没有调整通道的级别或将两个通道混合为一个) ,它将识别出这种情况并报告:“检测到纯通道映射”,并进行流复制,这要快得多。
例如:要通过仅使用左声道并仅复制视频流来制作单声道立体声文件,请执行以下操作:
ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext