【问题标题】:passing video device name as argument to dshow将视频设备名称作为参数传递给 dshow
【发布时间】:2014-07-29 12:05:58
【问题描述】:

我的桌面上安装了 2 个网络摄像头 - Intex USB 2.0 和 Logitech Webcam C170。我正在使用libvlc .net wrapper,我想流式传输第二个网络摄像头。

我正在使用给定的示例创建一个 playerStream -

    VlcSinglePlayer playerStream = (VlcSinglePlayer)factory.CreatePlayer(new
                    PlayerOutput(":sout=#transcode{vcodec=h264,vb=256,fps=30,scale=1,acodec=none}:udp{mux=ts,dst=127.0.0.1:8080}"));

    playerStream.SetMediaInput(new MediaInput(MediaInputType.UnparsedMrl, 
                "dshow://:dshow-vdev=\"Webcam C170\" :dshow-adev=none  :live-caching=300 "));

上述代码有效,但我在 VLC (udp://@:8080) 中捕获的流始终来自第一个网络摄像头 (Intex USB 2.0),而不是来自罗技网络摄像头 C170。

当我尝试从命令行使用 VLC 时,一切正常。

我该如何解决这个错误?

【问题讨论】:

    标签: vlc libvlc


    【解决方案1】:

    由于它总是选择您的第一个设备,VLC 一定不知道您指定的设备选项,因此很可能某处的语法有错误。

    你只是在“dshow://”后面少了一个空格吗?

    你有这个:

    playerStream.SetMediaInput(
      new MediaInput(MediaInputType.UnparsedMrl, 
        "dshow://:dshow-vdev=\"Webcam C170\" :dshow-adev=none :live-caching=300"));
    

    “dshow://”之后和以下冒号之前应该有一个空格:

    playerStream.SetMediaInput(
      new MediaInput(MediaInputType.UnparsedMrl, 
        "dshow:// :dshow-vdev=\"Webcam C170\" :dshow-adev=none :live-caching=300"));
    

    有时需要使用“--”语法而不是“:”,所以这可能是必要的:

    playerStream.SetMediaInput(
      new MediaInput(MediaInputType.UnparsedMrl, 
        "dshow:// --dshow-vdev=\"Webcam C170\" --dshow-adev=none --live-caching=300"));
    

    如果这仍然不起作用,那么您需要查阅文档以了解 MediaInputType.UnparsedMrl 如何期望其参数。在我自己的 LibVLC 绑定中,这里只有“dshow://”被认为是“MRL”,其他所有内容都是必须单独传递并显式添加到媒体的选项(这是一个不同的 API 调用)。

    在创建 LibVLC 实例时可以(并且在某些情况下需要)传递一些选项。对于这个库,应该是这样的:

    factory = new VlcMediaLibraryFactory (new string[] { 
      "--dshow-vdev=\"Webcam C170\"", 
      "--dshow-adev=none", 
      "--live-caching=300"});
    

    【讨论】:

    • 空间不是问题。即使没有空格,它仍然给出相同的结果。
    • 那么我不知道。该项目的文档并不多。我仍然认为您可能没有通过 dshow:// MRL 传递这些 --dshow 选项。如果您在按照快速入门创建 VLCMediaLibraryFactory 时传递它们,它可能会起作用。
    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 2014-08-27
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多