Активация поддержки видео в h264 на Firefox 49 на Windows XP

Почему Firefox никогда не поддерживал видео в h264 на Windows XP, или экскурс в историю

Сначала Mozilla отказывалась поддерживать проприетарный и защищённый патентами формат h264, продвигая использование открытых кодеков, потом, когда стало понятно, что без поддержки h264 в современном вебе никуда, реализовала её при при помощи компонента Windows Media Foundation, отсутствующего в Windows XP. Когда Cisco предоставила открытые и лицензионно чистые кодеки OpenH264, было слишком поздно — никто не хотел переписывать рабочий код, использующий WMF, ради ОС, поддержка производителем которой была окончена, и внедрение OpenH264 ограничили видео по WebRTC.

Но многие (в том числе и я) всё ещё используют эту ОС по разным причинам, и не стоит им отказывать в просмотре видео в h264 в самом лучшем (по моему скромному мнению) браузере Firefox.

Помощь, откуда не ждали


После обновления на Firefox 48 я внезапно для себя обнаружил, что видео в h264 прекрасно работает.
Небольшое расследование привело меня к тому, что это стало возможно благодаря плагину Adobe Primetime, ориентированному на воспроизведение DRM видео.

На скриншоте ниже, полученном при помощи Process Explorer, видно, что процесс plugin-container, появившийся после загрузки страницы с видео, использует файл eme-adobe.dll из профиля текущего пользователя.



Зайдя в настройку плагинов Firefox, я нашёл там Adobe Primetime, отключение которого приводило к тому, что FF переставал воспроизводить h264, что доказывало, что именно он виновник этого торжества.
Но радость моя была не долгой.

Всё опять сломали


При очередном обновлении до Firefox 49 я с грустью обнаружил, что h264 опять не играется. Я не нашёл Adobe Primetime в списке плагинов, я не нашёл его файлов в профиле, а попытка их подсунуть ни к чему не привела.

В поисках по интернету я наткнулся на обсуждение предложения по скрытию Adobe Primetime на ОС ниже Vista. Оттуда я узнал, что этот плагин официально не поддерживает Windows XP, и на некоторых конфигурациях наблюдались проблемы со стабильностью. Но у меня же проблем не было!

В багтрекере была ссылка на «исправление» проблемы отображения плагина Primetime на XP. Опираясь на код из него, я сделал исправление, которое откатывает вредный эффект данных изменений.

Исправление


Обновление: более простой и корректный способ указан в P.S, файлы править не нужно. Предыдущий вариант исправления остаётся в исторических целях.
Необходимо разархивировать файл omni.ja из корневой директории браузера, найти там файл /jsloader/resource/gre/modules/GMPUtils.jsm, открыть в любом шестнадцатеричном редакторе, и заменить там байты

6973506C6174666F726D416E6456657273696F6E41744C656173740700000077696E0300000036

на

6973506C6174666F726D416E6456657273696F6E41744C656173740700000077696E0300000035

Тем самым мы включим работу плагина на ядре NT 5.0 и выше, вместо NT 6.0. После исправления необходимо упаковать файлы обратно в omni.ja. Архивация с обычными параметрами тут не подойдёт, нужно использовать консоль:

zip -qr9XD omni.ja *

После замены им оригинала всё опять заработало.

Замечу, что необходимо так же активировать поддержку воспроизведения видео при помощи плагинов, в about:config необходимо выставить в true:

media.gmp.decoder.enabled

У меня эта настройка была давно включена, в надежде на работу h264 через OpenH264. После этого можно наслаждаться видео в h264 на любых сайтах, в том числе YouTube, Vimeo, сервисах онлайн-трансляций и т.д.

image
(тест на чистой ОС в виртуальной машине)

Я создал запрос в Bugzilla на возврат поддержки плагина Primetime на Windows XP, но что-то мне подсказывает, что это закончится ничем.
Предлагаю помочь в исправлении описания запроса, так как я косноязычен даже на русском языке (если вы не заметили), а уж на английском понятность моих пояснений полностью теряется, что ещё более снижает шансы на официальное исправление этой проблемы в будущих версиях Firefox.

Послесловие


Для тех, кому лень возиться с HEX- редакторами и архиватором, прикладываю ссылку на каталог на Яндекс.диске, куда я буду сбрасывать свои исправленные файлы omni.ja после обновлений. Пока там лежит один файл из актуальной версии.

Замечание для параноиков (коим являюсь я сам)
Плагины в Firefox запускаются в изолированном процессе, не имеющим доступ к странице, поэтому ничего страшного в использовании плагина с закрытым кодом нет. Хоть я и предлагаю скачать исправленный файл, я также даю инструкции по его самостоятельному исправлению выше.

Получившийся у вас файл omni.ja при бинарном сравнении может отличатся от моего даже на одной версии FF, так как используются разные архиваторы, его версии и параметры сжатия по умолчанию.

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

P.S. Обновление


На Bugzilla подсказали более простой и корректный способ активации плагина. Достаточно создать в about:config настройку:

media.gmp-eme-adobe.forceSupported

И выставить её в true. Так же необходимо выставить в true уже существующий параметр media.gmp.decoder.enabled, и проверить на всякий случай параметры media.gmp-eme-adobe.visible и media.gmp-eme-adobe.enabled, они активированы по умолчанию, но мало ли. Это позволяет активировать плагин без бинарных патчей файла, поэтому новые версии выкладывать не буду.
Support the author
Share post

Similar posts

Comments 65

    +3
    > Но многие (в том числе и я) всё ещё используют эту ОС
    Как оно там в 2006?
      +5
      Я в 2016, всё отлично!
      Это просто личный выбор, ничего более. Статья преследовала цель дать информацию людям об активации возможности декодирования h264 на XP, и не преследовала целью начать обсуждение о нужности или ненужности данной ОС.
        0
        на скринште у вас i5 Ivy Bridge, XP адекватно работает на таком железе? нет проблем с драйверами?
          0
          Интел пожмотилась на драйвера на USB 3.0, работает на стандартных как 2.0, с остальным всё отлично.
        +4
        Все норм, активация без смс!
          +3
          Вы не предложили скачать реактос. Вы точно Jeditobe?
      +14

      Быть параноиком на XP — это сильно!

        0
        Кстати, да, самая несекьюрная система же!
          –1
          Как бы стоит почти во всех банкоматах. Приятного пополнения счёта =3
          А вообще защищённость ОС из коробки и возможности по её защите встроенными средствами это разные стороны слова «несекьюрная» или «секьюрная». И если ХР можно настроить в защищённый режим (правда тормозит, настраивать с неделю если не больше), то все последующие не знаю возможно ли в принципе. (для ХР есть толмут как настроить её в безопасный режим)
          +2
          На XP дырки, на десятке телеметрия- податься виндоюзеру-параноику некуда )
          Впрочем, при должной настройке и на XP безопасно, запуск кода ограничен политиками безопасности, запись в системные каталоги невозможна для ограниченного пользователя, а EMET защищает от эксплуатации популярных уязвимостей.
            0
            Телеметрию (если не рассматривать вариант «спиратить Enterprise и отключить её полностью») можно порезать соответствующими правилами в hosts или прямо на маршрутизаторе (есть уже готовые обновляемые подписки), а вот самостоятельно залатать уязвимости в закрытом коде труднее.
              0
              Самая базовая дыра это RPC в списке сервисов. Вырубив её закрывается достаточно много дыр, но если память не изменяет, не работает RDP в таком режиме.
                0
                На Linux — там и Firefox есть и много всего другого.
                +2
                У меня куча знакомых все еще сидят на XP и это их не парит вообще, система стабильна, все чем они пользуются там имеется, в современные игры никто не играет. В общем то вот))
                +12
                Не хватает тега «прикладная некрофилия».
                  +1
                  XP FOREVER. А если серьёзно… А Вы не думали, что XP — это по истине самый удачный продукт MS? Что дали системе все современные средства защиты вроде DEP и ASLR? Что дали все эти хитроумные трюки по запутыванию кода ядра? С точки зрения безопасности — ничего. Вирусы как были — так и есть. RCE как было, так и есть. А вот на порядок усложнённое программирование и невозможность нормального вмешательства в работу ядра — это да, появилось. И теперь ещё сложнее, если не невозможно, определять какие-то непонятные потоки в системе, виснуть на ключевые точки в ядре. К тому же ОС разрослась на столько, что одному человеку объять её умом сложновато становится.

                  Вот что лично Вам даёт NT версии старше 5? Что вообще по хорошему надо программисту? Мультизадачность, сокеты, файловую систему. GUI. А вот так нужный всем FUSE MS значит решила не делать? Или drive read only, что было бы крайне полезно на SDD с кучей мелких файлов, на которых десятка любезно постоянно меняет даты последнего открытия файла, убивая SDD на ровном месте.

                  XP просто благодаря своей изученности позволяет контролировать куда больше, настраивать куда больше. Писать более интересные драйвера. А если бы MS ещё раскрыли более-менее её потенциал, убрали бы ограничение в 4 Гб на x86 версии — то система бы ещё жила и жила.
                    0
                    Абсолютно с Вами согласен, замечательная система. А политика Mozilla, программисты которой маленький модуль поленились переписать на использование альтернативного кодека от Cisco — просто добивает.
                  +1
                  И эти люди ноют по форумам, что их смартфон не обновлялся до 7 версии чего бы то ни было и вендор мобилы их обманул?
                  • UFO just landed and posted this here
                    0

                    Установка значений


                    media.gmp-eme-adobe.visible = true
                    media.gmp-eme-adobe.enabled = true
                    media.gmp.decoder.enabled = true

                    помогла?

                      0
                      См. Обновление в статье. Необходим ещё один параметр, эти не позволяют активировать плагин на XP, хотя они всё равно нужны.
                      0
                      Для технофилов а-ля «гыгы, они сидят на XP»: Например есть старый ноут, драйвера под который есть на линукс и на XP. Что на нем и стоит в итоге ))
                        +1
                        Можно понять, но есть ещё вопрос практической пригодности такой техники для прикладных задач в 2016.
                        • UFO just landed and posted this here
                            +6
                            А зачем вообще файлопомойке гуй?
                            • UFO just landed and posted this here
                              +2
                              Даже XFCE?
                                0
                                У меня есть пара старых TabletPC, один на атоме, а второй на, прости осспаде, процессоре Transmeta Crusoe. На тот, что на атоме, я когда-то успешно ставил Windows 7, но тормозило и ело слишком много гигабайт не самого большого харда — откатился на ХП. Периодически использую девайсы, обычно для чтения доков с мануалами, когда сломаю основной компьютер чем-то типа установки генту. Учитывая, сколько развелось е… в смысле, стильно-молодёжных людей, постящих инструкции исключительно в виде видео на ютубе, флэш и видео бывают вполне актуальны. Видео, правда, даже атом уже тянет с трудом, на Crusoe лучше не пробовать даже. Иногда еще бывает нужно что-нибудь нарисовать — конечно, поседеешь и посинеешь, пока дождёшься загрузки гимпа на этом доисторическом навозе мамонта, но рисование пером прямо по экрану всё искупает, даже с учётом лагов!

                                Можно спросить, конечно, зачем так себя мучить, не лучше ли перестать жмотиться и купить уже нормальный ноутбук. Но ведь и эти всё равно выкидывать жалко!!! Да и цена на виндовые трансформеры со стилусами какая-то негуманная, учитывая, что использоваться оно будет пару раз в году, по случаю.
                                  0
                                  Видео, правда, даже атом уже тянет с трудом, на Crusoe лучше не пробовать даже.

                                  К сожалению, описанное мною решение, судя по всему, не использует аппаратное ускорение для декодирования. Просмотр видео на ютубе может кушать до 20% моего ЦПУ.
                                0
                                Обычная разработка. Среды, базы данных, окружение. Работает без нареканий.
                                0
                                Что же там такого сверхъестественного и нужного из неработающего? COM-порт?
                                0
                                Статья обновлена, бинарный патч теперь не нужен, плагин можно активировать через настройку в about:config.
                                  +3
                                  Интересный у вас конфиг — Ivy Bridge, 1GB ОЗУ и Windows XP… В виртуальной машине видео смотрите?
                                    0
                                    Мой FireFox за годы работы основательно настроен, затвикан, стоит почти три десятка расширений, и я не был уверен, что приведённых мною настроек было достаточно. Мало ли, что я ещё мог поменять. Поэтому и нужен был тест на чистой виртуальной машине, что и указано под изображением в скобочках.
                                    А конфиг у меня вполне сбалансирован, разве что ОП вышло больно много (24ГБ и х64 версия XP), но так вышло.
                                      0
                                      довольно любопытно, xp x64...:) Давненько, еще до выхода windows 8.1 сам сидел на ней, но с развитием vga passthrough пересел на windows 10 в kvm виртуалке, в которой есть доступ только к интернету(через vpn :) ), на windows установлен steam с карточкой, привязанной виртуальной карточкой. Пускай себе следит :)
                                        0
                                        vga passthrough

                                        К сожалению, это требует специфического оборудования. Моё железо, купленное с расчётом «Дёшево и сердито», его не поддерживает, а менять платформу слишком дорого выходит.
                                        0
                                        Я просто копирую папку FF из %appdata%, уже пару компов так сменил.
                                          0
                                          Облегчите себе жизнь как я, в ярлыке —
                                          «путь\Mozilla Firefox\firefox.exe» -profile «путь\Mozilla Firefox\prof»
                                          папка prof сама создается при запуске и папки профиля все там же в аппдата остаются лишь папки краш и апдейтов но что то подсказывает мне что у вас линукс
                                            0
                                            Сомнительное улучшение — забыл вставить путь в ярлыке и остался без профиля. А в AppData всё равно куча других настроек, которые надо бекапить и переносить.
                                              0
                                              Не совсем понял, даже если запустить с default ярлыком то всего лишь в AppData создастся новый профиль, у меня на диске D файрфокс и в нем же папка профиля и там же на диске D все ярлыки программ
                                      0
                                      Сразу вспомнилось это видео.
                                        0
                                        А можно озвучить причину кроме «не нравится» для использования XP в 2016?

                                        PS: про телеметрию и прочую паранойю прочитал.
                                          +1
                                          А что, требуются какие-то ещё причины, кроме желания пользователя?
                                            +4
                                            «Всё, что надо, работает, зачем что-то менять?»
                                            Вдруг человеку для счастья не хватало только h264?
                                              0
                                              Именно так, практически. Это одна из тех немногих вещей, которая меня реально расстраивала.
                                              0
                                              Например сканер тойоты (старая версия), орингинально ставится на ХР таблет. Зачем чтото менять?
                                                +1
                                                  0
                                                  Тормоза на всём, что старше XP, даже на относительно мощном железе. Плюс отсутствие классического, выровненного по целым пикселям ClearType. Такой аргумент подойдёт?)

                                                  P.S. У меня не калькулятор, а средний комп на Core i5 второго поколения, но тормоза сильные, при том, что семёрка в плане установленного софта намного чище. ПО ощущениям, виной большее число служб в автозагрузке, и более интенсивное обращение к диску на старте, плюс работающие UAC и аналоги (например, установщики программ даже при отключенном UAC запускаются и работают несколько дольше, с чем связано — не знаю). Плюс ряд ресурсов уходит на механизмы защиты вроде перемешивания виртуальных страниц в RAM, или как там это всё правильно назвать. Не думаю, что это абсолютно «бесплатно» для процессора.
                                                    0
                                                    Кстати, должен добавить, что касаемо доступа к диску — на XP всё хуже чем на новых ОС, если работать в IDE Compatible режиме SATA, но шустрее, чем на семёрке (или как минимум так же), если поставить правильные дрова на AHCI от Intel. Этот драйвер просто творит чудеса. Видимо, оптимизация очереди запросов на запись даёт такие плоды.
                                                    +3
                                                    После исправления необходимо упаковать файлы обратно в omni.ja.

                                                    Не надо так. Даже, если бы вам не подсказали нужную настройку в about:config, изменять ресурсы — плохая идея, после каждого обновления браузера операцию придётся повторять.

                                                    Интересную реализацию я углядел здесь: http://www.ghacks.net/2016/08/14/override-firefox-add-on-signing-requirement/
                                                    вместо изменения .jsm в ресурсах мы заставляем браузер при запуске выполнять наш js-код, который вносит необходимые изменения «на лету», не трогая файлы на диске.
                                                      0
                                                      Спасибо, возьму на заметку.
                                                    • UFO just landed and posted this here
                                                        0
                                                        В WinXP вполне было комфортно даже на Pentium 200MMX с 256MB оперативки. Правда после сервис пака винда стала жрать больше ресурсов, пришлось откатиться на W2k.
                                                        +1
                                                        Английский вроде знаем, но гуглом пользоваться не умеем?
                                                        http://www.msfn.org/board/topic/175591-enable-mp4-h264-aac-html5-video-in-firefox-on-windows-xp-without-flash/
                                                          0
                                                          Я гуглил множество раз до этого, в том числе и на английском, но ничего не находил. В конце концов я забил на гуглинг, потеряв надежду найти что-нибудь стоящее.
                                                          Хоть я и изобрёл велосипед, зато мой пост первый на русском, а не все умеют искать на английском.
                                                        0
                                                        А кто-нибудь знает, как установить этот плагин оффлайн? Если Adobe уберёт ссылку на его из загрузку.
                                                        Пытаюсь сейчас на 52 ESR и не получается.
                                                          0
                                                          А кто-нибудь знает, как установить этот плагин оффлайн?

                                                          По идее достаточно скопировать каталог плагина из профиля, где он уже установлен.
                                                            0
                                                            Не работает пробовал. В смысле, установил плагин по инструкции https://forum.mozilla-russia.org/viewtopic.php?pid=724204, затем вырезал из папки профиля C:\Documents and Settings\Андрей\Application Data\Mozilla\Firefox\Profiles\o5ryksit.default-1492536865828 папку gmp-eme-adobe. В этой папке ещё папка 17 в которой три файла. Я сбросил настройки FF, затем вернул папку gmp-eme-adobe обратно, вернул все настройки для включения плагина кроме media.gmp-manager.url. Плагин висит в состоянии предзагрузки, то есть FF хочет в любом случае загрузить его из ссылки по media.gmp-manager.url.
                                                            С plugins.load_appdir_plugins = true так же не сработало.
                                                            Сейчас вот собираю по крохам инфу для адекватной работы FF на вин XP, многое нашёл. На некоторых компах даже аппаратное ускорение заработало на встроенной графике и ютуб вместо 360 стал выдавать 720 с VP9 кодеком.
                                                          +1
                                                          Помогло. Спасибо.
                                                            0
                                                            Для ESR 52 обновилась информация на форуме первоисточнике http://www.msfn.org/board/topic/175591-enable-mp4-h264-aac-html5-video-in-firefox-on-windows-xp-without-flash/ теперь можно поставить плагин и оффлайн.
                                                            Если комп вытягивает в браузере 720p на ютубе, можно поставить расширение h264ify
                                                            Если комп не тянет 720p в браузере, можно поставить расширение Byffox YouTube Downloads https://addons.mozilla.org/ru/firefox/addon/byffox-youtube-downloads/?src=ss Если кликнуть правой кнопкой мышки по выбранному разрешению и скопировать ссылку, можно вставить её в любой плеер умеющий проигрывать потоковое видео.

                                                            Only users with full accounts can post comments. Log in, please.