Проблемы с HTML5 видео (mp4 и ogv) в Safari и Firefox - но Chrome - это хорошо

У меня есть следующий код:

<video width="640" height="360" controls id="video-player" poster="/movies/poster.png">
 <source src="/movies/640x360.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
 <source src="/movies/640x360.ogv" type='video/ogg; codecs="theora, vorbis"'> 
</video>
  • Я использую Rails (Mongrel в разработке и Mongrel+Apache в производстве).
  • Chrome (Mac и Win) может воспроизводить любой файл (проверенный одним, а затем и другими тегами источника) как локально, так и с моих производственных серверов.
  • Safari (Mac и Win) может нормально воспроизводить файл mp4 локально, но не с производства.
  • Firefox 3.6 не будет воспроизводить видео ни в одной из ОС. Я просто получаю серый крест в центре области видеоплеера.
  • Я убедился, что в Mongrel и Apache в каждом случае установлены правильные типы MIME.
  • Из результатов Chrome я знаю, что нет ничего плохого в моих видео файлах или в том, как файлы запрашиваются или доставляются.

Для Firefox я посмотрел https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox где он ссылается на событие "error" и атрибут "error". Кажется, событие 'error' генерируется довольно быстро, и в то время атрибута ошибки нет. Кто-нибудь знает, как диагностировать проблему?

6 ответов

Решение

Тип содержимого HTTP для.ogg должен быть application/ogg (video/ogg для.ogv), а для.mp4 это должен быть video/mp4. Вы можете проверить, используя веб-сниффер.

Добавьте эти строки в ваш файл.htaccess, и он будет работать для всех браузеров. Работает для меня.

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

Если у вас нет файла.htaccess на вашем сайте, то создайте новый:), это очевидно, я думаю.

Кстати, файлы.ogv - это видео, поэтому файлы "video / ogg",.ogg - это аудио Vorbis, поэтому файлы "audio / ogg" и.oga - это обычные аудио Ogg, а также "audio / ogg". Проверено в Firefox и работает. "application / ogg" не рекомендуется для всех видов аудио или видео. См. http://www.rfc-editor.org/rfc/rfc5334.txt

Я вижу на странице документации пример, подобный этому:

<source src="foo.ogg" type="video/ogg; codecs=&quot;dirac, speex&quot;">

Может быть, вы должны приложить codec информация с &quot; юридические лица вместо фактических кавычек и тому type атрибут с кавычками вместо апострофов.

Вы также можете попробовать удалить информацию кодека в целом.

Просто удалите внутренние кавычки - они запутывают Firefox. Вы можете просто использовать "video/ogg; codecs=theora,vorbis".

Кроме того, эта разметка работает в моем Minefiled 3.7a5pre, поэтому, если ваш файл ogv не воспроизводится, это может быть фиктивный файл. Как ты это создал? Возможно, вы захотите зарегистрировать ошибку в Firefox.

Просто нужно изменить одну букву:), переименуйте 640x360.ogv в 640x360.ogg, он будет работать для всех 3 браузеров.

Другие вопросы по тегам