Bug 1180108 (decoder-doctor)

[meta] [Decoder Doctor] Provide codec problem notification UI/SUMO help when video playback fails due to Windows Media Foundation being broken

NEW
Assigned to

Status

()

Core
Audio/Video: Playback
3 years ago
4 months ago

People

(Reporter: cpearce, Assigned: cpeterson)

Tracking

(Depends on: 2 bugs, {meta})

unspecified
Unspecified
Windows
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox42 affected)

Details

(Reporter)

Description

3 years ago
We rely on Windows Media Foundation to be functional in order to play HTML5 <video> on Windows Vista and later. Unfortunately, often we find that the user doesn't have a working version of Windows Media Foundation available.

This can happen because:

* User has disabled WMF or its codecs using Codec Tweak Tool program, which renames the DLLs.
* User has installed another codec pack like K-Lite or Haali Media Splitter that overwrites/deregisters WMF system codecs.
* User has a version of Vista without the "Platform Update Supplement for Windows Vista" update, so they don't have the codecs installed.
* User has Enterprise or Server N or KN variants of Windows, without the "Media Feature Pack" installed.

Windows XP also doesn't have WMF.

When WMF is not functional and a site tries to use <video>, playback will fail and the user won't know why.

We should stick up some UI to help the user get into a working state.

There are three parts to this problem:

1. Decide on desired behaviour; at what point should we notify the user? Should we throw up a message if HTMLMediaElement.canPlayType("video/mp4") fails because WMF isn't working? If we do that, we could end up showing UI when the user has fallen back to flash and is already successfully playing video. Or should we wait until a video element errors due to loading to show our UI? Then we won't ever get off Flash.

2. Gecko work; we'll need to send a message from content to chrome to notify JS that we can't play video due to WMF being broken. Or provide a function that chrome JS can call that unambiguously determine that WMF is broken.

3. Firefox work; implement the UI to help the user.

---

Additional info:

Note that since Firefox 39/Bug 1160321, on Windows Firefox's HTMLMediaElement.canPlayType() implementation will ensure that it can instantiate a WMF decoder, before reporting that we support H.264 and AAC. A site *should* check that before using <video>, and fallback to Flash if it reports MP4/H.264/AAC won't work. Not all will though, and we want to get everyone off Flash.

More info on Media Feature Packs for Windows N and KN versions contains:
Win 8.1 - http://support.microsoft.com/kb/2929699
Win 8 - http://support.microsoft.com/kb/2703761
Win 7 - http://support.microsoft.com/kb/968211


See also:
bug 1178921: recent failure of Facebook video, suspected due to this issue.
bug 848994: where I mentioned this for Enterprise/Server specifically, but the requirements have become clearer since then, so I've filed a new bug.
(Reporter)

Updated

3 years ago
Depends on: 1180109
Benjamin - can you find someone in Firefox who can help with the UI side of this issue?
Flags: needinfo?(benjamin)

Comment 2

3 years ago
The most important thing to figure out is what we want users to do. There is no point in showing the user any notification unless there's something they can do about it. It seems that we have a set of known causes, plus a set of unknown causes here.

For the known causes, are there automatic or manual steps to fix the problem? We may need to work that out with SUMO.
For the unknown causes, is there additional data we want to collect to diagnose the problem? That might be the UI you need.

The UX designers can help with design/wording/appearance, but they will still be relying on your team for the message you actually want to send.

I suspect that we should start this out by only showing help if there is a broken video. Once we have confidence in the mechanism, we could try showing some prompts earlier when .canPlayType is called, but we shouldn't do that until we have confidence in the system.
Flags: needinfo?(benjamin)
(Assignee)

Comment 3

3 years ago
Anthony, creating a SUMO page about the WMF problems (and fixes) seems like a prerequisite for any Firefox UI. For extra credit, the UI could deep link to anchor tags for the user's specific WMF problem (e.g. renamed DLLs; using Windows Vista or Server N without with codecs installed; ...).

If you create a rough draft in a Google Doc, I can get SUMO to polish and publish it.

Some incomplete SUMO pages about WMF already exist. We might want to update or remove them, e.g. https://support.mozilla.org/en-US/kb/vine-and-other-html5-videos-wont-play
Flags: needinfo?(ajones)
Summary: Provide UI when video playback fails due to Windows Media Foundation being broken → Provide UI/SUMO help when video playback fails due to Windows Media Foundation being broken
(Assignee)

Updated

2 years ago
status-firefox42: --- → affected
Depends on: 848994
Flags: needinfo?(ajones)
Summary: Provide UI/SUMO help when video playback fails due to Windows Media Foundation being broken → WMF UX: Provide UI/SUMO help when video playback fails due to Windows Media Foundation being broken
(Assignee)

Comment 4

2 years ago
Javaun, Philipp, and I met to discuss WMF self-help UI. Here are our public meeting notes:

https://docs.google.com/document/d/1JN2NB9UCdt2Q4_d6fB1iir34hklPK6G-3TV_zEi5MnY/

Telemetry reports that, of Aurora 42 users, about 5.83% can't instantiate a WMF AAC decoder and 6.27% can't instantiate a WMF H.264 platform decoder.
(Assignee)

Comment 5

2 years ago
The telemetry quoted in comment 4 is inaccurate because it includes Windows XP, which never has WMF decoders. Excluding XP, we see that only about 0.28% can’t instantiate WMF’s H.264 platform decoder and 0.31% can’t instantiate WMF’s AAC decoder.

* VIDEO_CAN_CREATE_H264_DECODER telemetry report: http://is.gd/of5rkQ 
* VIDEO_CAN_CREATE_AAC_DECODER telemetry report: http://is.gd/BAAFgi 

cpearce says that part of the discrepancy between the H.264 and AAC failure rates is that WMF can sometimes instantiate an H.264 decoder which later returns an unexpected decoding error. This happens when the user has renamed their WMF DLLs using CodecTweakTool. cpearce has prototype code to test whether an instantiated H.264 decoder can actually decode video, but that is beyond the MVP scope of this feature.
Assignee: nobody → cpeterson
Keywords: meta
Summary: WMF UX: Provide UI/SUMO help when video playback fails due to Windows Media Foundation being broken → WMF Support UI: Provide UI/SUMO help when video playback fails due to Windows Media Foundation being broken
(Assignee)

Updated

2 years ago
Duplicate of this bug: 1203248
(Assignee)

Comment 7

2 years ago
Project brief and UX spec:
https://docs.google.com/document/d/13BzIN1SezpqUfjFNi0nMWv-y4nXsEpIaWpZ85KnvKps/
Summary: WMF Support UI: Provide UI/SUMO help when video playback fails due to Windows Media Foundation being broken → [meta] [WMF UI] Provide codec problem notification UI/SUMO help when video playback fails due to Windows Media Foundation being broken
(Assignee)

Updated

2 years ago
Depends on: 1160424
(Assignee)

Updated

2 years ago
Alias: decoder-doctor
Summary: [meta] [WMF UI] Provide codec problem notification UI/SUMO help when video playback fails due to Windows Media Foundation being broken → [meta] [Decoder Doctor] Provide codec problem notification UI/SUMO help when video playback fails due to Windows Media Foundation being broken
(Assignee)

Updated

2 years ago
Depends on: 1150294
Depends on: 1248507
Depends on: 1197438
No longer depends on: 1197438
See Also: → bug 1197438
Depends on: 1271483
Depends on: 1271484
Depends on: 1297003
Component: General → Audio/Video: Playback
Product: Firefox → Core

Updated

10 months ago
Depends on: 1336256
You need to log in before you can comment on or make changes to this bug.