首页 > 解决方案 > ffmpeg 记录 16 位,即使我只想要 8 位

问题描述

我尝试了以下命令:

ffmpeg -f dshow -sample_fmt u8 -ac 1 -ar 11025 -i audio="mic" output.wav
ffmpeg -f dshow -sample_fmt u8p -ac 1 -ar 11025 -i audio="mic" output.wav

每次我尝试获得 8 位输出时,ffmpeg 每个样本返回 16 位。

有什么方法可以记录每个样本 8 位?

标签: ffmpeg

解决方案


WAV 输出的默认编码器是 pcm_s16le(PCM 签名的 16 位小端序)。使用以下编码器之一:

编码器 描述
pcm_s8 PCM 签名 8 位
pcm_s8_planar PCM 签名 8 位平面
pcm_u8 PCM 无符号 8 位

例子:

ffmpeg -f dshow -channels 1 -sample_rate 11025 -i audio="mic" -c:a pcm_u8 output.wav

推荐阅读