Как встроить WebM

Мне нужна помощь в устранении неполадок, почему встроенные WebM-файлы работают на некоторых системах, но не на других.

Воспроизводится ли этот встроенный WebM-клип у вас без открытия ссылки на новой странице? Какую операционную систему и браузер вы используете?

Я вставляю, просто копируя сырую ссылку в тело сообщения:

s1.webmshare.com/jvY0A.webm

Кликабельная ссылка: s1.webmshare.com/jvY0A.webm

Вот мои наблюдения:

ОС Браузер Результат
Ubuntu 20.04 Firefox 76 Не работает
Ubuntu 20.04 Chrome 81 Не работает
OSX 10.13.6 Chrome 81 Не работает
Android 7 DuckDuckGo Работает

По-моему, раньше это работало на Ubuntu 19.10, но я не буду откатываться, чтобы перепроверить.

Вот что отображается у меня в Firefox:

Не понимаю, почему ответ должен отличаться от этого:

Воспроизводится ли у вас встроенный WebM-клип?

Я проверил ещё раз, и в Firefox 86 и Chrome 88 на Ubuntu 20.04 по-прежнему появляется ошибка «No video with supported format and MIME type found» (Не найден видеофайл с поддерживаемым форматом и MIME-типом). Судя по данным CanIUse, всё должно работать.

Также интересно, что при открытом консоли разработчика Chrome оригинальная версия работает после обновления страницы:

Первая загрузка в Chrome:

Смешанный контент: страница по адресу ‘How to embed WebM’ была загружена через HTTPS, но запросила небезопасный элемент ‘http://s1.webmshare.com/jvY0A.webm’. Этот запрос был автоматически повышен до HTTPS. Подробнее см. Chromium Blog: No More Mixed Messages About HTTPS

Не удалось загрузить ресурс: сервер ответил со статусом 404 () s1.webmshare.com/jvY0A.webm:1

Обновление в Chrome (удивительно, что теперь работает — похоже, настройки безопасности ослаблены при открытых инструментах разработчика):

Смешанный контент: страница по адресу ‘How to embed WebM’ была загружена через HTTPS, но запросила небезопасный элемент ‘http://s1.webmshare.com/jvY0A.webm’. Этот запрос был автоматически повышен до HTTPS. Подробнее см. Chromium Blog: No More Mixed Messages About HTTPS

В Firefox ошибки немного отличаются, и после обновления страницы с открытой консолью разработчика загрузка всё равно не удаётся. Такое последовательное поведение кажется более логичным:

Загрузка смешанного (небезопасного) отображаемого контента «http://s1.webmshare.com/jvY0A.webm» на защищённой странице

Не удалось загрузить ‘http://s1.webmshare.com/jvY0A.webm’. ServiceWorker передал промис в FetchEvent.respondWith(), который был отклонён с ошибкой ‘Error: no-response :: [{“url”:“http://s1.webmshare.com/jvY0A.webm”}]’.

Все候选ные ресурсы не удалось загрузить. Загрузка медиа приостановлена.


Похоже на проблему с http против https. При использовании оригинальной ссылки (без префикса) по умолчанию используется http://. Вот ещё одна версия, явно включающая безопасный префикс https://, но она тоже не работает.

https://s1.webmshare.com/jvY0A.webm

Похоже, проблема на хосте webmshare, где их HTTPS-соединение на самом деле не является безопасным.

Немного раздражает, что Chrome, Firefox и DDG обрабатывают эту проблему по-разному.

Да, это не наша проблема, это проблема конкретного целевого сайта.

Оказывается, самый простой способ — просто перетащить файлы .webm прямо в форум, вместо того чтобы полагаться на внешний хостинг.

Перетаскивание (загрузка напрямую в экземпляр Discourse) генерирует:

![fontawesome2|video](upload://aI4h9yYRFK9BBCBLED4WcBr6Y1f.webm)

И всё работает отлично.