Как (псевдо) поток видео H.264 - через кросс-браузер и html5 путь? - PullRequest
2 голосов
/ 13 июля 2011

Я хочу встроить видео MP4 (H.264) так, чтобы оно работало в разных браузерах, но использовало html5, если оно доступно, для повышения производительности. Firefox должен использовать Flash, если я не предоставляю версию WebM.

Проблема:

Firefox загружает все видео перед началом воспроизведения, в то время как Chrome и другие браузеры воспроизводятся во время загрузки.

Вот что я сделал:

<video poster="poster.jpg" preload="auto" autobuffer autoplay loop >
  <source src="video.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
</video>

Для реализации отступления Flash я использовал jMediaElement:

jQuery(function(){
  jQuery('video').jmeEmbed();
});

Я попробовал некоторые альтернативы jMediaElement, но у меня были проблемы с сокрытием элементов управления и использованием автозапуска / зацикливания во флеш-плеере. jMediaElement использует JWplayer как запасной вариант, и все эти вещи просто работают, когда они объявлены в теге video.

Версия разработчика в данный момент находится по адресу: http://acn.lws -service.de /

Видео поставляется с MIME-типом "video / mp4", как и положено. Проблема может быть связана с JWplayer / jMediaElement - или это может быть само видео (кодировка)?

Также приветствуется альтернатива jMediaElement, которая по-прежнему позволяет видео автоматически воспроизводить, зацикливать и скрывать элементы управления.

Ответы [ 2 ]

3 голосов
/ 13 июля 2011

Проблема в вашем видео. Ваше видео не содержит данных Atom Moov, поэтому оно должно быть полностью загружено, чтобы воспроизвести его на флэш-памяти (без прогрессивной загрузки). Есть простое решение. Существует приложение Adobe Air, которое должно добавить ваши moov-данные в начало файла.

Вы можете скачать его здесь . Вы можете найти более подробную информацию здесь .

Об изменениях, внесенных в разметку. Вы должны всегда добавлять атрибут типа. Об автобуфере и предзагрузке. autobuffer действительно не совместим с HTML5 и был изменен на предварительную загрузку. FF3.6 поддерживает autobuffer, но не предварительную загрузку, к счастью, jMediaElement обнаружит это и автоматически установит autobuffer в значение true, если preload = "" / preload = "auto" присоединено. Но если вы используете автозапуск, вы автоматически настраиваете поведение плеера для загрузки видео в кратчайшие сроки. цикл также нормализуется с помощью jMediaElement, поэтому здесь нет проблем. Ваш HTML-код должен выглядеть следующим образом:

<video poster="poster.jpg" autoplay loop >
  <source src="video.mp4" type="video/mp4" />
</video>

или чуть короче:

<video poster="poster.jpg" src="video.mp4" type="video/mp4" autoplay loop ></video>
0 голосов
/ 13 июля 2011

autobuffer больше не является допустимым атрибутом, его заменили на preload (настройки none, metadata и auto)

loop в настоящее время неподдерживается Firefox.

Попробуйте пропустить объявление кодека в source и посмотрите, как это работает?

...