Невозможно воспроизвести файл webM на хроме с расширениями Media Source.Работает в Firefox и VLC - PullRequest
0 голосов
/ 19 октября 2018

В настоящее время я пытаюсь реализовать видеопроигрыватель с использованием расширений Media Source.В настоящее время это просто очень простое подтверждение концепции, следуя обучающей программе, которую я нашел здесь .

Я клонировал их репозиторий со всем исходным кодом из github здесь и тестирую реализациюна Chromium и Firefox с различными видеофайлами.

Все работало хорошо с примерами файлов webm в репозитории для обоих браузеров.

Затем я попытался преобразовать видео, загруженное с какого-то случайного сайта, с помощью ffmpeg и mse-tools для «выравнивания кластеров» файла webm с помощью следующих команд:

ffmpeg -i randomvideo.mp4 -c:v libvpx -c:a libvorbis output.webm
mse_webm_remuxer output.webm aligned.webm

Опять же, все было хорошо в обоих браузерах.

Наконец, я хотел преобразовать очень простоеанимация, которую я создал в blender (рендеринг с h264 в mp4).

Я попытался преобразовать полученный файл, используя тот же процесс, что и выше, и файл нормально воспроизводился в Firefox, но не загружался в Chromium.

Я предполагаю, что при преобразовании файла я допускаю какую-то ошибку, но, проверяя атрибуты конечного файла с помощью vlc и ffprobe, я не смог найти никаких очевидных проблем.

Есть идеи относительно того, что я делаю неправильно?

Последний тест, который я провел, состоял в том, чтобы зайти на этот сайт , чтобы получить образцы файлов webm.

Я скачал "Big Buck Bunny Trailer in Web"M "и" Elephants Dream как файл WebM ".

Оба файла работали в Firefox, но файл" Elephants Dream "не воспроизводился в Chrome.

Я на машине с Linux (ArchДистрибутив Linux) со следующими версиями браузеров:

Chromium Version 69.0.3497.100 (Официальная сборка) Arch Linux (64-битная версия)

Firefox 62.0.3 (64-битная версия))

Я поделился файлом, который я создал из анимации блендера (очень маленький - всего 36 КБ) на диске Google здесь на тот случай, если кто-нибудь захочет его проверить.

1 Ответ

0 голосов
/ 23 октября 2018

Итак, после того, как я постучал по выходным, я наконец-то понял проблему с моим крошечным файлом mp4, созданным в блендере.Размещать его здесь на тот случай, если у кого-то возникнут подобные проблемы.

Я попытался преобразовать свой оригинальный файл mp4 в различные другие программные пакеты, чтобы проверить, что ffmpeg делает что-то, что делает мой последний файл webm несовместимым.Попробовал пару онлайн-конвертеров и коммерческий видео конвертер (пробная копия), но у всех был одинаковый результат.Нет видео с MSE.Затем, случайно, я преобразовал его, используя KDENLIVE.На самом деле не преобразование, а скорее «рендеринг», как если бы это был проект редактирования видео.К моему удивлению, это сработало!После проверки различий между файлами я заметил, что KDENLIVE добавил аудиопоток в файл webm.

Это привело меня к осознанию того, что оригинальный файл без аудио генерировал веб-файл с типом mime 'video/webm; codecs="vp8"' (а не 'video/webm;codecs = "vp8,vorbis"').Поэтому решение для меня было либо изменить переданный mimetype на addSourceBuffer(), либо сгенерировать файл webm с приглушенным аудиопотоком (создав таким образом файл типа 'video/webm;codecs = "vp8,vorbis"').

Оба вышеупомянутых решения сработали, и мой файл смог воспроизвести хром.

В качестве заключительного примечания, файл "Слон слонов" с этого веб-сайта демонстрационных файлов по-прежнему не воспроизводится как есть, но я «перерисовал» его с помощью kdenlive, а также перекодировал с помощью ffmpeg, и в обоих случаях новый файл работал.Поэтому я считаю, что с оригинальным файлом могут быть проблемы.

...