TL;DR, there's now an easy way to enable MP4 (H.264 + AAC) HTML5 video support in Firefox on Windows XP using the Primetime Content Decryption Module plugin by Adobe (distributed by Mozilla). Meaning, you could get rid of Flash (with some caveats). The irony of course being that you'd have to use another thing by Adobe
, but at least it's something not as prone to security problems.
NOTE: If you're suddenly unable to watch videos on Facebook (or any other site) even though you haven't changed anything re: Primetime, you may have to start spoofing your browser UA (user agent) string to work around this problem. See the posts starting here for the specifics. (EDIT October 30, 2017)
IMPORTANT: The Primetime CDM plugin can no longer be downloaded from Adobe servers, which means that attempts to automatically download the plugin through Firefox GUI will fail even if you edit the download configuration URL per the old instructions below. From now on, you will have to manually install the plugin for all new Firefox installations and any new profiles you create; see the new instructions below. If you already have the plugin installed, you don't need to do anything. (EDIT July 18, 2017)
If you're here because MP4 video has stopped working after you upgraded to Firefox 52.0, see this post. If you still have problems, make sure you have all of the required preferences listed below and their values are set correctly.
If you're here because MP4 video has stopped working after you upgraded to Firefox 49.0 or higher, that happens because 49.0 introduces a new pair of preferences. You now need to set media.gmp-eme-adobe.visible and media.gmp-eme-adobe.forceSupported to true; media.gmp-eme-adobe.forcevisible is no longer used. Toggle the Primetime plugin to Never Activate and back or restart Firefox for the pref change to take effect.
NEWS July 26, 2016: Unfortunately, but maybe not all that surprisingly: Primetime CDM will
not be getting
official support on Windows XP after all.
Says a Mozilla developer:
Quote
The Adobe CDM doesn't work for EME on WinXP, and we were trying to get it working for unencrypted decoding of MP4/H.264/AAC files on WinXP, but it has a bug that causes it to crash on some systems. So we turned unencrypted decoding via the Adobe GMP off. Adobe have decided that they aren't going to support WinXP furthermore, so they're not going to be fixing that bug. We don't want to use unsupported decoder for unencrypted decoding.
Not to worry though, this does
not appear to have any near-term (<=FF52 ESR) effect on forcing the plugin to work with the same workarounds we've been using all this time.
However, just in case Adobe compiles some XP-incompatible Windows APIs into future plugin updates, you may want to save a copy of the gmp-eme-adobe folder from your FF profile or download the v.17 distribution package. (Adobe has removed the package from download but
@sdfox7has kindly
archived a copy (
backup link).)
Technically, this plugin has been added to FF for DRMed HTML5 video, but it can be used to play non-DRM as well. It's not officially supported on XP, but hey, neither is XP itself, right?
I've been trying it out with FF 46 (later also confirmed with 45, 52 ESR and 47-52) on XP Pro SP3 x86 (with POSReady updates, though I doubt that matters any) for about a week now, and the experience has been pretty encouraging. The vast majority of HTML5 videos have worked without a hitch; ~5% have had 1-2 temporary freezes (the video stops, the audio continues with some crackle), which can be easily worked around by moving the video position slider back a bit and then forward again to where the freeze happened. I've seen only one (1) case of a show-stopper error message about "corruption or unsupported features in video" (quote not verbatim) that couldn't be worked around by jiggling the slider (not a crash, just an error message and the video stopped). You may not necessarily be as lucky, though, as the reason the plugin is not included by default by Mozilla is its reported crashing on some high profile sites.
(If you're interested in getting this to work on Windows 2000, be sure to read @blackwingcat's post below in addition to this one, and why not his blog posts (1, 2, 3) as well (in Japanese, but with screen shot images).)
To be able to install and operate the Primetime CDM, add and/or set the following FF preferences in about:config (be careful, all of these are cAsE sEnSiTiVe!):
media.gmp-eme-adobe.enabled (boolean; true)
media.gmp-eme-adobe.forceSupported (boolean; true; FF 49.0+)
media.gmp-eme-adobe.forcevisible (boolean; true; FF 45-48, no longer used in 49.0+)
media.gmp-eme-adobe.visible (boolean; true; FF 49.0+)
media.gmp-eme-adobe.version (string, not integer; 17; required for manual install now that automatic install is no longer an option)
media.gmp-eme-adobe.abi (string; x86-msvc-x86 (EDIT: x86-msvc-x64 for 64-bit XP users); not required, you can set it if you want to more closely mimic automatic install)
media.gmp-eme-adobe.lastUpdate (integer; 1500000000; not required, you can set it if you want to more closely mimic automatic install)
media.gmp.decoder.enabled (boolean; true)
media.eme.enabled (boolean; true; defaults to false if you downloaded a DRM-free version of FF; thanks @heinoganda for pointing this out)
Ignore this section and use the instructions for manual install after it. The instructions in here were applicable when the Adobe CDM was still available for automatic online install and are being kept for historical reasons.
45.x.x ESR users: also change media.gmp-manager.url or the Primetime plugin won't get downloaded for you. The default value is "https://aus5.mozilla.org/update/3/GMP/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml", change only the bolded portion as follows: "https://aus5.mozilla.org/update/3/GMP/46.0/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml". The host in your default may be something other than aus5.mozilla.org, you only need to change the %VERSION% part.
52.x.x ESR users starting with a clean profile (or any other profile without an already installed Primetime plugin) should do the same, only replace %VERSION% with 51.0 instead.
After this, when you check your Plugins list, you should see a notice about the Primetime plugin getting downloaded shortly. If you don't want to wait, check for updates manually (from the gear button dropdown menu). The plugin files will be placed in the gmp-eme-adobe subfolder under your FF profile.
To manually install the actual Primetime plugin software, first download the ZIP package (backup link) from @sdfox7's site (he has plenty of other useful XP stuff there as well, definitely worth checking out!). You can use the following checksums to verify package integrity:
Quote
File: primetime_gmp_win_x86_gmc_40673.zip
CRC-32: 5c9b1c6f
MD4: a009006e1158e996d7aefc71e9d8beb3
MD5: 0ce9ca6bda8606e7cf3ee3b228a28b59
SHA-1: aef911a8f6c794a1a2f262601fb25fb78e5cf489
SHA-256: 80975242372357cb24686e788521a77c0d7e03831ff56f7a22ede752bab11395
To install the plugin:
-
Open your FF profile folder. An easy way to navigate to it is by opening about:support in FF and clicking the Open Folder button next to Profile Folder.
-
Inside the profile folder, create subfolder gmp-eme-adobe and open it.
-
Inside gmp-eme-adobe, create subfolder 17 and open it.
-
Unpack the Primetime ZIP archive into folder 17.
-
Folder [your FF profile path]\gmp-eme-adobe\17 should now contain three files: eme-adobe.dll, eme-adobe.info, eme-adobe.voucher.
After this, check the Plugins in your Add-ons list and you should see the Primetime plugin listed and ready for use. If you don't see the plugin there, make sure you've set all of the required preferences as described above and put the files into the correct subfolder. Restarting Firefox to complete the manual install isn't usually required, but try it if the plugin doesn't appear, (Also, remember that if you have more than one Firefox profile, you'll need to repeat these steps for each of them individually.)
Set the Primetime plugin to Always Activate, Flash to Never Activate (not strictly necessary, but better for testing), and go to Youtube HTML5 video player check page. Both H.264 and MSE & H.264 should have blue checkmarks. You may want to try this test page (kindly suggested by @dencorso) or some Twitter videos to quickly make sure H.264 really is working (with Youtube you can get fooled by WebM getting played instead).
In theory, you could uninstall Flash at this point, but realistically it's probably wiser for now to leave it installed and disabled in the browser. Personally, I installed the FlashDisable extension to quickly toggle Flash on some of the sites I frequent that don't support HTML5 video. Some of those insistently serve Flash video to desktop FF without even checking if it can do HTML5 video or not. That can be worked around by faking a different user agent string, but for now I've found it more convenient to just temporarily toggle Flash back on for them. FlashDisable supports the Ask to Activate setting, so you don't have to worry about other sites if you forget to turn Flash off again.
Based on what Mozilla devs have been saying on Bugzilla (Unhide Adobe GMP on Windows XP, Hide Adobe GMP on Windows XP in Firefox 46 and 47, Make Adobe GMP available to Windows XP users in Firefox 45 and later) it seems quite possible that this plugin could soon (FF 48+) be made available without having to use any tricks (or pre-release versions), but I suppose it's also possible that the current situation will continue indefinitely (or even that the plugin will eventually be made more difficult to access under XP). (EDIT July 18, 2017) As you've likely heard, FF 52 ESR is the last version of the browser that's going to work on XP (unless some intrepid person forks a special version for us). In a way, this is a blessing in disguise, as Primetime support has been completely excised from FF 53 and Google's Widevine CDM doesn't have our helpful side-effect (and doesn't work on XP), but ESR 52 will be supported well into 2018. So, why not make use of it while we can, right? ![:) :)]()
Note that HLS streaming is not natively supported with this plugin. It does work on sites coded to use some JS library or player to work with HLS, but not for directly playing .m3u8 video sources. You may want to keep an eye on developments with hls.js in general and firefox-hls in particular if a favorite site of yours falls into the latter category.
There was some discussion about this in the Chrome thread, but I thought it better to create a separate topic instead of having posts buried in a different thread. The most relevant parts are here: 1 (VistaLover), 2 (dencorso), 3 (VistaLover). Since it appears to have ended on a failure, I'm taking the liberty of restating some of what was covered by them. I don't mean to overstep or hog the glory by any means, so if the mods want to prepend those posts to this thread, I have no objection.
P.S. Hi everyone and thanks for the truckloads of useful information that's been posted here in the past. I've been lurking for about 1.5 years already and thought it was about time to contribute something.