Ffmpeg:Could not set audio only options

发布时间 2023-07-22 19:13:11作者: 时间在哪

在调用Ffmpeg的avformat_open_input函数时,由于设置options这个参数,然后程序立即报这个错误:

[dshow @ 0000026cebd068c0] Could not set audio only options
[dshow @ 0000026cebd068c0] Searching for audio device within video devices for virtual-audio-capturer
[dshow @ 0000026cebd068c0] Could not find audio only device with name [virtual-audio-capturer] among source devices of type video.

由提示可以知道肯定是options这个参数设置有问题,而我只参照其他文档只设置了一项:

ret = av_dict_set(&dict, "sample_rate", "44100", 0);

在网上搜了下查看本设备的详细参数的命令:

>ffmpeg -f dshow -list_options 1 -i audio="virtual-audio-capturer"
ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
......
  libpostproc    57.  1.100 / 57.  1.100
[dshow @ 000001761dca7e40] DirectShow audio only device options (from audio devices)
[dshow @ 000001761dca7e40]  Pin "Capture Virtual Audio Pin" (alternative pin name "1")
[dshow @ 000001761dca7e40]   ch= 2, bits=16, rate= 48000
audio=virtual-audio-capturer: Immediate exit requested

发现仅支持采样率仅支持48000,原来不能和这个值不一样。

既然如此,那干脆就采用默认值算了,有需求的话再重采样。