ffmpeg录制16位,即使我只需要8位

ffmpeg录制16位,即使我只需要8位,ffmpeg,Ffmpeg,我尝试了以下命令: 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位进行记录?WAV输出的默认编码器是pcm_s16l

我尝试了以下命令:

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位进行记录?

WAV输出的默认编码器是pcm_s16le(pcm有符号16位小端)。使用以下编码器之一:

编码器 描述 pcm_s8 PCM有符号8位 pcm_s8_平面 PCM有符号8位平面 pcm_u8 PCM无符号8位
我已经用NAudio录制了80比特的声音,但结果是噪音很大。这是ffmpeg不允许记录8位样本的最可能原因。解决这个问题的唯一好办法是用8位编码WAV,这样就可以消除噪音。@joshjoyer似乎与原来的问题是正交的。答案是否与您的要求不符?您的答案非常好,但最终答案应该扩大,因为无法使用ffmpeg录制8比特,因为这会产生很大的噪音。因此,最好的解决方案是每个样本记录32位(这是可能的,而不是8位),然后在需要时将其转换为8位(特别是在通过互联网发送数据时)@joshjoyer,由输入设备提供样本位深度。如果您确信设备输出pcm无符号8位,则要强制使用pcm_u8解码器,可以添加
-c:a pcm_u8
输入选项。噪声可能表明许多情况,包括样本格式不正确。