1

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)

これを行う方法?

4

1 に答える 1