如何在640 * 480分辨率的getusermedia中更改FPS?

时间:2019-10-18 17:32:34

标签: javascript webrtc frame-rate getusermedia

我在MediaDevices.getUserMedia()中更改了FPS,但分辨率也有所更改。如何在保持640×480分辨率的同时降低FPS?

我尝试了以下代码,但是视频以不同的分辨率显示。

var constraints = {
  video: {
    width: 640,
    height: 480,
    frameRate: {
      ideal: 10,
      max: 15
    }
  }
};

1 个答案:

答案 0 :(得分:1)

尝试:

var constraints = {
  video: {
    width: {exact: 640},
    height: {exact: 480},
    frameRate: {
      ideal: 10,
      max: 15
    }
  }
};

请注意,尽管并非所有平台上的所有浏览器都可以缩小到任意尺寸,但您只能在离散的本机模式中进行选择。由于fitness distance的计算方式,通常看到分辨率变化就是这种情况的标志。因此,如果失败,请做好后备准备。

更好的策略可能是先获得所需分辨率的相机,然后使用applyConstraints降低其帧速率:

await stream.getVideoTracks()[0].applyConstraints({
  width: {exact: 640},
  height: {exact: 480},
  frameRate: {ideal: 10, max: 15}
]);

那样,如果失败了,您仍然会感到困惑。