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?

Some information on Flash Features

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/

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

http://www.openswf.org/ - Flash v6 specification (NDA'd?)

http://www.amfphp.org/ - Flash remoting for PHP

http://f4l.sf.net/ - Early release of free software flash authoring software

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.

Use Something Else

File format conversion tools?

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.

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. Looks like support just isn't ready. SVG support ("not necessarily [to version] 1.1") is a Firefox v2 "necessity".

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

  1. Is it feasible to start a "campaign" or "program" to try and get developers interested in a project to develop something like this?
  2. How much money could be assigned, either as donations or formal grants? What would the specifications be?
  3. Is there any real chance of getting anything useable within a reasonable timeframe?
  4. 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