1.在查看设备支持的dshow设备时出现:
[dshow @ 00000286dc5e7e40] Could not enumerate video devices (or none found).
解决:
下载screen capture recorder并安装(github上有),然后就可以正常使用。 2.avformat_open_input打开输入设备时报错返回码为-5?源码如下:extern "C" { #include <libavformat/avformat.h> #include <libavutil/error.h> } AVFormatContext* ctx = nullptr; const char* audio_device = "virtual-audio-capturer"; int ret = 0; if((ret = avformat_open_input(&ctx, audio_device, fmt, nullptr)) != 0) { char buff[1024] = {0}; ret = av_strerror(ret, buff, 1024); qWarning() << "无法打开屏幕输入设备, ret:" << buff; return; }
然后使用av_strerror得到错误码,并且在程序结束后给出如下打印:
无法打开屏幕输入设备, ret: I/O error [dshow @ 0000022f68e0c040] Malformed dshow input string.
搜索发现是avformat_open_input第二个参数填写错误,正确地应该是"audio=virtual-audio-capturer"。
标签:编码,dshow,ffmpeg,ret,avformat,一些,input,audio,open From: https://www.cnblogs.com/chien/p/17529929.html