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

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

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

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

答案1

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 编解码器才能正常工作。我知道 ffmpeg 通过 libgsm 支持某些 GSM 编码音频,但我自己从未处理过 GSM 文件。不过,我成功地将其他类型的文件(MP3)转换为单声道,没有任何问题。

答案2

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

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

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

答案3

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

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

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

答案4

我知道使用 sox 是可能的....我使用 sox 进行频道操作,使用 kdenlive 和 audacity 进行轻度编辑,使用 ffmpeg 进行重新混合。只是想让你知道过去哪些方法对我很有用。

相关内容