在调用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,原来不能和这个值不一样。
既然如此,那干脆就采用默认值算了,有需求的话再重采样。