Closed Bug 1199348 Opened 9 years ago Closed 9 years ago

MP4 doesnt load/play

Categories

(Core :: Audio/Video: Playback, defect, P5)

x86_64
Linux
defect

Tracking

()

RESOLVED WONTFIX
Tracking Status
firefox43 --- affected

People

(Reporter: sfoster, Unassigned)

References

()

Details

Attachments

(1 file)

Spotted in bug 1194979, it appears mp4 content no longer loads/plays - either directly or via <video> - I get a "video format or MIME type is not supported"

http://jsfiddle.net/sfoster/2y9dh1L8/1/
And http://techslides.com/demos/sample-videos/small.mp4
About:support 
{
  "application": {
    "name": "Firefox",
    "version": "43.0a1",
    "buildID": "20150827030213",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0",
    "safeMode": false,
    "updateChannel": "nightly",
    "supportURL": "https://support.mozilla.org/1/firefox/43.0a1/Linux/en-US/",
    "numTotalWindows": 1,
    "numRemoteWindows": 1,
    "remoteAutoStart": true
  },
  "modifiedPreferences": {
    "accessibility.typeaheadfind.flashBar": 0,
    "browser.cache.disk.smart_size.first_run": false,
    "browser.cache.disk.capacity": 358400,
    "browser.cache.disk.filesystem_reported": 1,
    "browser.cache.frecency_experiment": 2,
    "browser.download.importedFromSqlite": true,
    "browser.places.smartBookmarksVersion": 7,
    "browser.sessionstore.upgradeBackup.latestBuildID": "20150827030213",
    "browser.startup.homepage_override.mstone": "43.0a1",
    "browser.startup.homepage_override.buildID": "20150827030213",
    "browser.tabs.remote.autostart": true,
    "dom.w3c_touch_events.enabled": 1,
    "dom.vr.enabled": true,
    "dom.apps.reset-permissions": true,
    "dom.webcomponents.enabled": true,
    "dom.mozApps.used": true,
    "extensions.lastAppVersion": "43.0a1",
    "font.internaluseonly.changed": true,
    "gfx.crash-guard.glcontext.deviceID": "Mesa DRI Intel(R) Haswell Mobile ",
    "gfx.crash-guard.glcontext.appVersion": "43.0a1",
    "gfx.crash-guard.glcontext.driverVersion": "3.0 Mesa 10.3.2",
    "gfx.crash-guard.status.glcontext": 2,
    "media.gmp-manager.buildID": "20150827030213",
    "media.gmp-gmpopenh264.lastUpdate": 1432654204,
    "media.gmp-gmpopenh264.version": "1.4",
    "media.gmp-manager.lastCheck": 1440697242,
    "network.cookie.prefsMigrated": true,
    "network.predictor.cleaned-up": true,
    "places.history.expiration.transient_current_max_pages": 104858,
    "places.database.lastMaintenance": 1440458743,
    "plugin.importedState": true,
    "plugin.disable_full_page_plugin_for_types": "application/pdf",
    "privacy.sanitize.migrateFx3Prefs": true,
    "storage.vacuum.last.places.sqlite": 1440027025,
    "storage.vacuum.last.index": 1
  },
  "lockedPreferences": {},
  "graphics": {
    "numTotalWindows": 1,
    "numAcceleratedWindows": 0,
    "windowLayerManagerType": "Basic",
    "windowLayerManagerRemote": true,
    "supportsHardwareH264": "No; ",
    "numAcceleratedWindowsMessage": [
      ""
    ],
    "adapterDescription": "Intel Open Source Technology Center -- Mesa DRI Intel(R) Haswell Mobile ",
    "adapterVendorID": "Intel Open Source Technology Center",
    "adapterDeviceID": "Mesa DRI Intel(R) Haswell Mobile ",
    "adapterRAM": "",
    "adapterDrivers": "",
    "driverVersion": "3.0 Mesa 10.3.2",
    "driverDate": "",
    "webglRenderer": "Intel Open Source Technology Center -- Mesa DRI Intel(R) Haswell Mobile ",
    "info": {
      "AzureCanvasBackend": "cairo",
      "AzureSkiaAccelerated": 0,
      "AzureFallbackCanvasBackend": "none",
      "AzureContentBackend": "cairo",
      "CairoUseXRender": 1
    }
  },
  "javaScript": {
    "incrementalGCEnabled": true
  },
  "accessibility": {
    "isActive": false,
    "forceDisabled": 0
  },
  "libraryVersions": {
    "NSPR": {
      "minVersion": "4.10.9",
      "version": "4.10.9"
    },
    "NSS": {
      "minVersion": "3.20 Basic ECC",
      "version": "3.20 Basic ECC"
    },
    "NSSUTIL": {
      "minVersion": "3.20",
      "version": "3.20"
    },
    "NSSSSL": {
      "minVersion": "3.20 Basic ECC",
      "version": "3.20 Basic ECC"
    },
    "NSSSMIME": {
      "minVersion": "3.20 Basic ECC",
      "version": "3.20 Basic ECC"
    }
  },
  "userJS": {
    "exists": false
  },
  "crashes": {
    "submitted": [],
    "pending": 0
  },
  "sandbox": {
    "hasSeccompBPF": true,
    "hasSeccompTSync": true,
    "hasPrivilegedUserNamespaces": true,
    "hasUserNamespaces": true,
    "canSandboxMedia": true
  },
  "extensions": [
    {
      "name": "ADB Helper",
      "version": "0.8.0",
      "isActive": true,
      "id": "adbhelper@mozilla.org"
    },
    {
      "name": "Firefox OS 3.0 Simulator",
      "version": "3.0.20150526.1-signed",
      "isActive": true,
      "id": "fxos_3_0_simulator@mozilla.org"
    },
    {
      "name": "Mozilla WebVR Enabler",
      "version": "0.2.0",
      "isActive": true,
      "id": "@mozillawebvrenabler"
    },
    {
      "name": "Valence",
      "version": "0.3.1",
      "isActive": true,
      "id": "fxdevtools-adapters@mozilla.org"
    },
    {
      "name": "Ubuntu Modifications",
      "version": "3.1",
      "isActive": false,
      "id": "ubufox@ubuntu.com"
    },
    {
      "name": "Ubuntu Online Accounts",
      "version": "0.5",
      "isActive": false,
      "id": "online-accounts@lists.launchpad.net"
    },
    {
      "name": "Unity Desktop Integration",
      "version": "3.0.2",
      "isActive": false,
      "id": "webapps-team@lists.launchpad.net"
    },
    {
      "name": "Unity Websites integration",
      "version": "2014.08.06.beta",
      "isActive": false,
      "id": "{2e1445b0-2682-11e1-bfc2-0800200c9a66}"
    }
  ],
  "experiments": []
}
adding qawanted to check on this regression

Blake Wu,

Can you help with this please or route to the right person?

Thanks
Hema
Flags: needinfo?(bwu)
Keywords: qawanted
FYI on my Nightly running on Ubuntu, playing MP4 crashes with a segfault. An example is the mp4 in bug 1150823 comment 1.
> [135346.910721] MediaPl~ck #224[3295]: segfault at 390 ip 00007fa0a7ca91a1 sp 00007fa09bf3f850 error 4 in libavcodec.so.56.1.0[7fa0a78ab000+733000]
> [135406.775364] MediaPl~back #7[6213]: segfault at 390 ip 00007effa38691a1 sp 00007effb3970850 error 4 in libavcodec.so.56.1.0[7effa346b000+733000]

This used to work on my laptop.
Can you shed light on this Jean-Yves?
Flags: needinfo?(jyavenard)
It plays using our built-in player on mac or windows.

(In reply to Alexandre LISSY :gerard-majax from comment #3)
> FYI on my Nightly running on Ubuntu, playing MP4 crashes with a segfault. An
> example is the mp4 in bug 1150823 comment 1.
> > [135346.910721] MediaPl~ck #224[3295]: segfault at 390 ip 00007fa0a7ca91a1 sp 00007fa09bf3f850 error 4 in libavcodec.so.56.1.0[7fa0a78ab000+733000]
> > [135406.775364] MediaPl~back #7[6213]: segfault at 390 ip 00007effa38691a1 sp 00007effb3970850 error 4 in libavcodec.so.56.1.0[7effa346b000+733000]
> 

how are you using ffmpeg?

is it via ffmpeg directly (via media.fragmented-mp4.ffmpeg.enabled pref) or through gstreamer with a ffmpeg plugin?

> This used to work on my laptop.

if the later, there's been no change to gstreamer that could explain this and there's not much we can do about an external plugin crashing.

If you use 40, does it crash? (or 41 or 42)
Flags: needinfo?(jyavenard)
jya is the best person on this :)
Flags: needinfo?(bwu)
Works fine in 40, doesnt work in todays nightly (43) using the same profile. This is on Ubuntu 14.04. I dont get a crash, just the 'activate plugin' indicating unknown/unhandled content-type?
I have been hacking in https://treeherder.mozilla.org/#/jobs?repo=gaia&revision=532a7579d41718c076686e8a71d5f13771e42088 added a lot of debug, and seems we are converging somewhere on the first failure: looks like we follow the codepath to load a video, but then never enter the codepath to trigger the |resolve(evt)|. My theory is that broken video playback expose some lack of event/error handling in |onMediaLoadOrError| and/or in |onVideoUnloaded|.

So maybe we want to harden this and to fix playback with Mulet ?
Flags: needinfo?(sfoster)
I'm investigating the builds from taskcluster to see if I can spot any visible regression regarding media playback in the tutorial and/or regarding this force-download issue
Blocks: 1201070
(In reply to Alexandre LISSY :gerard-majax from comment #8)
> I have been hacking in
> My theory is that broken video
> playback expose some lack of event/error handling in |onMediaLoadOrError|
> and/or in |onVideoUnloaded|.
> 
> So maybe we want to harden this and to fix playback with Mulet ?

Yeah agreed that would surface as a problem in the FTU tutorial and tests. But lets be clear that bug 1201070 this is a symptom or side-effect at best of this bug, and fixing that one does not fix this one!
Flags: needinfo?(sfoster)
(In reply to Alexandre LISSY :gerard-majax from comment #9)
> I'm investigating the builds from taskcluster to see if I can spot any
> visible regression regarding media playback in the tutorial and/or regarding
> this force-download issue

Took builds around the time issue started: august 15th, 20th and 25th. All expose the same behavior where the video gets downloaded.

That being said, comment 5 is not helping me. I suspected some crashes I spotted in nightly might be related, but that was a long shot. How can we debug why the video gets downloaded instead of played ?

I have tried directly opening the mp4 in Mulet, and this results in a screen saying the Video cannot be decoded/played, and then it downloads it.
Flags: needinfo?(jyavenard)
(In reply to [PTO Until 08/Sep] Jean-Yves Avenard [:jya] from comment #5)
> It plays using our built-in player on mac or windows.
> 
> (In reply to Alexandre LISSY :gerard-majax from comment #3)
> > FYI on my Nightly running on Ubuntu, playing MP4 crashes with a segfault. An
> > example is the mp4 in bug 1150823 comment 1.
> > > [135346.910721] MediaPl~ck #224[3295]: segfault at 390 ip 00007fa0a7ca91a1 sp 00007fa09bf3f850 error 4 in libavcodec.so.56.1.0[7fa0a78ab000+733000]
> > > [135406.775364] MediaPl~back #7[6213]: segfault at 390 ip 00007effa38691a1 sp 00007effb3970850 error 4 in libavcodec.so.56.1.0[7effa346b000+733000]
> > 
> 
> how are you using ffmpeg?
> 
> is it via ffmpeg directly (via media.fragmented-mp4.ffmpeg.enabled pref) or
> through gstreamer with a ffmpeg plugin?

Via ffmpeg directly. the GMP pref does not work: on Youtube, all videos switch back to Flash (even though the html5 page shows everything as supported). When playing directly MP4 as from the bug referenced earlier, it loads for a while and then finishes with an error stating it cannot play the video because it cannot be decoded.

When I use HTML5 player on Youtube or other website via the ffmpeg pref, it plays fine and there is no crash. It only crashes in this case when I try to directly play the video.

> 
> > This used to work on my laptop.
> 
> if the later, there's been no change to gstreamer that could explain this
> and there's not much we can do about an external plugin crashing.
> 
> If you use 40, does it crash? (or 41 or 42)

I can't tell.
Flags: needinfo?(jyavenard)
Component: Audio/Video → Audio/Video: Playback
Right, so on my Mulet and on my system (Ubuntu 14.10), I have similar behavior: unless I turn on *both* |media.fragmented-mp4.exposed| and |media.fragmented-mp4.ffmpeg.enabled| to true, trying to load an app:// mp4 file (e.g., app://ftu.gaiamobile.org/style/images/tutorial/VerticalScroll.mp4) results in the file being downloaded directly.

FYI those are the exact same prefs I have to turn on for my Nightly browser to be able to properly play MP4 files. So now I'm blocked, because I don't know if it is expected we have to turn on those prefs, and what should be the setup in testing infra.

So Sam, my best bet on this is:
 - Mulet is playing MP4 as well as Browser, needs the same prefs being setup
 - FTU Videos works one I toggle the prefs documented above
 - There is a real issue in the test for handling some edge cases of playback failures
 - Something makes playback non working on Gaia-try: maybe it's expected, maybe we need to fix the env ?
Flags: needinfo?(sfoster)
Flags: needinfo?(jyavenard)
Aus, referring to comment 14, do you know if there is anything specifics that might explain why mp4 playback does not work on gaia-try?
Flags: needinfo?(aus)
AFAIK, the software simulators do not support h264 decoding using the gonk decoder so that leaves only ffmpeg or gstreamer.

Can the simulator access gstreamer plugins ?
Flags: needinfo?(jyavenard)
(In reply to Jean-Yves Avenard [:jya] from comment #16)
> AFAIK, the software simulators do not support h264 decoding using the gonk
> decoder so that leaves only ffmpeg or gstreamer.
> 
> Can the simulator access gstreamer plugins ?

Yes, with Mulet we expect the same behavior as Nightly for this case.
Flags: needinfo?(jyavenard)
> So Sam, my best bet on this is:
>  - Mulet is playing MP4 as well as Browser, needs the same prefs being setup
>  - FTU Videos works one I toggle the prefs documented above
>  - There is a real issue in the test for handling some edge cases of
> playback failures
>  - Something makes playback non working on Gaia-try: maybe it's expected,
> maybe we need to fix the env ?

Good to know about those prefs. For the test issues I'm added logging to see what events I might be missing and all I see is a 'suspend' which we never recover from. I know suspend can happen, but it shouldnt be getting hung up for so long the test times out. Unless I need to handle suspend explicitly? /me reads docs
Flags: needinfo?(sfoster)
Depends on: 1199429
Flags: needinfo?(aus)
Fixed by bug 1199429.
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: needinfo?(jyavenard)
Resolution: --- → FIXED
Keywords: qawanted
I filed this bug for the issue of mp4 videos not playing in nightly on linux, not just for b2g/gaia tests. I still get the 'activate quicktime' message in the latest nightly, when I attempt to load http://techslides.com/demos/sample-videos/small.mp4 .. It *does* play when I enable the 2 prefs (media.fragmented-mp4.ffmpeg.enabled and media.fragmented-mp4.expose) per Comment #14. It seems like this is not yet fixed. Do we need to enable these prefs by default for this platform? As an end-user, how would I know to enable those?
Status: RESOLVED → REOPENED
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Resolution: FIXED → ---
Status: REOPENED → RESOLVED
Closed: 9 years ago9 years ago
Resolution: --- → WONTFIX
WONTFIX without explanation and only a link to a non public bug ? Do you mind giving more details ?
Status: RESOLVED → REOPENED
Flags: needinfo?(jyavenard)
Flags: needinfo?(ajones)
Resolution: WONTFIX → ---
I didn't close this bug.

if the bug isn't public ; that must be for a reason.
Flags: needinfo?(jyavenard)
(In reply to Jean-Yves Avenard [:jya] from comment #23)
> I didn't close this bug.
> 
> if the bug isn't public ; that must be for a reason.

It's not really helpful ... And now, my Firefox Nightly with the prefs enabled is not able to play MP4 files anymore.
Flags: needinfo?(jyavenard)
And I have toggled several times the prefs true and false, and it's working again.
Flags: needinfo?(jyavenard)
Flags: needinfo?(ajones)
See Also: → ffmpeg
gstreamer is going in bug 1234092
Status: REOPENED → RESOLVED
Closed: 9 years ago9 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: