Javascript Firefox最大帧速率约束

Javascript Firefox最大帧速率约束,javascript,firefox,webrtc,Javascript,Firefox,Webrtc,在Firefox中,调用getUserMedia()时,我添加了一个限制帧速率的约束。但是,任何低于30fps的值都不允许在GUM权限对话框中选择网络摄像头 对于exmaple,我已经克隆并更改了github.com/webrtc/samples的约束示例。我将frameRate.min变量重命名为frameRate.max。这在Chrome中可以正常工作,但在Firefox中不能 我找到了bugzilla报告,但它说帧速率限制已经实现。这是Firefox尚未解决的问题吗?它与bug有关吗 还

在Firefox中,调用getUserMedia()时,我添加了一个限制帧速率的约束。但是,任何低于30fps的值都不允许在GUM权限对话框中选择网络摄像头

对于exmaple,我已经克隆并更改了github.com/webrtc/samples的约束示例。我将frameRate.min变量重命名为frameRate.max。这在Chrome中可以正常工作,但在Firefox中不能

我找到了bugzilla报告,但它说帧速率限制已经实现。这是Firefox尚未解决的问题吗?它与bug有关吗

还是我没有正确使用此约束?

摄像头发现 浏览器(甚至操作系统)对于从
getUserMedia
返回哪些摄像头模式存在分歧

Chrome会根据您的要求重新调整和裁剪,而Firefox只会返回特定摄像头的本地模式。两者都在规格范围内

这两种方法都有优点,但不幸的是,它们是相互排斥的,因为如果你总是得到你想要的,那么你就对相机一无所知

至于为什么你没有低于30 fps的模式,这可能是因为你的相机没有任何模式。值得一提的是,在Windows7上使用Firefox时,我可以从我的Logitech C920获得各种模式,但当我限制帧速率时,我倾向于只返回相当高的分辨率模式(如2592 x 1944 x 10fps),这可能是我特定型号的一个特点

在OSX上,您还可以找到。OSX很棘手,因为它在操作系统级别上很少透露摄像头的信息。目前,30 fps是一种人为限制

设置带宽限制 从您的评论听起来,您真正关心的是降低对等连接的带宽要求。该规范仍在开发中,目前看起来如下所示:

var encoding = { maxBitrate: 60000, maxFramerate: 5, scaleResolutionDownBy: 2 };

var sender = pc.addTrack(stream.getVideoTracks()[0], stream);
sender.setParameters({ encodings: [encoding] });
您可以为同步广播指定多个
编码


Firefox 47(Beta版)中提供了此功能,应该可以在哪里使用。

这是在OSX上实现的吗?很抱歉没有提到这一点。发生在Windows 10上。刚刚在OSX上测试过,而且确实也发生在那里。我刚刚发现这个问题。。。我将把它留给专家来解决。就我个人而言,我对带宽限制比对帧速率限制更感兴趣:)我在Firefox中对大多数摄像头也有同样的问题。Chrome按预期工作。我发现Firefox中的一个摄像头工作正常,即Logitech高清网络摄像头C920。在大多数相机中,我都会遇到错误“过度约束错误:无法满足约束”。基于Firefox()上的示例,我希望这能起作用。这似乎是Firefox设备与一些网络摄像头的问题。我在Windows和苹果的Firefox中都遇到过这个问题。