Closed Bug 1207429 (ffmpeg) Opened 9 years ago Closed 9 years ago

Enable FFMpeg by default

Categories

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

43 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla44
Tracking Status
firefox42 --- unaffected
firefox43 + fixed
firefox44 + fixed

People

(Reporter: jya, Assigned: jya)

References

(Depends on 1 open bug)

Details

Attachments

(3 files)

This bug will follow the work required to enable FFmpeg PDM by default (if ffmpeg is found to be available on the system)
Depends on: 1207442
Attachment #8665811 - Flags: review?(ajones)
By default we only use libav 9 or FFmpeg 1.2 if found on the system.

If media.fragmented-mp4.ffmpeg.enabled is set, will allow use of libav 0.7 and ffmpeg 0.8 or later.
Attachment #8665812 - Flags: review?(ajones)
Assignee: nobody → jyavenard
Attachment #8665811 - Flags: review?(ajones) → review+
Attachment #8665812 - Flags: review?(ajones) → review+
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1bf309af4161

the test path won't be used (treeherder uses 0.8.5) ; but making sure we haven't introduced regression
Blocks: 1208917
https://hg.mozilla.org/mozilla-central/rev/ad309987a50e
https://hg.mozilla.org/mozilla-central/rev/358e3ce0a218
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
Blocks: 1209806
Anthony, should we uplift ffmpeg to Aurora 43 since it improve Linux stability?
Flags: needinfo?(ajones)
Blocks: 1214943
No longer blocks: 1214943
Comment on attachment 8665811 [details] [diff] [review]
P1. remove media.fragmented-mp4.exposed pref.

Approval Request Comment
[Feature/regressing bug #]: 1214943
[User impact if declined]: More difficult rebase for upcoming uplift request
[Describe test coverage new/current, TreeHerder]: In central for a few weeks.
[Risks and why]: None, pref was in effect unused
[String/UUID change made/needed]: None
Attachment #8665811 - Flags: approval-mozilla-aurora?
Blocks: 1214943
Rebase for aurora...
Comment on attachment 8674060 [details] [diff] [review]
P2. Enable FFmpeg by default if available.

Approval Request Comment
[Feature/regressing bug #]: 1214943
[User impact if declined]: FFmpeg will not be enabled, MSE support can't be enabled. Will most likely default to Flash
[Describe test coverage new/current, TreeHerder]: In central for a few weeks.
[Risks and why]: Medium, this is a new feature (enabled in 42 made available on Linux now)
[String/UUID change made/needed]: None
Attachment #8674060 - Flags: approval-mozilla-aurora?
Comment on attachment 8674060 [details] [diff] [review]
P2. Enable FFmpeg by default if available.

OK to uplift to aurora; this sets up preferences to control the feature
Attachment #8674060 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Tracking this so I can keep an eye on the uplift of this feature for ffmpeg and linux.
Comment on attachment 8665811 [details] [diff] [review]
P1. remove media.fragmented-mp4.exposed pref.

This already landed in aurora; I'm just cleaning up the approval flag.
Attachment #8665811 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
(In reply to Chris Peterson [:cpeterson] from comment #7)
> Anthony, should we uplift ffmpeg to Aurora 43 since it improve Linux
> stability?

Done ^^^
Flags: needinfo?(ajones)
I just tired to play an mp3 audio in Firefox 43, and it doesn't work. Is ffmpeg supposed to enable that?
what mp3 related packages do you have installed? (gstreamer, plugins, ffmpeg etc..)
From ffmpeg, I have these packages installed:

libavcodec-ffmpeg56:amd64


libavdevice-ffmpeg56:amd64
libavfilter-ffmpeg5:amd64  
libavformat-ffmpeg56:amd64
libavresample-ffmpeg2:amd64
libavutil-ffmpeg54:amd64
libpostproc-ffmpeg53:amd64 
libswresample-ffmpeg1:amd64
libswscale-ffmpeg3:amd64   

From gstreamer I have these (but this should be irrelevant, since Mozilla build still doesn't support gstreamer 1.x):

gstreamer1.0-libav:amd64
gstreamer1.0-nice:amd64
gstreamer1.0-plugins-bad:amd64
gstreamer1.0-plugins-base:amd64
gstreamer1.0-plugins-good:amd64
gstreamer1.0-plugins-ugly:amd64
gstreamer1.0-pulseaudio:amd64
gstreamer1.0-x:amd64
libgstreamer1.0-0:amd64
Confirming the same issue. Firefox 43 won't play MP3 content while Firefox 42 did. For example clicking to play the MP3 test file here: http://hpr.dogphilosophy.net/test/. This breaks music playback on various websites (like digital music stores).

Running on Arch Linux 64-bit with a new Firefox profile. No add-ons installed. Only plugins are "OpenH264 Video Codec provided by Cisco Systems, Inc." and "Gnome Shell Integration" (latter one set to "Ask to Activate").

What information is helpful to help pin the root cause of this?

Installed ffmpeg related packages:
ffmpeg 1:2.8.3
    Complete solution to record, convert and stream audio and video
ffmpeg-compat 1:0.10.16
    Complete and free Internet live audio and video broadcasting solution

Installed gstreamer related packages:
clutter-gst 3.0.14
    GStreamer bindings for clutter
clutter-gst2 2.0.16
    GStreamer bindings for clutter
gnome-video-effects 0.4.1
    A collection of GStreamer effects
gst-libav 1.6.2
    Gstreamer libav Plugin
gst-plugins-bad 1.6.2
    GStreamer Multimedia Framework Bad Plugins
gst-plugins-base 1.6.2
    GStreamer Multimedia Framework Base Plugins
gst-plugins-base-libs 1.6.2
    GStreamer Multimedia Framework Base Plugin libraries
gst-plugins-good 1.6.2
    GStreamer Multimedia Framework Good Plugins
gst-plugins-ugly 1.6.2
    GStreamer Multimedia Framework Ugly Plugins
gstreamer 1.6.2
    GStreamer Multimedia Framework
gstreamer0.10 0.10.36
    GStreamer Multimedia Framework
gstreamer0.10-bad 0.10.23
    GStreamer Multimedia Framework Bad Plugin libraries
gstreamer0.10-bad-plugins 0.10.23
    GStreamer Multimedia Framework Bad Plugins
gstreamer0.10-base 0.10.36
    GStreamer Multimedia Framework Base plugin libraries
gstreamer0.10-base-plugins 0.10.36
    GStreamer Multimedia Framework Base Plugins
gstreamer0.10-ffmpeg 0.10.13
    Gstreamer FFMpeg Plugin
gstreamer0.10-good 0.10.31
    GStreamer Multimedia Framework Good plugin libraries
gstreamer0.10-good-plugins 0.10.31
    GStreamer Multimedia Framework Good Plugins
gstreamer0.10-ugly 0.10.19
    GStreamer Multimedia Framework Ugly plugin libraries
gstreamer0.10-ugly-plugins 0.10.19
    GStreamer Multimedia Framework Ugly Plugins
totem 3.18.1
    GNOME3 movie player based on GStreamer

Installed MP3 related packages:
lame 3.99.5
    A high quality MPEG Audio Layer III encoder
MP3 content can be played on Aurora (version 45.0a2).
Note that we have disabled GStreamer entirely in our Firefox package in Arch, and rely on FFmpeg for H264 video playback. AFAIK, Firefox 42 used GStreamer for MP3 playback, but we would rather keep that disabled if possible.

It appears that a fix is planned for Firefox 44 (bug 1207924) so perhaps we could set media.mp3.enabled to true in our vendor.js preferences as a workaround for now.
(In reply to Evangelos Foutras from comment #21)
> Note that we have disabled GStreamer entirely in our Firefox package in
> Arch, and rely on FFmpeg for H264 video playback. AFAIK, Firefox 42 used
> GStreamer for MP3 playback, but we would rather keep that disabled if
> possible.

doing so will disable MP3 playback.
Note that for everything else (mp4 in particular), gstreamer won't be used if it can find an alternative.

You do *not* want to disable gstreamer in 43.
FFmpeg isn't used for playing mp3 by default, only gstreamer.

In about:config, what's the value of the media.gstreamer.enabled pref ? it should be set to true.

You can also enable the experimental (in 43 at least) new MP3 decoder by creating the pref media.mp3.enabled and set it to true.

The new MP3 decoder (which doesn't rely on gstreamer) is enabled by default in 44.
However, in 43 seeks will be slow if you enable it.
(In reply to Shmerl from comment #16)
> I just tired to play an mp3 audio in Firefox 43, and it doesn't work. Is
> ffmpeg supposed to enable that?

We only use the decoder part of ffmpeg, not the demuxer.
That is we can play mp3 codec (really mpeg2 layer 3), but we can't use it to read the mp3 file itself. For that you need to enable the new mp3 demuxer (media.mp3.enabled) ; but again, in 43 it's unfinished and that is why it's disabled by default
(In reply to Evangelos Foutras from comment #21)
> It appears that a fix is planned for Firefox 44 (bug 1207924) so perhaps we
> could set media.mp3.enabled to true in our vendor.js preferences as a
> workaround for now.

forgot to comment on this:

This is a bad workaround. The proper workaround is to leave gstreamer enabled by default (which is enabled by default for a reason). gstreamer won't be used unless nothing else is available.

again, do not disable gstreamer in 43. strongly advise against it
Fair enough and thanks for the information; will re-enable GStreamer for Firefox 43. :)

Would it be fine to disable it again in Firefox 44 and thus depend only on FFmpeg and libvpx for media playback?
(In reply to Evangelos Foutras from comment #26)
> Fair enough and thanks for the information; will re-enable GStreamer for
> Firefox 43. :)
> 
> Would it be fine to disable it again in Firefox 44 and thus depend only on
> FFmpeg and libvpx for media playback?

in 44 it won't be used at all if ffmpeg is enabled. I don't see harm in leaving it enabled.

Note that even for vp8 and vp9 if the local copy of ffmpeg supports those it will be used over libvpx.

At some stage we will remove gstreamer support completely. but at this stage in > 43 it's not used at all ; so not point disabling it. Plus that allows people to not have to install ffmpeg.
(In reply to Jean-Yves Avenard [:jya] from comment #27)
> At some stage we will remove gstreamer support completely. but at this stage
> in > 43 it's not used at all ; so not point disabling it. Plus that allows
> people to not have to install ffmpeg.

I am sceptical about keeping GStreamer enabled if it not required for anything. In the past we have had reports about crashing related to gstreamer-vaapi; explicitly disabling it guards against similar issues in the future.
(In reply to Evangelos Foutras from comment #28)
> I am sceptical about keeping GStreamer enabled if it not required for
> anything. In the past we have had reports about crashing related to
> gstreamer-vaapi; explicitly disabling it guards against similar issues in
> the future.

yes... the vaapi plugin is very crashy, but it's not going to be used unless there's nothing else available to play h264
(In reply to Jean-Yves Avenard [:jya] from comment #25)
d. The proper workaround is to leave gstreamer
> enabled by default (which is enabled by default for a reason). gstreamer
> won't be used unless nothing else is available.
> 
> again, do not disable gstreamer in 43. strongly advise against it

gstreamer is pretty useless for me, since stock Mozilla build is still using the obsolete gstreamer 0.10 which isn't even available with ffmpeg / libav integration in Debian.

Setting media.mp3.enabled = true worked pretty well for me (I didn't notice any drastic slowness so far). Thanks for the hint!
You can build firefox with gstreamer >= 1.0 support. This is something distribution could easily do.

Where media.mp3.enabled doesn't handle is VBR streams. If you attempt to seek it will decode every frames in a loop between your current position and the seek target. This can takes an awful amount of time.
Sure, I'm talking about the stock Mozilla build (which I use), not about distributions builds.
(In reply to Jean-Yves Avenard [:jya] from comment #31)
> You can build firefox with gstreamer >= 1.0 support.

Note that we've seen tons of crashes with that coming from ubuntu builds that have flipped this switch. I wouldn't recommend people to use it - though for MP3 only it may be fine, the crashes could have been video.
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #33)
> (In reply to Jean-Yves Avenard [:jya] from comment #31)
> > You can build firefox with gstreamer >= 1.0 support.
> 
> Note that we've seen tons of crashes with that coming from ubuntu builds
> that have flipped this switch. I wouldn't recommend people to use it -
> though for MP3 only it may be fine, the crashes could have been video.

Yes, but those crashes wouldn't have been mp3 related.

My guess is that only reason the crash rate increased is related to some plugins that wouldn't otherwise be available in particular the vaapi plugin.

So the reason you have increase in crashes is simply because there's an increase on people using it.

It's a moot issue in 43 anyway, gstreamer is no longer used by default to play videos.
I've been running locally with gstreamer 1.2 for over a year with no issue whatsoever.
See Also: → 1190612
Depends on: 1237540
Depends on: 1659209
Depends on: 1707367
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: