#javascript #html #ruby #https #html5-video
Вопрос:
Я создаю веб-сайт под названием bobPlayer, и по какой-то причине он не загружает файл MP4, передаваемый по протоколу HTTPS. Он просто показывает следующее: Ссылка на скриншот плеера.
Попытка нажать кнопку воспроизведения или нажать пробел не приведет к воспроизведению видео.
Видео отлично работает, когда кэширование отключено с помощью DevTools в chrome.
В разделе заголовка моего фактического HTML — кода я содержал следующие мета-теги, но Chrome по-прежнему отказывается воспроизводить видео:
<meta http-equiv="Cache-Control" content="private, no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Эта проблема НЕ возникает в Safari/Chrome на iOS, однако я и 2 других друга сталкиваемся с проблемой на ПК. (В частности, только для Chrome, похоже, он отлично работает в Firefox.)
Сервер, на котором размещаются эти видео, работает на Ruby и аутентифицируется по протоколу HTTPS, поскольку веб-сайт не допускает смешанного содержимого HTTP и HTTPS.
На сервере хранятся файлы MP4 этих видео. Это не должно быть причиной моих проблем, так как все современные веб-браузеры поддерживают MP4. Сервер работает с Ruby в строке с запятой, используя следующую команду:
ruby -run -e httpd . --ssl-certificate=/home/pi/.ssl/certificate.crt --ssl-private-key=/home/pi/.ssl/private.key -p 8010
Веб-страница решает, какое видео воспроизводить с помощью скрипта, который сопоставляет URL-тег ?episode=123
с URL-адресом, размещенным в файле JSON. Видео, которое нужно воспроизвести, находится в пределах 1-405. Эта проблема также возникает при попытке воспроизвести видео с помощью тега, который не выделяется динамически, где исходный файл закодирован в HTML-файл, а не заменен кодом JS.
Весь код доступен на GitHub, однако видео размещаются не там, а на сервере Ruby httpd, как упоминалось ранее.
Любая помощь была бы очень признательна.
Комментарии:
1. Код состояния для MP4-206 Частичное содержимое. Я нахожусь на грани последней версии.
2. Учитывая, что проблема может быть воспроизведена без JS или Ruby, я бы предложил удалить эти теги и показать наименьший релевантный HTML.
Ответ №1:
Держу пари, что это проблема с видеоформатом. iOS поддерживает кодировку h265 во всех браузерах, в то время как Chrome в Windows этого не делает. Какова кодировка видеофайла? Вы можете протестировать с помощью https://ffprobe.a.video (и добавьте URL-адрес видео).
Комментарии:
1. На веб — сайте указано, что форматирование равно h264. При вставке ссылки в chrome она просто загружает файл, а не воспроизводит его. Я предполагаю, что это какие-то другие метаданные, из-за которых видео не работает.