Запись HTML MediaRecorder задерживается на потоке 1080p

Я читаю поток с внешней видеокамеры 1080p и 720p через API getUserMedia со следующей конфигурацией

let c_constraints = {
        audio: false,
        video: {
            deviceId: { exact: videoValue },
            width: { min: 320, ideal: 1280, max: 1920 },
        height: { min: 144, ideal: 720, max: 1080 },
            framerate: { min: 15, ideal: 30, max: 60 }
        }
     }
     navigator.mediaDevices.getUserMedia(c_constraints)
        .then((stream) => c_handleStream(stream))
        .catch((e) => c_handleError(e));

И записываем поток, используя следующие

 try {
        c_recorder = new MediaRecorder(currentCameraStream);
     } catch (e) {
        throw e
     }

Проблема -> это отлично работает на устройствах высокого класса, но на устройстве с 4 ГБ ОЗУ, Intel Core i3 при записи в 1080p и 720p я получаю лаги, а видео прерывистое только в течение первых 3 секунд, но оставшееся видео в порядке.

Кроме того, при воспроизведении этого записанного видео в медиаплеере VLC таймер сразу перескакивает с 00:01 на 00:03,

если бы это была проблема с памятью / буфером, это повлияло бы и на другие капли. Мне что-то не хватает, следует ли использовать MediaRecorder по-другому или с другими параметрами?

PS: я попытался использовать RecordRTC от сэра Муаза Хана, но это кажется тяжелым для ЦП, поскольку загрузка ЦП превышает 70% на вышеупомянутой машине, что делает машину очень медленной.

Пожалуйста, пролейте свет на это.


person vedang kulkarni    schedule 10.02.2020    source источник


Ответы (1)


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

person vedang kulkarni    schedule 14.02.2020