【发布时间】:2015-01-26 06:25:16
【问题描述】:
我正在尝试使用 WebRTC 在屏幕上将视频输入显示为实时提要。我不想做任何点对点通信或类似的事情,只是显示一个视频源。
我的代码适用于我的笔记本电脑集成网络摄像头,但是当我连接外部视频输入设备(在这种情况下,通过 S-Video 连接到使用 StarTech 转换器的 USB 输入的旧摄像机 - 型号 SVID2USB2NS)时,我一无所获。我在 Chrome 和 FireFox 中都试过了。
两个浏览器都可以找到视频设备,并让我选择集成网络摄像头或 USB 设备(在本例中列为“USB 2820”),因此在本例中它们知道设备。
在 Chrome 中,当我尝试连接时,调用 getUserMedia 调用的“成功”回调,如果我 .getVideoTracks() 我找到 MediaStreamTrack,并且在回调的时刻,MediaStreamTrack 返回 @ 987654325@ = true 和 readyState = live。但是没有视频输入(只有一个黑色的视频面板,Chrome 浏览器选项卡中没有出现红色的“录制”小图标)。如果我稍后检查 MediaStreamTrack,我会发现 readyState now = "ended"(虽然 enabled 仍然是 true)。
在 FireFox 中,再次找到了设备,但任何使用 getUserMedia 连接到它的尝试都会触发错误回调,并出现 HARDWARE_UNAVAILABLE 错误。
我的getUserMedia 电话很简单:
navigator.getUserMedia({ audio: false, video: true }, _webRTCsuccessCallback, _webRTCerrorCallback);
我的成功回调是(包括一些测试代码以立即检查MediaStreamTrack 并在一秒钟后):
function _webRTCsuccessCallback(stream) {
window.stream = stream; // stream available to console
if (window.URL) {
_video.src = window.URL.createObjectURL(stream);
} else {
_video.src = stream;
}
var tracks = stream.getVideoTracks();
if (tracks[0]) {
console.log(tracks[0]);
setTimeout(function () { console.log(tracks[0]); }, 1000);
}
}
(其中 _video 是页面上的 html5 对象)
火狐31.0版
Chrome 版本 39.0.2171.71 m
操作系统版本:Windows 7 Ultimate (6.1.7601) SP1
S-Video 转 USB 转换器:StarTech SVID2USB2NS (http://www.startech.com/AV/Converters/Video/USB-S-Video-Capture-Cable~SVID2USB2NS)
源相机:Panasonic NV-DS35B(数码摄像机)
有没有人知道是什么原因造成的,为什么 WebRTC 不能用这个设备打球?
(更一般地说,我知道设备正在向 PC 发送视频信号,因为在 IE 中我开发了一个 ActiveX 控件,它使用 DirectShow 来获取视频源,它可以很好地收集源 - 不同的技术我很感激,但它确实给了我设备存在并发送视频的证据!)
【问题讨论】:
-
什么相机和什么操作系统?您可能需要在浏览器的相应错误跟踪器中发布错误。
-
@BenjaminTrent 谢谢 - 编辑了我的问题以添加操作系统和相机信息。我担心它可能最终会进入浏览器跟踪器,但 Chrome 和 Firefox 似乎都不想知道我只是想知道这是否是我正在做的事情,而不是两个浏览器中的类似问题,任何比我更精通 WebRTC 的人都可以提供我错过的任何东西!例如。那些浏览器中的 webRTC 是否不喜欢某些类型的输入,例如PAL 也许?
-
@PulseLab:您能否确认您是否为 StarTech SVID2USB2NS 和 Panasonic NV-DS35B 安装了最新的驱动程序?
-
嗨@SyedQarib,是的,我确实安装了StarTech 设备的最新驱动程序。 Panasonic 相机本身没有任何驱动程序,它只是一个通过 StarTech 设备连接的 S-Video 输出。 Windows 看不到 StarTech 设备的另一端有什么,就它而言,StarTech“是”有问题的相机......
-
您是否尝试过使用其他 WebRTC 服务,例如 opentokrtc.com/ok
标签: javascript html webrtc