HowDoWeReplaceFlash
This site is the personal opinion of Alex Hudson. In particular, this does not reflect the views and/or policies of the Association for Free Software
Flash is a lovely technology for doing animation and interactive multimedia production on the web with small file sizes. However, it's non-free: the player isn't free, the production tools don't even run on free operating systems. How do we replace it?
[FSF recently (June 2005 bulletin) called for people to develop free tools to work with Flash]
Some information on Flash Features
- It has support for video baked-in, apparently FFMPEG can read/write these files into other formats...
- ActionScript language built-in
- Macromedia NPD survey says 98.3% installed base
Be Compatible With Flash
http://gplflash.sourceforge.net/ (updates http://www.swift-tools.net/Flash/ since July 2004) - a Free Software plugin for Flash (v3 compatible, IIRC) See http://dot.kde.org/1097981481/. Revived with new support from the FSF; they aim for full Flash 7 compatibility (via the traditional rewrite ;)
http://swfdec.sourceforge.net/ - another Free Software flash plugin
http://ffmpeg.sf.net/ - plays FLV and FLA, extracts embedded audio from SWF
http://flasm.sourceforge.net/ - get at the Javascript-y language that is ActionScript (up to Flash MX)
http://OpenOffice.org outputs Flash files from its presentation software
Flash v6 specification (NDA'd?) was available online (openswf dot org), but that site now appears to be owned by a search engine "optimisation" company. Do we know where it has gone? Is it no longer available?
http://www.amfphp.org/ - Flash remoting for PHP
http://f4l.sf.net/ - Early release of free software flash authoring software, appears to be active again but in re-design.
http://ming.sourceforge.net/ - Ming - an SWF output library and PHP module
http://www.oreilly.com/catalog/perlgp/chapter/ch09.pdf - Perl Graphics Programming - Chapter 9: Using Ming
There are also numerous server-side tools for producing/manipulating Flash Files.
Summary: you can play Flash with free software. Sometimes it might not be pretty, but it could work. No good content creation tools. Reasonable server-side support.
Some interesting flash related projects
http://www.kinesissoftware.com/ - Kinetic Fusion is a Java Flash Tool, that allows one to decompile an SWF to an XML file and back again, losslessly. It also has an Actionscript 2.0 compiler. The reason I mention it, even though it's closed source, is that an opensource project might benefit from looking at their XML representation of SWF files.
http://claus.packts.net/ - DENG, an open source Modular XML Browser written in actionscript/flash 6 (and compiles with Kinetic Fusion too), capable of rendering subsets of XForms, SVG, XHTML, XFrames, arbitrary XML (e.g. RSS) and any other custom XML application, styled by CSS 2 and 3. Pretty amazing.
http://www.quiss.org/swftools/about.html - SWFTools. Can convert from various files into Flash, but obviously low on interactivity.
Use Something Else
File format conversion tools (see SWFTools, above)?
SVG
Vector art and animation, apparently also now some scripting support, e.g. http://www-106.ibm.com/developerworks/xml/library/x-svgint/. Uses Javascript for scripting, which is similar to ActionScript.
Authoring tools:
- GNOME Inkscape / Sodipodi - stills SVG authoring, but promising support for animation in later versions
- SPALAH Project Flash - generates SVG (and maybe SWF itself) animations. According to the Inkscape Wiki, the author is trying to integrate it into Inkscape.
Upsides:
- Mozilla has an SVG project
- Supports streaming audio and video since SVG 1.2
- Uses main codecs rather than Flash's HTTP
Downsides:
- weak support for synchronisation
- relies on browser DOM for server communcation (I assume?).
- any good free software implementation? (most people use the Adobe plugin)
- low install base generally
- few authoring tools
Q. Why does Moz not support SVG natively?
A. It seems it does now! The latest Firefox ("Deerpark") has SVG support included, and it seems the next release (1.1) will have it included and enabled. This, alongside the new E4X support (Javascript support for XML) means that this could be a very compelling solution.
Q. Why does Inkscape support "Inkscape SVG" as well as "SVG" - is there a compatibility problem?
A. No - Inkscape SVG just contains extra information that isn't needed to display the image, but is useful for editing. Whichever format you save in, it should display correctly in SVG compliant programs
Does Helix GPL player support SVG or are there plans to?
Examples
http://jibbering.com/foaf/foafnaut.svg and http://jibbering.com/foaf/foafnaut.moz.svg (for mozilla) This is a visualiser for social networks (in fact any node/arc diagram) Or browse around http://www.svgx.org/subjects.html
SMIL
Language for writing presentations - http://www.w3.org/AudioVideo/. These can make use of audio and video, still graphics, generally you can also embed forms of media that your computer is able to play.
Downsides:
- really just a synchronisation language; it's a wrapper for the media formats you can already play.
- so, need to specify content types
- low levels of interactivity: no scripting support
- no support for streaming? (isn't this the Media Object Modules?)
- medium install base; incompatible implementations
Need more info: this is supported by many non-free codecs (including Flash); but is the (GPL) Helix player capable of playing it (this says it can)? Perhaps that, combined with free software codecs, might be a potential winner, but we would still need an SVG codec for Helix (only option AFAIK is to plug in the Adobe support..)
http://www.alistapart.com/articles/smil/ is a good article on SMIL by my favourite Jeffrey. "Cool things you can do with SMIL" is a bit clutchy-strawy (i.e., you can already do all that)
MPEG 21
Open multimedia framework for content delivery and consumption spec
This doesn't do the exact thing as SMIL in the same technology, no really.
Downsides:
- it's MPEG
- pt4/5 of the spec. more concerned with taking freedoms away from users rather than actually doing something useful
- probably patented up the wazoo
- does anyone support it? (maybe quicktime...)
- not going to be good at interaction
Quicktime
Same-ish as SMIL again; well-known file format, better known. Can assume a range of codecs being available. Binary, but there is a free software streaming server of good quality available. Some content creation tools available, all aimed at video rather than multimedia though. Apple dev info
Downsides:
- poor interactivity again
- range of codecs you can assume mostly useless; e.g., video codecs with YUV422 "compression" (i.e., straight data loss). No 'clever' compression
XUL, Python, Java, etc.
Bunching all these in together - no, they're not the same thing, but they share one common feature - they're development systems, not content platforms.
A Flash replacement of varying quality would probably be implementable in any of these systems (indeed, there is supposed to be a Java Flash player somewhere). Disadvantages include the fact that since such a replacement doesn't exist, the installed base is rather low.
Target Questions
- Is it feasible to start a "campaign" or "program" to try and get developers interested in a project to develop something like this?
- How much money could be assigned, either as donations or formal grants? What would the specifications be?
- Is there any real chance of getting anything useable within a reasonable timeframe?
- Do we try to integrate the existing bits like SVG and SMIL, or start from scratch?
Q 1-4 from Kevin Donnelly on 2023-10-13