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 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.
(
Log in to post comments)