PyAv を使用して alsa オーディオ デバイスを開く場合。それが間違っているため、ffmpegのデフォルトのものではなく、使用されているコーデックを指定する方法。デフォルトでは が使用pcm_s16le
され、使用する必要がありますpcm_s32le
。次のffmpegコマンドを使用して、デバイスから記録できます。
ffmpeg -f alsa -acodec pcm_s32le -i dmic_sv alsaout.wav
しかし、一緒ではありません
ffmpeg -f alsa -i dmic_sv alsaout.wav
次のエラーが表示されます。
[alsa @ 0x12061c0] cannot set sample format 0x10000 2 (Invalid argument)
dmic_sv: Input/output error
作業コマンドを PyAv av.open()関数に転送するには? ありますがstream_options
、機能していないようです。私は試した
stream_options = [{'-acodec': 'pcm_s32le'}]
av.open('dmic_sv', format='alsa', mode='r', stream_options=stream_options)
そして、私は上記と同じです。
av.error.OSError: [Errno 5] Input/output error: 'dmic_sv'; last error log: [alsa] cannot set sample format 0x10000 2 (Invalid argument)
これを行う方法?