zoukankan      html  css  js  c++  java
  • 使用Vlc.DotNet打开摄像头并截图 C#

     

     参考上一篇  使用vlc打开usb摄像头

    理论上输入下面地址

    "dshow:// :dshow-size=1600*1200:dshow-vdev=USB CAM2"
    C#就能打开摄像头了
    类似打开本地文件或者rtsp之类的网络地址

    但实际测试怎么着都是打开第一个摄像头,第二个怎么也打不开

    实际上vlc打开网络串流那里复制这个地址进去也是只能打开第一个摄像头


    注意到

    media.AddOption
    这个方法
    就试了一下,发现分辨率可以控制了,摄像头也可以选择了

    但这里需要摄像头名字
    :dshow-vdev

    就只好根据上一篇AForge来获取了

    使用AForge.NET Framework打开摄像头并截图 C#


    反正研究这个就是为了补充AForge不支持的摄像头打开。AForge开发轻松得多,也更好用

    Vlc.DotNet.Forms.VlcControl cc = new  Vlc.DotNet.Forms.VlcControl();
                cc.Width = 500;
                cc.Height = 400;
                cc.Top = 100;
                cc.Left = 100;
    
                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");
    
                cc.Play(media);
                this.Controls.Add(cc);
                cc.BringToFront();
    
    
    
                //cc.TakeSnapshot("D:\111.jpg", 1600, 1200);//截图

     注意

    Vlc.DotNet.Core.Medias.MediaBase media = new Vlc.DotNet.Core.Medias.LocationMedia("dshow:// ");
    初始化MediaBase 时只需
    "dshow:// "
    即可

    选择哪个相机需要AddOption
    ,选择分辨率之类的参数也要AddOption

    但不支持相机index,必须相机name,可以参考使用AForge.NET Framework打开摄像头 C#获取对应index的name

  • 相关阅读:
    postgresql 2012 大会PPT下载 Joe
    Postgresql连接 Joe
    查看Postgresql的连接数 Joe
    greta使用
    CString GetFileDir(const CString& csFile)
    UnicodeToAnsi函数
    myeclipse优化方案
    bool CreatedMultipleDirectory( char* direct)
    LPWSTR GBK(LPCSTR plszUtf8, WCHAR* lpszGBK)
    真正整合资源的高手
  • 原文地址:https://www.cnblogs.com/jhlong/p/7488962.html
Copyright © 2011-2022 走看看