Сначала 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, сервисах онлайн-трансляций и т.д.
(тест на чистой ОС в виртуальной машине)
Я создал запрос в Bugzilla на возврат поддержки плагина Primetime на Windows XP, но что-то мне подсказывает, что это закончится ничем.
Предлагаю помочь в исправлении описания запроса, так как я косноязычен даже на русском языке (если вы не заметили), а уж на английском понятность моих пояснений полностью теряется, что ещё более снижает шансы на официальное исправление этой проблемы в будущих версиях Firefox.
Послесловие
Для тех, кому лень возиться с HEX- редакторами и архиватором, прикладываю ссылку на каталог на Яндекс.диске, куда я буду сбрасывать свои исправленные файлы omni.ja после обновлений. Пока там лежит один файл из актуальной версии.
Получившийся у вас файл 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, они активированы по умолчанию, но мало ли. Это позволяет активировать плагин без бинарных патчей файла, поэтому новые версии выкладывать не буду.
Комментарии (57)
nazarpc
03.10.2016 20:32+14Быть параноиком на XP — это сильно!
VioletGiraffe
03.10.2016 21:45Кстати, да, самая несекьюрная система же!
Louter
04.10.2016 11:28-1Как бы стоит почти во всех банкоматах. Приятного пополнения счёта =3
А вообще защищённость ОС из коробки и возможности по её защите встроенными средствами это разные стороны слова «несекьюрная» или «секьюрная». И если ХР можно настроить в защищённый режим (правда тормозит, настраивать с неделю если не больше), то все последующие не знаю возможно ли в принципе. (для ХР есть толмут как настроить её в безопасный режим)
sumanai
03.10.2016 21:49+2На XP дырки, на десятке телеметрия- податься виндоюзеру-параноику некуда )
Впрочем, при должной настройке и на XP безопасно, запуск кода ограничен политиками безопасности, запись в системные каталоги невозможна для ограниченного пользователя, а EMET защищает от эксплуатации популярных уязвимостей.dartraiden
04.10.2016 09:51Телеметрию (если не рассматривать вариант «спиратить Enterprise и отключить её полностью») можно порезать соответствующими правилами в hosts или прямо на маршрутизаторе (есть уже готовые обновляемые подписки), а вот самостоятельно залатать уязвимости в закрытом коде труднее.
Louter
04.10.2016 11:24Самая базовая дыра это RPC в списке сервисов. Вырубив её закрывается достаточно много дыр, но если память не изменяет, не работает RDP в таком режиме.
The_STIFFLER
04.10.2016 15:33+2У меня куча знакомых все еще сидят на XP и это их не парит вообще, система стабильна, все чем они пользуются там имеется, в современные игры никто не играет. В общем то вот))
hdfan2
03.10.2016 20:48+12Не хватает тега «прикладная некрофилия».
AndrewLabs
05.10.2016 05:04+1XP FOREVER. А если серьёзно… А Вы не думали, что XP — это по истине самый удачный продукт MS? Что дали системе все современные средства защиты вроде DEP и ASLR? Что дали все эти хитроумные трюки по запутыванию кода ядра? С точки зрения безопасности — ничего. Вирусы как были — так и есть. RCE как было, так и есть. А вот на порядок усложнённое программирование и невозможность нормального вмешательства в работу ядра — это да, появилось. И теперь ещё сложнее, если не невозможно, определять какие-то непонятные потоки в системе, виснуть на ключевые точки в ядре. К тому же ОС разрослась на столько, что одному человеку объять её умом сложновато становится.
Вот что лично Вам даёт NT версии старше 5? Что вообще по хорошему надо программисту? Мультизадачность, сокеты, файловую систему. GUI. А вот так нужный всем FUSE MS значит решила не делать? Или drive read only, что было бы крайне полезно на SDD с кучей мелких файлов, на которых десятка любезно постоянно меняет даты последнего открытия файла, убивая SDD на ровном месте.
XP просто благодаря своей изученности позволяет контролировать куда больше, настраивать куда больше. Писать более интересные драйвера. А если бы MS ещё раскрыли более-менее её потенциал, убрали бы ограничение в 4 Гб на x86 версии — то система бы ещё жила и жила.
sashabeep
03.10.2016 20:53+1И эти люди ноют по форумам, что их смартфон не обновлялся до 7 версии чего бы то ни было и вендор мобилы их обманул?
ogoNEKto
03.10.2016 21:44Для технофилов а-ля «гыгы, они сидят на XP»: Например есть старый ноут, драйвера под который есть на линукс и на XP. Что на нем и стоит в итоге ))
VioletGiraffe
03.10.2016 21:53+1Можно понять, но есть ещё вопрос практической пригодности такой техники для прикладных задач в 2016.
sleeply4cat
03.10.2016 22:18У меня файлопомойка с 4 пнём и DDR1, например. Любая графическая оболочка современного линукса лагает просто неистово.
Зачем, впрочем, на ней нужен флэш — вопрос отдельный3aicheg
04.10.2016 05:06У меня есть пара старых TabletPC, один на атоме, а второй на, прости осспаде, процессоре Transmeta Crusoe. На тот, что на атоме, я когда-то успешно ставил Windows 7, но тормозило и ело слишком много гигабайт не самого большого харда — откатился на ХП. Периодически использую девайсы, обычно для чтения доков с мануалами, когда сломаю основной компьютер чем-то типа установки генту. Учитывая, сколько развелось е… в смысле, стильно-молодёжных людей, постящих инструкции исключительно в виде видео на ютубе, флэш и видео бывают вполне актуальны. Видео, правда, даже атом уже тянет с трудом, на Crusoe лучше не пробовать даже. Иногда еще бывает нужно что-нибудь нарисовать — конечно, поседеешь и посинеешь, пока дождёшься загрузки гимпа на этом доисторическом навозе мамонта, но рисование пером прямо по экрану всё искупает, даже с учётом лагов!
Можно спросить, конечно, зачем так себя мучить, не лучше ли перестать жмотиться и купить уже нормальный ноутбук. Но ведь и эти всё равно выкидывать жалко!!! Да и цена на виндовые трансформеры со стилусами какая-то негуманная, учитывая, что использоваться оно будет пару раз в году, по случаю.sumanai
04.10.2016 05:15Видео, правда, даже атом уже тянет с трудом, на Crusoe лучше не пробовать даже.
К сожалению, описанное мною решение, судя по всему, не использует аппаратное ускорение для декодирования. Просмотр видео на ютубе может кушать до 20% моего ЦПУ.
sashabeep
03.10.2016 22:19Что же там такого сверхъестественного и нужного из неработающего? COM-порт?
sumanai
03.10.2016 21:52Статья обновлена, бинарный патч теперь не нужен, плагин можно активировать через настройку в about:config.
V1tol
03.10.2016 22:30+3Интересный у вас конфиг — Ivy Bridge, 1GB ОЗУ и Windows XP… В виртуальной машине видео смотрите?
sumanai
03.10.2016 22:35Мой FireFox за годы работы основательно настроен, затвикан, стоит почти три десятка расширений, и я не был уверен, что приведённых мною настроек было достаточно. Мало ли, что я ещё мог поменять. Поэтому и нужен был тест на чистой виртуальной машине, что и указано под изображением в скобочках.
А конфиг у меня вполне сбалансирован, разве что ОП вышло больно много (24ГБ и х64 версия XP), но так вышло.loltrol
04.10.2016 05:06довольно любопытно, xp x64...:) Давненько, еще до выхода windows 8.1 сам сидел на ней, но с развитием vga passthrough пересел на windows 10 в kvm виртуалке, в которой есть доступ только к интернету(через vpn :) ), на windows установлен steam с карточкой, привязанной виртуальной карточкой. Пускай себе следит :)
sumanai
04.10.2016 05:13vga passthrough
К сожалению, это требует специфического оборудования. Моё железо, купленное с расчётом «Дёшево и сердито», его не поддерживает, а менять платформу слишком дорого выходит.
navion
04.10.2016 14:55Я просто копирую папку FF из %appdata%, уже пару компов так сменил.
wull
04.10.2016 20:29Облегчите себе жизнь как я, в ярлыке —
«путь\Mozilla Firefox\firefox.exe» -profile «путь\Mozilla Firefox\prof»
папка prof сама создается при запуске и папки профиля все там же в аппдата остаются лишь папки краш и апдейтов но что то подсказывает мне что у вас линуксnavion
04.10.2016 23:24Сомнительное улучшение — забыл вставить путь в ярлыке и остался без профиля. А в AppData всё равно куча других настроек, которые надо бекапить и переносить.
wull
05.10.2016 10:03Не совсем понял, даже если запустить с default ярлыком то всего лишь в AppData создастся новый профиль, у меня на диске D файрфокс и в нем же папка профиля и там же на диске D все ярлыки программ
dartraiden
04.10.2016 09:47+3После исправления необходимо упаковать файлы обратно в omni.ja.
Не надо так. Даже, если бы вам не подсказали нужную настройку в about:config, изменять ресурсы — плохая идея, после каждого обновления браузера операцию придётся повторять.
Интересную реализацию я углядел здесь: http://www.ghacks.net/2016/08/14/override-firefox-add-on-signing-requirement/
вместо изменения .jsm в ресурсах мы заставляем браузер при запуске выполнять наш js-код, который вносит необходимые изменения «на лету», не трогая файлы на диске.
Ivan_83
04.10.2016 20:11+2Хз чего все накинулись на автора из за ХР.
Не менйстрёмово как вин 10, а автору норм. Так же вероятно что у него есть какой то софт/дрова который уже в семёрке не пашет. А может просто ему так удобнее.
У папы есть живой ноут с п4 селерон и 512 оперативы, ХР там более чем комфортно, а семёрка будет только тормозить, если вообще получится поставить и дрова найти.
Если бы мой EEEPC не сдох то с ним было бы тоже самое.
В одной организации по одной из программ МС досталась куча софта почти за даром, больше половины компов там было уровня п4 селерон 1800, 1гб озу, мх400 видюха — это всё прекрасно летало в ХР даже загаженых но с лицензионной семёркой даже после отключения не нужного оно работало так себе, я уж молчу что дров под семёрку на такое старое видео не было, и интел кинул с дровами даже пользователей матерей на 9хх чипсетах где была не плохая встройка.
Касательно венды — я вообще не понимаю к чему в быту эти заморочки с ХР, вин 7, вин 10 когда есть 2003, 2008р1 и теперь 2016 — прикол то в том, что проблем там как юзерам так и юзерам которые не хотят платить на порядки меньше: туда не ставят всякий мусор против активаторов в апдейтах, всякие принуждаторы к апдейту, не отключают никаких возможностей. При этом игры и почти всё остальное ПО там работают также.
Или вот апдейты — у 2к3 они кончились только в начале этого года, а юзера ХР уже давно без них. (я в курсе про WePOS, но их там на порядок меньше обычного)
Помню как проводник, «управление компьютером» и диалог сохранения файла стали сильно хуже в семёрке, встроенная служба для бесперебойников АПЦ исчезла, памяти система стала жрать больше (ХР жрала 100 мегов оперативы после бута, семёрка от 600), а вот сказать что стало лучше затрудняюсь.
Из причин перехода с 2к3х64 помню только что винт уже пора было апгрейдить (те систему переставлять в любом случае) и желание не терять связь с пользователями которых иногда супортю.Wedmer
05.10.2016 17:51В WinXP вполне было комфортно даже на Pentium 200MMX с 256MB оперативки. Правда после сервис пака винда стала жрать больше ресурсов, пришлось откатиться на W2k.
smes
05.10.2016 05:13+1Английский вроде знаем, но гуглом пользоваться не умеем?
http://www.msfn.org/board/topic/175591-enable-mp4-h264-aac-html5-video-in-firefox-on-windows-xp-without-flash/sumanai
05.10.2016 05:15Я гуглил множество раз до этого, в том числе и на английском, но ничего не находил. В конце концов я забил на гуглинг, потеряв надежду найти что-нибудь стоящее.
Хоть я и изобрёл велосипед, зато мой пост первый на русском, а не все умеют искать на английском.smes
05.10.2016 11:52Я про что и говорю, что трудности с гуглом.
firefox h264 ^windows xp"
firefox mp4 «windows xp»
firefox html5 «windows xp»
По каждому поиску, ссылка на первой же странице.
Тот же результат, кстати, с Яндексом.
И по поводу собственно русского языка:
https://forum.mozilla-russia.org/viewtopic.php?id=69941
Там правда модератор медлит правкой, но есть ссылка на первоисточник, где инфа давно обновлена.
http://aresh.livejournal.com/488824.html
http://aresh.livejournal.com/495544.html
https://2ch.hk/s/arch/2016-08-12/res/1782796.html
Так что без всякого сомнения не было необходимости тратить на это столько усилий. Хоть статья и в общем неплохая.
sumanai
05.10.2016 16:10Просто когда я гуглил, этого плагина не было вообще ))
smes
05.10.2016 18:05Да, да, я не я, и лошадь не моя :-) Не, ну в общем ради бога, чем больше таких статей, тем лучше, просто для меня было странно увидеть презентацию всего этого как большого открытия.
smes
05.10.2016 18:34В любом случае, тебе и наверно еще многим повезло, что Chris Pearce не сумел добиться своего и этот плагин все-таки временно вышел из тени в FF 48.
aulandsdalen
> Но многие (в том числе и я) всё ещё используют эту ОС
Как оно там в 2006?
sumanai
Я в 2016, всё отлично!
Это просто личный выбор, ничего более. Статья преследовала цель дать информацию людям об активации возможности декодирования h264 на XP, и не преследовала целью начать обсуждение о нужности или ненужности данной ОС.
satter
на скринште у вас i5 Ivy Bridge, XP адекватно работает на таком железе? нет проблем с драйверами?
sumanai
Интел пожмотилась на драйвера на USB 3.0, работает на стандартных как 2.0, с остальным всё отлично.
Jeditobe
Все норм, активация без смс!
aulandsdalen
Вы не предложили скачать реактос. Вы точно Jeditobe?
Jeditobe