Firefox 33 и выше
Mozilla добавила поддержку OpenH264 в качестве плагина в Firefox 33 . Чтобы включить этот плагин, Firefox теперь автоматически загружает двоичный файл с веб-сайта OpenH264 при первом запуске программы.
Это звучит здорово, не так ли? Подожди ... это была игра слов.
Хотя это действительно очень удобное решение, оно также должно вызывать проблемы с безопасностью и конфиденциальностью, когда программное обеспечение автоматически загружает двоичные файлы с сайтов, связанных с Cisco Systems или другими компаниями, независимо от прозрачности процесса и лицензионного соглашения.
Не имеет прямого отношения, но если вы предпочитаете автоматически удалять файлы cookie, когда Firefox закрывается и не может найти нужный файл cookie для постоянного воспроизведения HTML5, я предлагаю установить YouTube ALL HTML5 .
Тесты с 14.04.2 и 15.04 виртуальными машинами
Я предположил, что одной лишь установки двоичного файла декодера H.264 будет недостаточно, поэтому я настроил 2 новые виртуальные машины:
- Ubuntu 14.04.2 с ограниченными дополнениями, установленными во время установки
- Ubuntu 15.04 без ограниченных надстроек, установленных во время установки
После того, как установка обеих виртуальных машин была завершена, я загрузил системы, снова обновил их, установил гостевые дополнения к виртуальной машине, запустил Firefox в первый раз и перезагрузился для фактического тестирования.
Поскольку YouTube также предлагает свои открытые форматы WebM , и я хотел бы не вдаваться в подробности о методах тестирования, мне нужно было использовать другой сайт с поддержкой HTML5 для тестирования проприетарной поддержки воспроизведения H.264. Я выбрал Vimeo, потому что они говорят, что по умолчанию используют HTML5 и, похоже, они не поддерживают WebM, что я считаю не очень хорошей вещью.
Всякий раз, когда я вносил в тест некоторые изменения, такие как установка пакета или включение / отключение чего-либо в Firefox, я закрывал и снова запускал Firefox.
14.04.2 с ограниченными аддонами
Как видно на этом скриншоте, в Firefox включен только плагин OpenH264, все необходимые пакеты GStreamer в разных версиях предустановлены, и видео воспроизводится, как и ожидалось.
15.04 без ограничений
Как вы можете видеть на этом скриншоте, плагин OpenH264 включен, плагин Flash отсутствует, несколько пакетов GStreamer в разных версиях предварительно установлены, но видео не воспроизводится! Вместо этого сайт немедленно сообщает нам, что видео не может быть воспроизведено. Почему это?
- AAC отсутствует! - Проще говоря, на сервере есть файл, который подается в наш браузер. Если вы ищете его с помощью инспектора из контекстного меню в Firefox, вы найдете MP4 с AAC-кодированным звуком. Сообщение об ошибке может быть более понятным, но оно имеет смысл, поскольку в настоящее время у нас не установлен декодер для AAC.
Обновление: Снова глядя на эту проблему с Firefox 41, я обнаружил, что OpenH264, кажется, отключен в about: config through:
media.fragmented-mp4.exposed;false
media.fragmented-mp4.gmp.enabled;false
Установка их true
не имела никакого эффекта. Дальнейшие настройки я пробовал:
media.audio_data.enabled;true
нет эффекта.
media.mediasource.enabled;true
Vimeo не использовал MSE раньше, включение этих и связанных с ними настроек не имело никакого эффекта.
media.fragmented-mp4.use-blank-decoder;true
Результат: сплошной зеленый холст и постоянный синусоидальный звуковой сигнал.
15.04 с ограниченными аддонами
Разумным подходом было бы установить gstreamer1.0-plugins-bad-faad
, но это не делает конкретное сообщение об ошибке в Vimeo, поэтому давайте установим все ограниченные дополнения.
Как и ожидалось, все работает, если вы позже установите пакет ограниченных аддонов , но вы можете установить плагин Flash на что-то другое, чем enabled
в Firefox, чтобы использовать видео HTML5.
Анализ или просто сломать
Очевидно, gstreamer1.0-libav
это единственный пакет, который нужно удалить, чтобы получить сообщение об ошибке. Значит, он использовал AAC-декодер libav? Я не копал глубже, чтобы найти подтверждение этому, и не искал, какой декодер будет предпочтительным (например, если OpenH264 в настоящее время используется в Linux) или Vimeo выдает это сообщение об ошибке из-за какой-то другой зависимости, не встречающейся несмотря на H .264 и AAC декодеры устанавливаются.
Резюме и перспективы
Подводя итог, для воспроизведения текущего основного потока требуется не только декодер H.264, но также декодер AAC, и H.265 уже готовится заменить более старый. Также я не вижу, чтобы соответствующая спецификация для MP4 с H.264 была изменена, чтобы рекомендовать в обозримом будущем более дружественный аудио кодек с открытым исходным кодом.
Серьезно, настаивайте на WebM! Вы получаете VP8 + Vorbis в качестве претендента на H.264 / AVC и VP9 + Opus в качестве претендента на H.265 / HEVC.