Rob Savoye discusses the Gnash project
On February 14, 2008 the Boulder Linux Users Group presented a talk by Rob Savoye entitled Gnash, and the quest for Open Media politics and legalities. This article aims to cover some of the key points raised by Rob. The Gnash home page describes the project:
Gnash is cross-platform software. It currently works on the Linux, MacOS, Windows and some embedded platforms. Under Linux, it runs on the KDE, Gnome and FLTK desktop environments. Gnash can be run in standalone mode or as a browser plugin for Mozilla Firefox and Konqueror. The software currently runs on small platforms such as cell phones and PDAs, larger desktop systems and game platforms. Gnash does not yet run on the ROCKbox platform, but that is an interesting idea. Gnash has been developed with efficiency in mind from the beginning. One of the main design goals has been to trap all possible errors and deal with them correctly.
The Open Media Now! Foundation has been created as a support base for Gnash:
Gnash development originally started because of a need for an open-source alternative to proprietary Flash/FLV players. Red Hat's Bob Young is supporting the Gnash project. His desire was to have a legal, but free client that allowed Linux users to view online video sites like YouTube.
Gnash development has been done using a Clean room reverse engineering technique. By agreeing to the license for the Adobe (formerly Shockwave) Flash player, a developer gives up the right to develop a competing product. This has limited the input from some "tainted" developers to only remotely testing the application and reporting bugs. Rob made a number of comments on the Gnash development process. Reverse engineering of a proprietary format has been tricky, it involved a lot of effort from numerous people. Developers involved in this type of project require a lot of personal motivation. After enough hours staring at hex dumps, one is able to recognize data structures and read the text represented by hex-encoded ASCII. Patterns emerge in the hex output, some apparent bugs have even been found in the data generated by proprietary CODECs.
The Gnash project has wider goals than just providing a free media player. The writing of open-source creation tools, servers and clients is in the planning stages. One interesting concept is to have Gnash negotiate with a content server and automatically switch to a free CODEC mid stream. There are plans to support a broader selection of free video CODECs. This is somewhat hampered by the numerous and fuzzy legal issues around CODECs.
FLV is currently the most common online video format, it tends to lock users in and has successfully locked in the market. Gnash hopes to break this lock by giving Gnash free CODECs with more features such as higher quality video and better bandwidth utilization. Interestingly, the mobile phone platform, which has a much quicker design cycle turnaround, may lead the way for open video formats. Due to its small memory footprint, Gnash is often the best, if not only option for providing video on phones.
Patent-free CODECs can have a large appeal to content providers. With proprietary CODECs, it is up to the provider to pay the licensing fees. This can often consume most of the profit such an organization brings in. Free CODECs will enable a much larger group of content providers to open up. The Wikipedia online encyclopedia project has recently started experimenting with a collaborative video project.
Rob mentioned one interesting side topic that applies to many free software projects. There are three stages of project development. The first is making software that works in basic way. This is relatively easy, and is where many projects get stuck. The next stage is to make the software work well. Some, but not many, free software projects graduate to this level. The last stage is to make a product. This is something that only a few free software projects ever achieve. A product works well for almost all users and is easy to figure out. Bugs are rarely encountered. It can take more effort to move to the product level than the other stages combined.
Wrapping things up, Rob mentioned that the Gnash project is very much in need of some assistance from a GUI expert, knowledge of both KDE and GNOME is desirable. Interested people should apply. Also, a new release of Gnash should be out fairly soon.
Posted Feb 21, 2008 2:18 UTC (Thu)
by JoeBuck (subscriber, #2330)
[Link]
This is incorrect; swfdec supports more than SWF v4.
Perhaps the grumpy editor can give us a comparison of swfdec and gnash.
Posted Feb 21, 2008 3:16 UTC (Thu)
by midg3t (guest, #30998)
[Link] (11 responses)
I think the time has come to consider "codec" a word, just like "laser". Reading CODEC and LASER is a bit jarring. (I also advocate "Gnome" over "GNOME", but I think I'm in more of a minority on that one.)
Posted Feb 21, 2008 4:47 UTC (Thu)
by Burgundavia (guest, #25172)
[Link] (9 responses)
Posted Feb 21, 2008 4:56 UTC (Thu)
by pr1268 (guest, #24648)
[Link] (8 responses)
Well, CODEC might better be written as CoDec (as in Coder/Decoder). GNOME (be it in all capital letters or not), is an acronym: GNU Networked Object Model Environment (or so I've read).
Posted Feb 21, 2008 7:46 UTC (Thu)
by nix (subscriber, #2304)
[Link] (7 responses)
Posted Feb 21, 2008 11:24 UTC (Thu)
by patrick_g (subscriber, #44470)
[Link] (6 responses)
Posted Feb 21, 2008 14:57 UTC (Thu)
by nix (subscriber, #2304)
[Link] (5 responses)
Posted Feb 21, 2008 15:58 UTC (Thu)
by Frej (guest, #4165)
[Link] (1 responses)
Posted Feb 28, 2008 8:30 UTC (Thu)
by goaty (guest, #17783)
[Link]
Posted Feb 21, 2008 17:31 UTC (Thu)
by salimma (subscriber, #34460)
[Link] (2 responses)
Posted Feb 24, 2008 13:57 UTC (Sun)
by nix (subscriber, #2304)
[Link] (1 responses)
Posted Feb 24, 2008 20:10 UTC (Sun)
by bronson (subscriber, #4806)
[Link]
Posted Feb 21, 2008 12:05 UTC (Thu)
by epa (subscriber, #39769)
[Link]
Rob Savoye discusses the Gnash project
While there are some other free flash players, none support anything beyond SWF v4.
CODECs
CODECs
The difference between CODEC and GNOME is that the former is an acronym and the latter a
trademark.
CODECs (going off-topic)
CODECs (going off-topic)
So it's like the Holy Roman Empire, then (`not Holy, nor Roman, nor an
Empire'), except this is no network, no object model.
There simply isn't an object model there, nor has been for, well, ages.
aWhile KDE has just about everything accessible via KParts/dbus
interfaces, GNOME's been busily ripping *out* support for bonobo, and
replacing it with nothing, as far as I can tell.
>> GNOME's been busily ripping *out* support for bonobo, and
replacing it with nothing, as far as I can tell.CODECs (going off-topic)
By D-Bus i think.
See http://www.freedesktop.org/wiki/Software/dbus
CODECs (going off-topic)
Well, bonobo's been vanishing since GNOME 2.8 or something, and d-bus hasn't arrived in 2.20,
and I can't imagine that many apps have gained much automation support in the time since that
was released (what, a few months?)
Still it'll be nice if it can get to where KDE is now (the easy embeddability KParts provides
is lovely; you can pretty much write a minimal KPart in a few lines).
CODECs (going off-topic)
Why hasn't d-bus arrived?
CODECs (going off-topic)
It's d-layed.
CODECs (going off-topic)
Pardon? DBus is used heavily -- it's how NetworkManager signals the presence/absence of
network connections, how applications inhibit Gnome Screensaver from activating, etc.
It's not an embedding mechanism like Bonobo and KParts, true. And it's true that Bonobo is not
as widely used as KParts is in KDE land. But that does not make DBus a failure.
CODECs (going off-topic)
I was assuming the `bonobo is dead, use d-bus instead' messages implied
that one was being used as a replacement for the other, especially given
that KDE *has* successfully used d-bus to implement an embedding
mechanism.
So, er, GNOME doesn't actually have a non-deprecated embedding mechanism
right now, then?
CODECs (going off-topic)
D-Bus is being used in a lot of places to replace Bonobo. See, Bonobo was originally meant to
be far more than just an embedding technology (it was a compound document format,
inter-application communication framework, etc etc). D-Bus is just meant to replace the IAC.
> GNOME doesn't actually have a non-deprecated embedding mechanism right now, then?
Bonobo isn't deprecated yet. It's still used for embedding and a few other legacy places.
Its days are numbered, yes, but the number is still pretty high. :) The Gnome project seems
to be moving methodically, replacing Bonobo one piece at a time. Personally, I don't think
that's a bad strategy.
CODECs
codec: coder-decoder
modem: modulator-demodulator
Neither is an acronym.
