Как изменить FPS в getusermedia с разрешением 640 * 480? - PullRequest
2 голосов
/ 18 октября 2019

Я изменил FPS в MediaDevices.getUserMedia(), но разрешение также изменилось. Как я могу уменьшить FPS, сохраняя при этом разрешение 640 × 480?

Я попробовал код ниже, но видео отображается в другом разрешении.

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

1 Ответ

1 голос
/ 19 октября 2019

Попробуйте:

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

Обратите внимание, что не все браузеры на всех платформах уменьшают масштаб до произвольных размеров, оставляя вместо этого выбор между дискретными собственными режимами. Наблюдение за изменениями разрешения обычно является признаком этого, поскольку рассчитывается фитнес-расстояние . Так что будьте готовы к отступлению, если это не удастся.

Лучшая стратегия может заключаться в том, чтобы сначала получить камеру в нужном разрешении, а затем использовать applyConstraints, чтобы уменьшить частоту кадров:

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

Таким образом, если она не работает, у вас все еще естьпар.

...