Multimedia dedicated weblog.

Why Adobe sucks this time

April 12th, 2008 Posted in Uncategorized

Ever since I’ve started to play with the idea of implementing an own flash server I’ve been checking out flash builds more frequently than usually. After the last Flash Player release I really feel the need to write something about it, Adobe’s steps and the way I feel about all of this.

Silverlight as a Microsoft project is taking advantage of the Microsoft technology such as WMV or VC-1 but I’ve always preferred open standards myself. That’s why I was very happy to hear that Adobe announced support for H.264 and AAC.

Okay. So what is the reality? Surprisingly …. stupid as hell. Flash player can receive data in 2 ways. Either via HTTP protocol as simple (or progressive) download or using a proprietary RTMP protocol. Few months ago when there was no H.264/AAC/MP4 support in flash all videos were FLV files. The simplicity of the structure of a FLV file allows to write simple PHP scripts or server modules such as mod_flv_streaming for lighttpd that can be used to imitate server-side seeking and deliver files directly from the requested file position. There are also ways to limit the bandwidth for FLV delivery so “file-streaming” feature was quite easy to implement.

When playing MP4 files the things can get a bit more complicated. The more complex file structure of MP4 files does not allow to fake the seeking in such an elegant way with simple HTTP file delivery. Also flash player does not do any kind of smart buffering - it simply loads the complete file into memory and once it’s finished it tries to play it back. If the file is too large you’re gonna have problems.

The alternative to the HTTP is the RTMP protocol which is implemented in the Flash Media Server (FMS) and can also deal with live streams both for FLV and MP4. It is designed to do all kinds of magic you can’t do with simple HTTP. Adobe has also patented a system composed of a server, client and a RTMP-like protocol. You can find more information in the Adobe Patents Media Server Technology post.

So far so good. The thing I find alarming is the way Adobe cut off all alternative systems to FMS by the latest Flash Player build which will ONLY work with the latest FMS (3.0.1). With a server other than FMS 3.0.1 the player will start downloading data and respond to the communication just as if everything were okay but it won’t play leaving clients (e.g. nice demo site - demos on the right work with and not with clueless with no information why it’s not working.

Bottom line

  • If you don’t purchase FMS and want to do H.264 video
    • no seeking
    • no buffering
    • slow file opening
    • no live streaming
  • If you’re using an older version of FMS
    • it’s time to reinstall or your users will be pretty upset
  • If you’re using alternative server such as Red5 with H.264 support
    • yay! handshake doesn’t work anymore
    • flash player won’t play anything

Quo Vadis?

In my opinion actions like the last one are most likely to undermine the respect Adobe has gained with the Flash technology. If I were to start a new video portal I would think twice whether to go for the Flash technology or not. I think it is okay to protect intellectual property but perhaps it would be best if Adobe released the specifications to RTMP and instead of preventing the people from using Flash started to focus on fixing bugs and solving incompatibility issues. Based on the penetration of flash I can only assume that big companies would still go for the Adobe commercial software because of the service Adobe can provide while the rest of the people could be just fine with opensource implementations. Otherwise we might just see another “monopol abuse” trials as we did with Microsoft.

  1. 2 Responses to “Why Adobe sucks this time”

  2. By klipsil on May 28, 2008

    well i was playing with this piece for a while.
    i can pseudo stream mp4 files to 115 and 124 versions using mod_h264_streaming plugin for lighttpd.
    the downside is that all atoms needed to be sent all over again after updating the atoms inside the mp4.
    in small files this works good but in large file scrubbing/seeking takes a while to load and cause more latency.
    lately adobe have release the flv 9 spec which describe how h.264/aac can be multiplexed into flv file.
    this will enable the older php like soultions to work and also very fast.
    i haven’t start working on it yet but theoritcaly it should work.
    do u have any experince with this option?

  3. By Arjen on Jun 5, 2008

    Hi klipsil,

    As far as I can tell, the multiplexing of h264 into flv unfortunately won’t gain you anything. It’s just the MP4 atoms wrapped FLV style, so you run into the same issues (i.e. resending the metadata).



Post a Comment