Javascript WebRTC firefox约束
我目前在个人发展中使用WebRTC,一切正常。我从我的网络摄像头获取流,但现在我想对Javascript WebRTC firefox约束,javascript,firefox,webrtc,Javascript,Firefox,Webrtc,我目前在个人发展中使用WebRTC,一切正常。我从我的网络摄像头获取流,但现在我想对getUserMedia()使用约束 当我在Firefox中测试时,它似乎忽略了这些约束。当我在Chrome或Opera上测试时,我的约束很好,质量也很好,有人知道为什么吗?问题是Firefox 感谢您的建议编辑维基链接似乎已过时,请参阅 好像 自Chrome 24和Opera 18以来,已经实施了限制。这些可用于设置getUserMedia()和RTPeerConnection addStream()调用的视频
getUserMedia()
使用约束
当我在Firefox中测试时,它似乎忽略了这些约束。当我在Chrome或Opera上测试时,我的约束很好,质量也很好,有人知道为什么吗?问题是Firefox
感谢您的建议编辑维基链接似乎已过时,请参阅
好像
自Chrome 24和Opera 18以来,已经实施了限制。这些可用于设置getUserMedia()和RTPeerConnection addStream()调用的视频分辨率值
和来自:
[在Firefox中]捕获分辨率目前固定为640x480,用于视频
它只支持
支持的最小约束:(注意:所有这些布尔值都默认为“false”)
视频:对/错
音频:真/假
假:真/假
图片:对/错
Firefox使用了getUserMedia()
,但没有使用Chrome和Opera使用的过时语法。强制
/可选
语法在几年前就被弃用了,而minWidth
和minHeight
则在前一年被弃用了
MediaCapture规范
,现在是稳定的,您的示例应该这样编写:
var constraints = {
audio: false,
video: {
width: { min: 1280 },
height: { min: 720 },
}
};
这适用于Firefox(以及带有adapter.js的Chrome):
在本规范中,关键字min
、max
和exact
(也称为min==max)本质上是强制性的,而普通值和理想值则不是。下面是一个更完整的例子:
var constraints = {
audio: false,
video: {
width: { min: 1024, ideal: 1280, max: 1920 },
height: { min: 576, ideal: 720, max: 1080 },
}
};
这适用于Firefox(在简单的情况下,Chrome和polyfill)
理想值
在使用时具有重力,这意味着浏览器将尝试查找给定理想值中最小的设置(和相机,如果有多个)
普通值本质上是理想的,这意味着:
var constraints = { video: { width: 640, height: 480 } };
同:
var constraints = { video: { width: { ideal: 640 }, height: { ideal: 480 } } };
换句话说,getUserMedia()
将尝试遵守的首选项,但决不会失败
如果必须具有特定分辨率,请使用以下速记:
var constraints = { video: { width: { exact: 640 }, height: { exact: 480 } } };
火狐
目前,Firefox支持宽度
、高度
、帧速率
和(在手机上)面部模式
。此外,按版本列出了一些注意事项:
- FF32-37:不支持普通值和
理想值。但是,除非添加非规范关键字,否则这些值不是必需的
- FF38+:实现上述约束的规范。改进了对Mac摄像头的处理(尽管帧速率对Mac有限制)
- FF43+:实现了
和MediaStreamTrack.applyConstraints()
mediaDevices.getSupportedConstraints()
- FF46+:实现
回声消除
var constraints = { video: { width: { exact: 640 }, height: { exact: 480 } } };