Bug 1207429 (ffmpeg)

Enable FFMpeg by default

RESOLVED FIXED in Firefox 43

Status

()

Core
Audio/Video: Playback
P1
normal
RESOLVED FIXED
3 years ago
2 years ago

People

(Reporter: jya, Assigned: jya)

Tracking

43 Branch
mozilla44
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox42 unaffected, firefox43+ fixed, firefox44+ fixed)

Details

Attachments

(3 attachments)

(Assignee)

Description

3 years ago
This bug will follow the work required to enable FFmpeg PDM by default (if ffmpeg is found to be available on the system)
(Assignee)

Updated

3 years ago
Depends on: 1207442
Priority: -- → P1
(Assignee)

Comment 1

3 years ago
Created attachment 8665811 [details] [diff] [review]
P1. remove media.fragmented-mp4.exposed pref.
Attachment #8665811 - Flags: review?(ajones)
(Assignee)

Comment 2

3 years ago
Created attachment 8665812 [details] [diff] [review]
P2. Enable FFmpeg by default if available.

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)

Updated

3 years ago
Assignee: nobody → jyavenard
Attachment #8665811 - Flags: review?(ajones) → review+
Attachment #8665812 - Flags: review?(ajones) → review+
(Assignee)

Comment 3

3 years ago
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
(Assignee)

Updated

3 years ago
Blocks: 1208917
Duplicate of this bug: 1060898
https://hg.mozilla.org/mozilla-central/rev/ad309987a50e
https://hg.mozilla.org/mozilla-central/rev/358e3ce0a218
Status: NEW → RESOLVED
Last Resolved: 3 years ago
status-firefox44: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
(Assignee)

Updated

3 years ago
Blocks: 1209806
Anthony, should we uplift ffmpeg to Aurora 43 since it improve Linux stability?
Flags: needinfo?(ajones)
Blocks: 1210219
Blocks: 1213499
(Assignee)

Updated

3 years ago
Blocks: 1214943
(Assignee)

Updated

3 years ago
No longer blocks: 1214943
(Assignee)

Comment 8

3 years ago
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?
(Assignee)

Updated

3 years ago
Blocks: 1214943
(Assignee)

Comment 9

3 years ago
Created attachment 8674060 [details] [diff] [review]
P2. Enable FFmpeg by default if available.

Rebase for aurora...
(Assignee)

Comment 10

3 years ago
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.
status-firefox42: --- → unaffected
status-firefox43: --- → affected
tracking-firefox43: --- → +
tracking-firefox44: --- → +
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+
Blocks: 917831
(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)

Comment 16

2 years ago
I just tired to play an mp3 audio in Firefox 43, and it doesn't work. Is ffmpeg supposed to enable that?
(Assignee)

Comment 17

2 years ago
what mp3 related packages do you have installed? (gstreamer, plugins, ffmpeg etc..)

Comment 18

2 years ago
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

Comment 19

2 years ago
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

Comment 20

2 years ago
MP3 content can be played on Aurora (version 45.0a2).

Comment 21

2 years ago
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.
(Assignee)

Comment 22

2 years ago
(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.
(Assignee)

Comment 23

2 years ago
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.
(Assignee)

Comment 24

2 years ago
(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
(Assignee)

Comment 25

2 years ago
(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

Comment 26

2 years ago
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?
(Assignee)

Comment 27

2 years ago
(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.

Comment 28

2 years ago
(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.
(Assignee)

Comment 29

2 years ago
(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

Comment 30

2 years ago
(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!
(Assignee)

Comment 31

2 years ago
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.

Comment 32

2 years ago
Sure, I'm talking about the stock Mozilla build (which I use), not about distributions builds.

Comment 33

2 years ago
(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.
(Assignee)

Comment 34

2 years ago
(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.
(Assignee)

Updated

2 years ago
See Also: → bug 1190612
(Assignee)

Updated

2 years ago
Depends on: 1237540

Updated

2 years ago
Duplicate of this bug: 541494
You need to log in before you can comment on or make changes to this bug.