HTML Запись MediaRecorder задерживается в потоке 1080p - PullRequest
0 голосов
/ 10 февраля 2020

Я читаю поток внешней видеокамеры 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 секунд, но оставшееся видео просто отлично .

также, при воспроизведении этого записанного видео в медиаплеере VL C таймер напрямую переключается с 00:01 на 00: 03,

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

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

Пожалуйста, проясните это немного.

1 Ответ

0 голосов
/ 14 февраля 2020

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

...