|
|
Subscribe / Log in / New account

Rob Savoye discusses the Gnash project

By Forrest Cook
February 19, 2008

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 a GNU Flash movie player. Previously, it was only possible to play flash movies with proprietary software. While there are some other free flash players, none support anything beyond SWF v4. Gnash is based on GameSWF, and supports many SWF v7 features.

[Gnash logo]

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:

OMNow is a foundation dedicated to the development, support and empowerment of an open media infrastructure. Upon this infrastructure stand companies and individuals who need free media solutions. Free media solutions save companies money and give them control over product technology. Such solutions support individuals by offering them legal ways to create, distribute and display their creative works. Our foundation opens the media market by actively developing operating system-agnostic and cross-platform solutions.

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.



to post comments

Rob Savoye discusses the Gnash project

Posted Feb 21, 2008 2:18 UTC (Thu) by JoeBuck (subscriber, #2330) [Link]

While there are some other free flash players, none support anything beyond SWF v4.

This is incorrect; swfdec supports more than SWF v4.

Perhaps the grumpy editor can give us a comparison of swfdec and gnash.

CODECs

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.)

CODECs

Posted Feb 21, 2008 4:47 UTC (Thu) by Burgundavia (guest, #25172) [Link] (9 responses)

The difference between CODEC and GNOME is that the former is an acronym and the latter a
trademark.

CODECs (going off-topic)

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).

CODECs (going off-topic)

Posted Feb 21, 2008 7:46 UTC (Thu) by nix (subscriber, #2304) [Link] (7 responses)

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.

CODECs (going off-topic)

Posted Feb 21, 2008 11:24 UTC (Thu) by patrick_g (subscriber, #44470) [Link] (6 responses)

>> GNOME's been busily ripping *out* support for bonobo, and replacing it with nothing, as far as I can tell.

By D-Bus i think. See http://www.freedesktop.org/wiki/Software/dbus

CODECs (going off-topic)

Posted Feb 21, 2008 14:57 UTC (Thu) by nix (subscriber, #2304) [Link] (5 responses)

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)

Posted Feb 21, 2008 15:58 UTC (Thu) by Frej (guest, #4165) [Link] (1 responses)

Why hasn't d-bus arrived? 


CODECs (going off-topic)

Posted Feb 28, 2008 8:30 UTC (Thu) by goaty (guest, #17783) [Link]

It's d-layed.

CODECs (going off-topic)

Posted Feb 21, 2008 17:31 UTC (Thu) by salimma (subscriber, #34460) [Link] (2 responses)

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)

Posted Feb 24, 2008 13:57 UTC (Sun) by nix (subscriber, #2304) [Link] (1 responses)

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)

Posted Feb 24, 2008 20:10 UTC (Sun) by bronson (subscriber, #4806) [Link]

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

Posted Feb 21, 2008 12:05 UTC (Thu) by epa (subscriber, #39769) [Link]

codec: coder-decoder
modem: modulator-demodulator

Neither is an acronym.


Copyright © 2008, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds