【发布时间】:2020-12-04 22:13:45
【问题描述】:
当使用 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)
如何做到这一点?
【问题讨论】:
标签: python audio ffmpeg pcm pyav