Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

> Ok great, so Flash is also "open enough": fully published specs, anyone is allowed to use the format (creating, playing) without royalties. SWF is more open than h264.

But does anyone do this? I see no usable reimplementations of Flash Player, and the spec cannot possibly be complete. H.264 is a real standard with a conformance suite and bit-accuracy, and no scripting languages or multiple versions with different bugs to reimplement.

Flash also includes VP6 and RTMPE, which are proprietary and must be reverse-engineered.



sort by: page size:

Sure ActionScript is an open standard, but Flash is not. The file format has been published, but has the actual swf format (including its streaming protocols) been ratified by an independent standards body? If so, which one?

Flash's file formats are well-documented, but Adobe decides how it evolves. I can write my own Flash player today, but Adobe might decide tomorrow that they're going to completely change Flash 11's format so that my player is suddenly useless for any new content. They might have even decided it already, and after a year of development, the first I find out about it is on release day. Anyone who's invested time and effort into implementing my player in their software is suddenly screwed until I support the new format (which, because of things like proprietary streaming protocols, I might never be able to do).

This is actually the same problem with WebM. The source code is open, but it's not a community project in the way that something like Apache or PHP is. Google is the one in control, and this is Google's standard. If they're interested in openness, are they going to be submitting WebM to a standards body? Because unless there's a published standard that everyone (including Google) has to adhere to, WebM is even worse than H.264 because there's no guarantee that the money you've spent today will bring you anything tomorrow.


What almost everyone fails to realize is that Flash is already as open as it possibly can be. The SWF file specification and the player virtual machine are open and completely described here: http://www.adobe.com/devnet/swf/

The only thing that keeps Adobe from completely open-sourcing their own player is codec licenses, not Adobe's stubbornness. Adobe pays a lot of money to license codecs that are closed (like h.264) and therefore have to protect those interests within their player. If there were a common open standard for video/audio, this would be a possibility.

(edit) http://blogs.adobe.com/open/2010/02/following_the_open_trail...


> Ok great, so Flash is also "open enough"

This is clearly not true, though. The only implementation is closed and fully controlled by Adobe. Maybe it is more open in spirit but that doesn't mean crap in practical terms. In fact Silverlight is more open (in practical terms) than flash since at least there is a usable open source project. There exists right now a full featured and heavily developed open source h.264 decoder. You can't say the same for Flash. It is either Adobe Flash or spend a bazillion dollars trying to re-implement open flash that doesn't exist yet Flash. That's a non-starter.


On page two, "Consistency Counts", the argument isn't right. "Openness" is sadly very ambiguous, but as noted earlier in the article, there's a difference between being developed openly and having patent encumbered royalties. Flash is actually an open specification, and anyone is free to develop tools that create flash content (distributed as source or binary) without paying royalties to Adobe in any part of the world. Anyone can create a flash player too without paying royalties.

VP8 and Flash are not open standards, but they are royalty free. AVC was openly developed and is an ISO standard but is not royalty free.


    Flash specs are open
This is a myth that gets repeated a lot.

First, before May 1, 2008 the official specs for the swf format couldn't be used to create alternative implementations. If you read them, you were tainted. Even after, the spec didn't contain essential info like details about the RTMP protocol.

Second, it took an awful lot of time for Adobe to release specs, and the specs aren't really useful since devs from Gnash and SwfDec did a better job by reverse engineering, which is still legal.

And it can't help when Adobe is suing Wowza (as in, right now) or when it pulls rtmpdump from SourceForge with a DMCA request (May 26, 2009).

Third - open, as in public specs, doesn't mean it's a standard. It would be a standard if you were allowed not only to create an alternative implementation (debatable if you can) but if you were able to improve on it, improvements which may also be accepted in the standard.

And a real open standard requires a standards body, not a company that is willing to sue using patents whenever they feel like they aren't in control anymore.

If anything, the "opening" of those specs means absolutely nothing. Flash is still as closed as it was prior to May 2008. The only difference between now and then is the maturing of projects like Red5, but such projects are in a gray legal area. And THE alternatives to the official Flash client are still mostly unusable.

Go ask the Gnash or SwfDec developers about the openness of Flash.


I am sorry if you are offended by my ignorance. I am not currently arguing that the flash player provided by adobe is open. I conceded a while ago that the flash player provided by adobe is proprietary. However, an alternate flash player exists and you can program SWF without ever touching an Adobe product. There is a spec and open tools for doing so. I was simply under the impression that Flash was open minus Adobes implementation and am trying to see why everyone is saying it is not.

edit: I don't understand why me disagreeing with you automatically makes me a troll. People are quick to jump on people who don't agree with their viewpoints.


I like the Open Screen project and I agree that SWF is a minimally open standard, but to say that Flash is open, enough to code a competitive Flash player, is misleading.

There's enough behavior that a practical Flash player needs to implement that isn't in the Open Screen spec (error handling in particular) that creating your own Flash player for general content on the web produced by Adobe Flash, and not just carefully-vetted SWF's, is hard.

But at least Adobe stopped threatening legal action against anyone who implemented their own Flash player.

Edit: Open Page? Open Screen. Oops...


adobe has opened up a little bit. enough to convince a casual observer that swf is an open format. but it's not.

for example, the open source flex sdk can't be used to create flash apps with gui controls. for that, you need adobe flash cs4. they haven't opened up the fla format, which means that nobody can create a product that competes with adobe flash cs4. so it's not very open at all.


I think your comments here are off base.

The SWF standards (and associated standards like RTMP) are available for free on the Adobe website. You are permitted to construct alternative implementations based on this specification. I think it meets the definition of an open standard.

Would HTML not be an open standard if the only browser we had was IE, and it was horribly buggy? No - the quality of the available implementations is irrelevant to a standards "openness".


The SWF format is open (in the sense that it's a published spec) and many SWf decompilers already exist. This doesn't change anything in that regard.

Worth noting that the SWF format was towards the end of its lifecycle and open standard as well. Fully documented with open source players and tooling available.

Considering the spec is open and anybody can make a SWF from any program, or use any program to parse and execute a SWF...isn't that the definition of "openness"?

It's Adobe's tools that aren't free or open.


I can. "License: Proprietary freeware EULA" on http://en.wikipedia.org/wiki/Flash_Player

And the argument that anyone is free to re-implement is just as valid for anything. The fact of the matter is that thousands of man-years have gone into building Flash Player, and replicating them is far from a straightforward task. The spec is huge, and there are millions of .swf files to which an alternative implementation needs to be compatible. It's a bit like suggesting someone re-implement Windows if they don't like Microsoft's version of it. It's open, right? Anyone can look up the ABI for user space executables, kernel drivers, etc., so how hard could it be? ReactOS (or Wine) hard, as it turns out.

Note also that for the supposedly open components, Adobe controls them so tightly, they are only "look but don't touch" open. Openness is only useful insofar as you can actually do something with the information or code. They maintain this control precisely because they have an iron grip on the player. There is no point for a third party to extend the Flash spec or compiler, because they can't realistically build an implementation that actually runs code obeying the forked spec. It's as ridiculous as creating a driver to run on a hypothetical version of Windows. Yes, you can do it, but it's also completely pointless.


Yes. The standard itself (the swf file format, the AVM bytecode, etc) is actually open. To their credit, Adobe has all the relevant specs on their website.

How more open do you want it? You are free to make your own player against the open specification.

Fully open isn't the answer for everything. Flash is the most widely distributed piece of software ever - it got that way by NOT being forked and offering what HTML didn't both in terms of consistency and features.


The VM is open source, the frameworks are open source. The language specification is open.

The only thing closed are codecs (many of which are licensed from other companies and can't be open sourced), DRM stuff and platform level code that glues everything together. On the other hand, there are open source versions of swf players that Adobe actively promote.

Unfortunately, community involvement (developers and early testers) in all these projects have been low. My understanding is that people within Adobe (and there are many who like Open Source) have no evidence that open sourcing more stuff is any better for the player, since the community hardly gets involved.

Adobe did launch a 64-bit Linux flash player on Labs. Most 64 bit users never used it, sticking with the nspluginwrapper method instead.

I'm sure more community involvement with existing open source projects at Adobe would pave the way for opening up of more stuff.


Could someone please explain to me how Flash isn't open? To my knowledge, everything about flash is open other than Adobe's IDE. The spec has been released, the sdk is OSS and anyone is free to compile to SWF... Am I mistaken here?

Adobe has opened up everything that they can for Flash Player. There are only a few closed portions, such as H.264 video license stuff, that they cannot share for obvious reasons.

Yes, "you" was a general y'all, not specifically you =)

Edit: Question just came up at session at MAX. Direct from Adobe Flash Product Manager: there is a lot of code that isn't Adobe's that they had to license. Also, Flash Player is tiny/tight bit of code ( < 1 MB). It's messy to be very efficient. Finally, they have opened it up, but Adobe still writes 99% of the code themselves, so they're not encouraged to open it up more.


You are only half right. Flash is not an open standard.

Standards are means to an end, which is cross platform applications so I don't have to write the same thing multiple times over. If Flash was done well and it was cross platform, then it wouldn't be a problem for me.

next

Legal | privacy