Я пытаюсь захватить видео со скоростью 60 кадров в секунду из веб-приложения в Chrome Android. У меня есть соответствующее ограничение video.frameRate
для вызова getUserMedia
. Chrome распознает настройку frameRate
и сообщает с помощью настройки видеодорожки, что он снимает со скоростью 60 кадров в секунду, но визуально видео только 30 кадров в секунду, а не 60. На том же устройстве через стандартное приложение Android Камера снимает плавно Видео со скоростью 60 кадров в секунду с тем же разрешением, что и я пробую через веб-приложение.
Я тестирую это с Chrome Android 84 на Pixel 3a. Я также тестировал на других телефонах с разрешениями, которые эти телефоны поддерживают со скоростью 60 кадров в секунду, и, несмотря на это, захватывает только со скоростью 30 кадров в секунду.
Ниже приведен пример кода, демонстрирующего это поведение. этот? Или захват со скоростью 60 кадров в секунду в настоящее время невозможен с Chrome Android?
<html>
<head>
<title>frameRate</title>
<script>
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
var constraints = {
video: {
width: { exact: 1920 },
height: { exact: 1080 },
facingMode: { ideal: "environment" },
frameRate: { exact: 60 }
}
};
navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
var video = document.getElementById('video');
video.srcObject = stream;
video.play();
document.getElementById('frameRate').innerHTML = 'frameRate: ' + stream.getTracks()[0].getSettings().frameRate;
});
}
</script>
</head>
<body>
<p id="frameRate"></p>
<video id="video" width="1920" height="1080"></video>
</body>
</html>