FreeFlash

Revision 19 as of 2008-01-26 13:51:55

Clear message

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

This specification proposes to ship a free-flash implementation by default. Since free flash solutions are not yet fully compatible with the proprietary flash plugin provided by adobe, this spec also proposes a way to easily replace free flash with the non free one through means of the alternatives system.

Use Cases

  • Scott wants to watch a [http://video.google.com/videoplay?docid=2728972720932273543 video about Ubuntu]. He cannot see the video in his browser.

  • Stefan wants to use Edubuntu on his school's computer. Unfortunately a lot of the learning tools they use are done in Flash.
  • Sarah wants to watch flash-advertisements.

Scope

  • include gnash and dependents in main
  • add gnash mozilla plugin to default install on CD/ISO (ubuntu-desktop)
  • gnash, swfdec, nonfree-flashplayer packages will provide an alternative to allow system wide configuration of the default flash player
  • easy codec installation for gnash

Implementation

Summary

  • include gnash in main
    • build with gstreamer backend
  • setup alternative for global /usr/lib/firefox/plugins/libflashplugin.so
    • use standard priority for gnash libflashplugin.so
    • use higher priority for non-default nonfree-flashplayer to ensure that user gets what he wants by just installing nonfree-flashplayer without removing free alternative from computer
  • add easy codec installation support to gnash (See: [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gstreamer-base-utils.html gstreamer-base-utils API]).

Eval and Pointers for "Add easy codec install support to gnash/gstreamer"

Most trivial place to hook this in appears to be NetStreamGst::startPlayback ([http://cvs.savannah.gnu.org/viewvc/gnash/server/asobj/NetStreamGst.cpp?revision=1.41&root=gnash&view=markup NetStreamGst.cpp]) for both audio and video.

The gnash gtk frontend uses gtk_main() loop, so using the gstreamer easy codec install api is possible without hacking gnash core components.

Outstanding Issues

  • we cannot get the main window xid in a clean fashion from within the gnash gstreamer server/backend (which would allow the installer to make itself transient to the gnash window) - not critical
  • retry to start video when previously missing codec has been installed might be tricky - not critical?
  • A [http://people.ubuntu.com/~fabbione/irclogs/archived/2007-01/ubuntu-meeting-2007-01-02.html Technical Board meeting] resolution stated that ffmpeg was permitted in main, but could not be shipped on CDs, which seems like a problem for something that might end up in desktop. Are the Flash codecs patent-encumbered? If so, splitting them into a separate binary package would sidestep this issue. --ColinWatson - this is tackled by using gstreamer backend for gnash and not installing ffmpeg plugin for gstreamer in main. Adding Easy codec installation support to gnash will provide means to install missing codecs (like the gstreamer ffmpeg plugin) from universe --AlexanderSack

Update

After discussion with mdz and cjwatson we agree that gnash is not yet ready to be installed by default. However, we want to provide users a choice in the plugin finder wizard when first visiting sites containing flash content. In consequence this spec depends now on firefox-distro-addon-support.


There are three Flash codecs, MP3, which is used for audio, FLV, which is used by YouTube and other sites, and the newer VP6, which is based on the ON2 codec. I believe all have patent issues, but as far as anyone has determined, decoding these codecs isn't an infringing use, just encoding. The idea at the UDS meeting was to only ship the ffmpeg decoders. -- RobSavoye

  • Actually there are six Flash codecs: MP3; the Nellymoser audio codec used by for example mobile phones or webcams; "old" Flash Video which is using a VP codec developed by the company On2; "new" Flash Video using VP6 also by On2; FLV is actually a stream format, not a codec; and then there is HE-AAC for audio and H.264 for video of the new "Movie Star" MP4 Flash Videos. YouTube is using VP6 for many videos already and H.264 for videos originally uploaded in MP4 and that have YouTube dimensions and thus need no resizing. MP4 (HE-AAC & H.264), MP3 and old On2 VP (which is similar to Theora, also developed by On2) have good open-source implementations, but Nellymoser and VP6 don't!

CategorySpec