ffmpeg如何获取设备名(不是打印设备名)

时间:2022-12-31 17:38:03
//Show directshow device
void show_dshow_device() {
AVFormatContext *pFormatCtx = avformat_alloc_context();
AVDictionary* options = NULL;
av_dict_set(&options, "list_devices", "true", 0);
AVInputFormat *iformat = av_find_input_format("dshow");
avformat_open_input(&pFormatCtx, "video=dummy", iformat, &options);
}
网上都是这段代码,
因为我有多个摄像头,我希望把获取到设备名之后,拷贝到char*中,
然后通过一系列条件判断,程序自动选择一个摄像头,然后打开,
我的问题是,调用什么接口能获得设备列表的名字(不是终端打印出来)

4 个解决方案

#1


你看下ffmpeg代码打印的是哪个结构体,看能不能取出来

#2


因为代码较多,没有细看,我猜测ffmpeg直接使用dshow的命令取出来的,不是获取到结构体中,
有一个这个方法,不知道能不能取出来,avdevice_list_devices
另外,http://blog.csdn.net/jhqin/article/details/5929796,这个是直接用DirectShow取的,但是没有结果,
总之,没有更深入的信息了

#3


http://blog.csdn.net/jhqin/article/details/5929796
根据这个方法取到了,谢谢版主

#4


没帮到,看你应用需要了
如果程序中用到ffmpeg,没用到directshow,用ffmpeg取要好。若是2个都用到,那种无所谓

你可以看看avcap的代码,就是根据directshow取得设备列表

引用 3 楼 marising 的回复:
http://blog.csdn.net/jhqin/article/details/5929796
根据这个方法取到了,谢谢版主

#1


你看下ffmpeg代码打印的是哪个结构体,看能不能取出来

#2


因为代码较多,没有细看,我猜测ffmpeg直接使用dshow的命令取出来的,不是获取到结构体中,
有一个这个方法,不知道能不能取出来,avdevice_list_devices
另外,http://blog.csdn.net/jhqin/article/details/5929796,这个是直接用DirectShow取的,但是没有结果,
总之,没有更深入的信息了

#3


http://blog.csdn.net/jhqin/article/details/5929796
根据这个方法取到了,谢谢版主

#4


没帮到,看你应用需要了
如果程序中用到ffmpeg,没用到directshow,用ffmpeg取要好。若是2个都用到,那种无所谓

你可以看看avcap的代码,就是根据directshow取得设备列表

引用 3 楼 marising 的回复:
http://blog.csdn.net/jhqin/article/details/5929796
根据这个方法取到了,谢谢版主