Невозможно воспроизвести файл webM на Chrome с расширениями Media Source Extensions. Работает в firefox и vlc

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

Я клонировал их репо со всем исходным кодом из 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

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

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

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

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

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

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

Я загрузил трейлер Big Buck Bunny Trailer в WebM и Elephants Dream в виде файла WebM.

Оба файла работали в firefox, но файл Elephants Dream не воспроизводился в хроме.

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

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

Firefox 62.0.3 (64-разрядная версия)

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


person raul    schedule 18.10.2018    source источник


Ответы (1)


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

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

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

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

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

person raul    schedule 22.10.2018