FireFox Video - Discarding Ideas is as Important as Creating New Ones

  • Posted on: 23 November 2016
  • By: tomww

Update 20161123: you can now play video in Firefox 45 if ffmpeg is installed! read here: http://sfe.opencsw.org/newsflash_solaris_11_sru14_firefox_45_video_playb...

Demand for Video Playback in Firefox
Since quite a while I had the idea to update the gstreamer modules for video (e.g. gst-ffmpeg) for Solaris. OpenIndiana Hipster added those a few months ago plus created a few new ones. The ffmpeg module enables firefox to play non-flash and non-html5 view quite nicely. Today on OpenIndiana only.

So I did an attempt to update the modules we already had in SFE. And add gsteramer-plugin-base as well.
The first task was to install a plain OpenIndiana Hipster 2015 (OIH) on a machine with graphical display and see which packages are really needed on OIH to get videos playing in firefox. It's been far too long since I've been able to play most of the video content e.g. in my twitter timeline - to see video play nicely in firefox on OpenIndiana fueled me enough to start a porting attempt on monday evening.
The OI test revealed that the gstreamer ffmpeg and base modules have been necessary (and Firefox plugin HTML5)

While starting the update on the existing spec files and port a new plugin "gstreamer base" for Solaris 11. the research for the details brought up that the firefox team made gstreamer support work in builds around firefox build 33/34.
But later on I discovered that they got more and more annoyed from the unstable behavior of gstreamer and therefore they took the appropriate steps to get rid of those negative impact: They started a move gstremer out of firefox and integrate pure ffmpeg into firefox - to get a (hopefully) more stable behavior when playing video. Later on I'll add the links to this article about the bugreports / mailinglist entries so you can read the details and motivation of the firefox team.

About Discarding Ideas
So, lucky enough, I did not spend too much time on that porting attempt and I'll discard it related to the firefox video playback now. One reason which adds to that is, that Solaris 11 currently doesn't have a new-enough firefox (31.8.0) to have the gstreamer support for video playback, that means, I would have to either wait for an updated firefox on Solaris 11 - or make my own spec-file (version between around 33/34 up to 45) to get the firefox side right.

It Wasn't Wasted Time
In the end, I'll polish up the existing gstreamer plugins in SFE to get at least "totem" play nice mp4 video (and other formats) through gstreamer on Solaris 11. But no special effort goes into the firefox - gstreamer integration for now. It is a dead end.

So What's Upcoming?
I'll wait for the ffmpeg direct integration into firefox and in the meanwhile try to get a firefox version 45 or so into SFE. Peoply want it anyways and it can server as a testing object for the ffmpeg integration into firefox on Solaris 11. Hopefully the ffmpeg integration works nicely.

It is quite interesting to learn how fast software projects can change direction and focus over such a short time of only a few months (the gstreamer integration and almost banning it shortly after).

If you have questions, comments or anything else, please comment here in the blog or send me an email on sfepackages at g mail dot com.

If you like SFE, please engage by using the package, blog and tweet and fb about it, or even get a package testing volunteer (it is easy!) or a maintainer (it can be easy too).

Regards,
Thomas

This article has been posted initially on/around 2016-03-29

Comments

Sorry, this should probably better be a new thread.
But I am (why?) "not allowed" to post new content.

The issue is:
After installing localhosts11 udates in November, namely:
orc, openldap, openjpeg, lcms, libvpx,
firefox suddenly could not play mp4 videos any more.
The culprit seems to be orc or libvpx, as I could identify by booting into
the concerning backup BEs.
Because (due to an error by Oracle) I also had to
# pkg facet-change version-lock.consolidation/sunpro/sunpro-incorporation=false
before, and I wanted to have the most possible clean base, I booted into
the earliest available backup BE after publication of Solaris 11.3.
firefox could play mp4 videos then.
I then repeated the facet change, which did not impact firefox.
Then I waited for all the updates to be offered again.
After newly installing all the updates (error-free), firefox failed to play
mp4 videos again.
I then installed ffmpeg, which did not help.

Any ideas?

Norbert, please check your email.

I've sent you an email with commands for collecting package status and test commands.

For the record. To collect data run the following commands:

---------------------------------
DATESTRING=`date +'%Y%m%d-%H%M%S-'$$`
pkg publisher 2>&1 | tee -a pkg_publisher_$DATESTRING

#you may send the complete installed packages list (mind the "-v")
pkg list -v 2>&1 | tee -a pkg_list_-v_$DATESTRING

#or filtered for relevant packages:
pkg list -v 2>&1 | egrep "/gcc|osnet|entire|firefox|ffmpeg|libvpx|/orc@" | tee -a pkg_list_-v_filter_$DATESTRING

#Test commands showing the actually found libraries and the loading procedure when ffmpeg is started:

ldd -r /usr/lib/libavcodec.so.5* 2>&1 | tee -a ldd_-r_libavcodes.so.5x_$DATESTRING

LD_DEBUG=files,libs /usr/bin/ffmpeg 2>&1 | tee -a LD_DEBUG_files_libs_ffmpeg_$DATESTRING

---------------------------------

It is best to send the output files by email to sfepackages at g mail dod com.

Regards,
Thomas