Я и моя команда в последнее время изо всех сил пытались найти объяснение, почему Firefox создает большие видеофайлы WebM / VP8 по сравнению с Chrome при использовании MediaRecorder API в нашем проекте.
Короче говоря, мы записываем MediaStream
из HTMLCanvas
методом captureStream
.В попытке изолировать все от нашего приложения, которое может повлиять на это, я разработал небольшое специальное тестовое приложение, которое записывает <canvas>
и создает файлы WebM.Я проводил тесты с одинаковыми кадрами, длительностью видео, кодеком, A / V битрейтом и частотой кадров.Тем не менее, Firefox по-прежнему создает файлы в 4 раза больше по сравнению с Chrome.Я также пытался использовать другой источник MediaStream
, например, веб-камеру, но результаты были похожи.
Вот скрипка, которая должна продемонстрировать, о чем я говорю: https://jsfiddle.net/nzwasv8k/1/ https://jsfiddle.net/f2upgs8j/3/. Вы можете попробовать записать видео продолжительностью 10 или 20 секунд на FF и Chrome и заметить разницу между размерами файлов. Обратите внимание, что в этой демонстрации я использую только 4 относительно простых кадра / изображения. При использовании в реальных условиях, например, в нашем приложении, где мы записываем видеопоток с рабочего стола, мы достигли ошеломительной 9-кратной разницы.
Я ни в коем случае не гуру видеокодеков, но считаю, что браузеры должны следовать тем же спецификациям при реализации определенной технологии;поэтому такой огромной разницы не должно быть, я думаю.Учитывая, что мои знания ограничены, я не могу сделать вывод, является ли это ошибкой или чем-то совершенно ожидаемым.Вот почему я рассматриваю этот вопрос здесь, так как мои исследования по этой теме до сих пор ни к чему не привели.Я буду очень рад, если кто-то может указать, что за этим стоит логическое объяснение.Заранее спасибо!