Javascript WebRTC可以';无法从USB输入设备获取视频源(readyState转到ended)

Javascript WebRTC可以';无法从USB输入设备获取视频源(readyState转到ended),javascript,html,webrtc,Javascript,Html,Webrtc,我正在尝试使用WebRTC在屏幕上显示视频输入作为实时提要。我不想做任何点对点通信或类似的事情,只是显示一个视频提要 我的代码适用于我的笔记本电脑集成网络摄像头,但当我连接外部视频输入设备(在本例中,是一台使用StarTech转换器通过S-video连接到USB输入的旧摄像机-型号SVID2USB2NS)时,我什么也得不到。我在Chrome和FireFox上都试过了 这两种浏览器都可以找到视频设备,并为我提供集成网络摄像头或USB设备的选择(在本例中列为“USB 2820”),因此在本例中,它们

我正在尝试使用WebRTC在屏幕上显示视频输入作为实时提要。我不想做任何点对点通信或类似的事情,只是显示一个视频提要

我的代码适用于我的笔记本电脑集成网络摄像头,但当我连接外部视频输入设备(在本例中,是一台使用StarTech转换器通过S-video连接到USB输入的旧摄像机-型号SVID2USB2NS)时,我什么也得不到。我在Chrome和FireFox上都试过了

这两种浏览器都可以找到视频设备,并为我提供集成网络摄像头或USB设备的选择(在本例中列为“USB 2820”),因此在本例中,它们都知道该设备

在Chrome中,当我尝试连接时,如果我.getVideoTracks()找到
MediaStreamTrack
,调用getUserMedia调用的“success”回调,并且在回调的时刻,
MediaStreamTrack
返回
enabled
=
true
readyState
=
live
。但是没有视频输入(只有一个黑色的视频面板,Chrome浏览器选项卡上的红色“录制”图标没有出现)。如果我稍后检查MediaStreamTrack,我会发现
readyState
now=“
ended
”(尽管enabled仍然为true)

在FireFox中,同样可以找到该设备,但任何使用getUserMedia连接该设备的尝试都会触发错误回调,并出现硬件不可用错误

我的
getUserMedia
调用很简单:

navigator.getUserMedia({ audio: false, video: true }, _webRTCsuccessCallback, _webRTCerrorCallback);
我的成功回调是(包括一些测试代码,用于立即和一秒钟后检查
MediaStreamTrack
):

(其中_video是页面上的html5对象)

Firefox 31.0版

Chrome版本39.0.2171.71 m

操作系统版本:Windows7Ultimate(6.1.7601)SP1

S-Video-to-USB转换器:StarTech SVID2USB2NS()

源摄像机:松下NV-DS35B(数码摄像机)

有没有人知道是什么原因导致了这种情况,以及为什么WebRTC不会使用这种设备


(更一般地说,我知道该设备正在向PC发送视频信号,就像在IE中一样,我开发了一个ActiveX控件,它使用DirectShow获取视频源,它可以很好地收集视频源-我欣赏不同的技术,但它确实给了我证据,证明该设备在那里并发送视频!)

媒体捕获流规范规定,如果MST被“静音”或“禁用”,则在MediaStreamTrack的生命周期内,实时状态可能会被零信息内容取代。这将导致呈现黑色帧

换句话说,只有当MST同时处于非静音和启用状态时,媒体才能从源中流出

静音/取消静音状态反映源是否提供任何媒体

启用/禁用状态决定曲目是否输出媒体

确保没有其他应用程序正在使用源设备。在你的例子中,是星轨转换器。当您尝试在浏览器中获取UserMedia时,关闭所有可能访问您的捕获设备的其他应用程序

有关MST生命周期和流程的更多信息,请访问此网站

另一个问题可能是您的设备没有提供满足媒体轨道上存在的限制的媒体。您的设备能够传输NTSC和PAL视频信号。因此,尝试调整getUserMedia的约束条件,例如PAL信号,如下所示:

{ 
  audio: false,
  video: {
    mandatory: {
      maxWidth: 768,
      maxHeight: 576,
      maxAspectRatio: 1.333,
      maxFrameRate: 25
  }
}

希望能有所帮助。

什么摄像头和什么操作系统?您可能需要在浏览器相应的bug跟踪器中发布bug。@BenjaminTrent谢谢-编辑了我的问题,在中添加了操作系统和摄像头信息。我担心这可能会导致浏览器跟踪器出现问题,但由于Chrome和Firefox似乎都不想知道,我只是想知道这是否是我在做的事情,而不是两种浏览器中出现的类似问题,在WebRTC中,任何比我更像范思特的人都可以提供我错过的任何东西!例如,这些浏览器中的webRTC是否不喜欢某些类型的输入,例如PAL?PulseLab:请确认您是否为StarTech SVID2USB2NS和Panasonic NV-DS35B安装了最新的驱动程序?Hi@SyedQarib,是的,我确实为StarTech设备安装了最新的驱动程序。松下相机本身没有任何驱动程序,它只是一个s-Video输出,通过StarTech设备连接。Windows看不到StarTech设备的另一端有什么,就其而言,StarTech“就是”有问题的摄像头……您是否尝试过其他WebRTC服务,例如是否有办法将otg usbwebcam作为chrome mobile上的视频输入。?我只看到智能手机内置的前后摄像头。。。。
{ 
  audio: false,
  video: {
    mandatory: {
      maxWidth: 768,
      maxHeight: 576,
      maxAspectRatio: 1.333,
      maxFrameRate: 25
  }
}