打算把所有的连接摄像头的都统一使用vlclib,但是连接本地摄像头的时候无法去区分连接哪个摄像头,比如我有两个摄像头无论参数怎么填都只打开默认摄像头
初始化的时候m_media = libvlc_media_new_location(m_vlcInstance, connStr.c_str());
其中connStr = "dshow:// :dshow-vdev=\"USB2.0 PC CAMERA\""
是参函数调用错误还是版本问题,请各路大神多多指导
最后说一句,是在windows下
知道怎么解决了
Vlc.DotNet.Core.Medias.MediaBase media = new Vlc.DotNet.Core.Medias.LocationMedia("dshow:// ");
media.AddOption(":dshow-size=1600*1200");
media.AddOption(":dshow-vdev=USB CAM2");
LocationMedia里后面的参数没一点用处的,必须.AddOption
用vlc自带的软件填参数打开,在dos命令下可以正常打开,软件中填参数,无论参数如何填都是打开默认摄像头
@jhlong12345 请问你这是把vlclib又封装了一层么,可以把内部代码发来我看一下不,看一下这个addOption是怎么添加的,或者你怎么封装的能拿来看一下也可以
@jhlong12345 知道真没添加了,但是添加之后摄像头打不开,这个格式不知道怎么改怎么弄
第一种:
m_media = libvlc_media_new_location(m_vlcInstance, connStr.c_str());
libvlc_media_add_option(m_media, ":dshow-vdev=STARTEC 1.3MP Webcam");
第二种:
m_media = libvlc_media_new_location(m_vlcInstance, connStr.c_str());
libvlc_media_add_option(m_media, ":dshow-vdev=\"STARTEC 1.3MP Webcam\"");
都打不开,如果不addoption还能打开默认摄像头
这个是Vlc.DotNet,似乎是对libvlc的又一层封装,用起来比较方便的
https://github.com/ZeBobo5/Vlc.DotNet
http://download.csdn.net/download/wangdaoyin2010/9272829
摄像头名字用aforge获取了根据index,vlc没发现接口。
主要是aforge跟摄像头sdk在我这奇葩电脑上都是打开摄像头崩溃 才找这个另一种打开摄像头的方法的