Видео HTML5 не воспроизводится при размещении на моем сервере, нормально воспроизводится из внешнего источника

Я думаю, что исчерпал все возможности, пытаясь решить проблему, из-за которой видео HTML5 не воспроизводится на моем сайте. У меня есть простая демонстрационная страница (ниже), чтобы продемонстрировать, где я нахожусь. Изначально у меня было видео в разных форматах для разных браузеров, но для упрощения тестирования я сейчас просто работаю с webm и тестирую в Chrome (версия 41.0.2272.89 (64-разрядная версия) на Mac OSX Yosemite). Вы увидите базовую разметку со страницы выше.

Демонстрация 1 — видео .webm, размещенное локально на сервере — видео не воспроизводится

Я протестировал следующее:

  • Сам видеофайл доступен (cURL показывает заголовок ответа 200)
  • Видеофайл имеет правильный тип MIME (cURL показывает видео/webm, установленный .htaccess)
  • Видеофайл имеет нормальное разрешение (644)

... поэтому, если я не упустил что-то очевидное, разметка в порядке (для браузера, который я тестирую), а сам файл доступен и в правильном формате.

Хорошо, тогда проблема должна быть в самом файле? Возможно, проблема с кодеком или что-то еще, может быть, что-то повреждено при сжатии? Ну, я так не думаю...

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

Демонстрация 2 – та же разметка, но видео размещено в другом месте

У меня работает нормально!

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

Я могу только думать, что мое тестирование здесь исключило проблемы с самим видеофайлом, а также с HTML. Это наверняка проблема с конфигурацией сервера при анализе файла? Но с ответом 200, правильным типом MIME, добавленным через .htaccess, и правильными разрешениями, я не знаю, что еще попробовать.

Все остальные видят ту же проблему? Что еще я должен проверить?

Спасибо всем!


person Dom19811981    schedule 15.03.2015    source источник
comment
Только что кое-что заметил ... в то время как cURL показывает статус 200 для локально размещенного видеофайла, в инструментах разработчика Chrome на вкладке «Сеть» файл не загружается и показывает ERR_EMPTY_RESPONSE. Что может быть причиной этого? Я не знаком с отладкой в ​​инструментах разработчика.   -  person Dom19811981    schedule 15.03.2015


Ответы (2)


Я думаю, что ваша проблема заключается в поддержке диапазона байтов.

Если вы используете curl:

curl "http://alkemist.partners/video-js/small.webm" -H "Range: bytes=0-"

Вы увидите ответ Empty reply from server, но если вы удалите заголовок Range, ваш сервер вернет файл правильно.

person Pablo Montilla    schedule 15.03.2015
comment
Это хорошее место, Пабло, спасибо. Честно говоря, я не знаю, на что это указывает как на проблему с тем, что видео не воспроизводится. Возможно, это значит для вас что-то большее? - person Dom19811981; 16.03.2015
comment
Игроку, вероятно, потребуется поддержка диапазона для поиска, и он не будет ожидать ответа NO CONTENT на запрос диапазона... Я предполагаю, что у вас есть проблема с конфигурацией, которая не позволяет вашему серверу возвращать правильный ответ. - person Pablo Montilla; 16.03.2015
comment
Согласен... а в чем проблема конфига. Это стандартный стек LAMP, никакие изменения, сделанные мной, не предполагали бы поддержки из коробки для этого. - person Dom19811981; 17.03.2015
comment
Я понятия не имею, что может быть причиной этого ... может быть, спросить в superuser.com? - person Pablo Montilla; 17.03.2015
comment
Взгляните на stackoverflow.com/questions/26104359/ - person Pablo Montilla; 17.03.2015
comment
Пятно на Пабло ... Я действительно использовал более старую версию Apache, которая не поддерживала запрос пустого диапазона. Спасибо, что указали мне правильное направление! - person Dom19811981; 24.03.2015

Для всех, у кого видео HTML5 не отображается должным образом, проверьте следующее:

  • Поддерживаются типы MIME.
  • Исключите проблемы с самим видеофайлом
  • Проверьте свой сервер на поддержку запроса диапазона

В этом случае Apache 2.2.23 не поддерживал запрос пустого диапазона. Можно обновить Apache до версии 2.2.27, как описано в следующем потоке Диапазон: байты 0- НЕУДАЧА в Apache 2.2.23

Спасибо Пабло Монтилье за ​​руководство!

person Dom19811981    schedule 24.03.2015