问题描述
在树莓派中,我遵循i2s麦克风分线板,并按照建议的指南使用它。当我尝试使用ffmpeg -f alsa -i dmic_sv out.wav
命令将使用ffmpeg的音频记录到文件中时。我会收到以下错误
[alsa @ 0x22e21c0] cannot set sample format 0x10000 2 (Invalid argument)
dmic_sv: Input/output error
当我通过-acodec
明确指定使用的编解码器时,它可以正常工作:
ffmpeg -f alsa -acodec pcm_s32le -i dmic_sv out.wav
然后从输出ffmpeg将其重新编码为pcm_s16le
Input #0,alsa,from 'dmic_sv':
Duration: N/A,start: 1597597938.887969,bitrate: 3072 kb/s
Stream #0:0: Audio: pcm_s32le,48000 Hz,stereo,s32,3072 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s32le (native) -> pcm_s16le (native))
我如何告诉ffmpeg默认使用带符号的32位Little Endian,而无需明确指定? ffmpeg在哪里获得该默认值,我可以以某种方式对其进行配置吗?