In particular Mike explains how a desktop video player and Flash Player differ. One obvious difference which surprisingly often gets overlooked, is that Flash Player is not just a video delivery medium but so much more than that. If you think back a few years there was barely any support for video in the Flash Player, and the only reason we hear so many complaints about its performance is due to the fact that so many people are using it these days. Flash has had an unprecedented growth curve when it comes to video delivery on the web, but it was a popular plugin way before then.
The issue Mike explains well in his article is that of users comparing apples to oranges a lot of the time: they compare a browser plugin to a desktop tool. In Mike's words, "a desktop player usually plays a linear media file from start to finish. Flash Player solves a different problem: It plays linear media files from start to finish while combining the video with a wide array of graphical and interactive elements (buttons, bitmaps, vector graphics, filters), as well as providing network, webcam, and microphone facilities, all programmable via a full-featured scripting language, and all easily accessible via a web browser using a plugin that most of the browsing population already has installed."
Mike's article in full can be found here. Please bookmark it and send to everyone who asks you next time: "Can you explain why a video player like VLC can play the same flv file with less CPU usage than the Flash Player?".
And the main takeaway: "The Flash Player works to solve the problem of making video accessible via the web browsing environment. In contrast, a desktop media player plays a file using a dedicated, single-purpose application."
In Adobe's words: "Adobe Stratus 2 enables peer assisted networking using the Real Time Media Flow Protocol (RTMFP) within the Adobe Flash Platform. The most important features of RTMFP include low latency, end-to-end peering capability, security and scalability. These properties make RTMFP especially well suited for developing real-time collaboration applications by not only providing superior user experience but also reducing cost for operators."
While this sounds like the same capabilities that the previous version of Stratus offered it contains some significant updates, the main one being support for RTMFP Groups.
I've not had a chance to watch it yet but feel free to leave comments below if you have. I'll definitely put it on my ever-growing MAX catchup list.
To clear thing up, Kevin Towes, FMS Product Manager at Adobe, just posted the following information to the FlashMedia List:
STRATUS - this will always be ahead of the curve, providing a way to help us roll out new features that are in Flash player, before we can have a server offering. The service is and will remain as a free non-commercial service from Adobe. This service is not FMS, and has no ability for Server side scripting, or customization.
AFCS/LIVECYCLE COLLABORATION SERVICE - this will be a commercial option for customers interested in building a business that includes RTMFP. We introduced a pricing model, and it has support for the features found inside Stratus 1.0 (supporting Flash player 10.0). Key advantage with this service is the framework, which is an option for developers to get started, and leverage RTMFP to RTMP failover technology. You still will not have access to server side scripting, but there are lots of APIs in the framework to get you going. The goal for this service is to provide developers an option to bring this technology into your solution.
FLASH MEDIA SERVER - we have not announced any new version of FMS yet that will support RTMFP. We did hint yesterday that we'll be updating FMS3.5 to version 3.5.3 later this year to support the new FP 10.1 features - and in a future version after that release - FMS may be one of your options to host a local service to build your own P2P applications - including introductions, and supporting server side programming.
Thanks Kevin, I think this clears things up somewhat.
I will post more details about the development process when things have calmed down a little, but for now I'm super exited to announce the immediate availability of my first application for iPhone and iPod Touch: my good old Just Letters game.
I figured this Flash game of mine which stems back from around 2005 would make an ideal candidate for a touch screen device, and I think I haven't been completely wrong with that assumption. Not only is Just Letters one of the first games built in Flash to ever hit the App Store but I have a feeling it is the very first game that use Flash Media Server to provide the real-time features.
In celebration of the launch I am distributing 10 free voucher codes for the US App Store (sorry, the vouchers do not work on App Stores outside the US). The game normally retails for $0.99. Just leave a comment below and I will pick a random 10 later today (leave your email too!).
Please help me spread the word about this game by blogging about it, tweeting or getting your grandma to buy a copy. Don't forget to review and rate it on the App Store too. please point people to the following age when you link to the game: http://www.muchosmedia.com/justletters (muchosmedia is my company, the 'official' developer behind the game).
Last but not least, if you need the game's icon or some screenshots then you can grab a small zip (1MB) from here. It also contains the game description in text format.
Thanks for your support!
Overview
I'm not quite sure where to start, but I'll have a try:
Flash Player 10.1 can be labeled as a 'real' fully featured Flash Player for mobile. It contains a lot of optimisations as well as new APIs that are directly aimed at breaking open the mobile device market for Flash - I think it's safe to say that the time for Flash on mobile has finally come.
You can find Jens's article here.
This is a fairly significant addition to the Flash Platform. While I'm not a fan of DRM, I understand that some content owners are very keen to add (what they perceive as) protection to their assets, and Flash will soon be capable to tick that box. The technology works in a similar fashion to the way in which the Adobe Media Player used to handle content protection: a DRM server called Flash Access 2.0 - which was also announced at IBC and which is basically a renamed release of Adobe Flash Media Rights Management Server (I'm glad that I won't have to type that name again!) - will handle the signing and protection aspects, while Flash Player can soon deal with the decryption and content access mechanisms natively. As mentioned above, this was previously only an option if Adobe AIR was used to build the client. I guess these new features and the demise of Adobe Media Player shows that end users prefer to consume content right inside the browser, and are less keen to install and use yet another video player onto their desktop. Those who prefer to use AIR to deliver their content can still do so as the runtime will also support the content protection features which Flash Access 2.0 promises. Here's the full press release.
Adobe Flash Access 2.0 is planned for commercial availability in the first half of 2010.
To clear thing up, Kevin Towes, FMS Product Manager at Adobe, just posted the following information to the FlashMedia List:
STRATUS - this will always be ahead of the curve, providing a way to help us roll out new features that are in Flash player, before we can have a server offering. The service is and will remain as a free non-commercial service from Adobe. This service is not FMS, and has no ability for Server side scripting, or customization.
AFCS/LIVECYCLE COLLABORATION SERVICE - this will be a commercial option for customers interested in building a business that includes RTMFP. We introduced a pricing model, and it has support for the features found inside Stratus 1.0 (supporting Flash player 10.0). Key advantage with this service is the framework, which is an option for developers to get started, and leverage RTMFP to RTMP failover technology. You still will not have access to server side scripting, but there are lots of APIs in the framework to get you going. The goal for this service is to provide developers an option to bring this technology into your solution.
FLASH MEDIA SERVER - we have not announced any new version of FMS yet that will support RTMFP. We did hint yesterday that we'll be updating FMS3.5 to version 3.5.3 later this year to support the new FP 10.1 features - and in a future version after that release - FMS may be one of your options to host a local service to build your own P2P applications - including introductions, and supporting server side programming.
Thanks Kevin, I think this clears things up somewhat.
The following post has been sitting in my drafts folder for a while and I wasn't sure whether to publish or not. Today I decided I would, and it was after reading a very interesting article by Mike Slinn on InsideRIA. It talks about Adobe's lack of focus on its developer community, and how a shift in startegy may mean winning the RIA market for Adobe. I'm always hesitant posting an article such as the one that follows as it will most likely be perceived as mainly negative by Adobe and its employees, many of which I know personally and rate very highly. I realise that there are people behind the software that this corporate behemoth churns out and it is for that reason that I'd like to say upfront that everything posted here has Adobe best interests in mind. I desperately want Adobe to succeed in the RIA market (and commonly they are doing a good job - but could do better...) and it is frustrating to see them making decisions that I think are not in their best long term interest.
One of my recent posts to the FlashMedia List seems to have struck a nerve when I asked if anyone there had tried out a Java application called JScrCap yet. According to its author, a developer can 'put this Java code on your web site as a Java applet and get browser-independent, platform-independent screen sharing solution with minimal installation efforts from end users'.
"Prohibited Uses
The rights and licenses granted by Adobe in the RTMP Specification, including those granted in the Patent License, are conditioned upon Your agreement to use the RTMP Specification for only streaming video, audio and/or data content and not to make, have made, use, sell, offer to sell, import or distribute: (i) any technology that intercepts streaming video, audio and/or data content for storage in any device or medium; or (ii) any technology that circumvents technological measures for the protection of audio, video and/or data content, including any of Adobe's secure RTMP measures. No right or license to any Adobe intellectual property is granted for such prohibited uses."
A long thread started on the list, and it was great to see not only community members participating but also several Adobe employees, including FMS engineers and even the product manager himself. Regardless of what you think of the RTMP license (I personally think it's a huge step in the right direction and underlines Adobe's commitment to removing barriers in this field) I think this level of engagement is rarely (ever?) seen by a multi-billion dollar company. Not only did Adobe engage, but they posted a wealth of information around the intricacies of RTMP/E/S security - many thanks to Kevin, Matthew, Asa, Jody and Brad (hope I didn't miss anyone) for regularly participating.
Further proof then (as if I didn't know) that the FlashMedia List is the place to be for the latest info on FMS, Flash video and its related technologies. And free Adobe tech support too - I suggest you subscribe right now :)
Once subscribed you can access the list archives here.
Adobe also announced a new product offering called the FMS Connector for C++ SDK, that is also available today for licensing. No details around the license terms have been made public yet, but anyone who is interested in the product can contact FMSOEMinquiries@adobe.com. The connector can be used to publish live audio, video and metadata into Flash Media Server.
The first, shorter video tutorial was authored by Tom Krcha of Adobe and guides you through building a simple P2P application leveraging Stratus. Watch it here.
The second presentation is an hour long session by Danny Patterson and goes into more depth than the previous tutorial. I haven't watched it in full but the part that I have seen looked very interesting and I definitely recommend you check it out.
It should be noted that Stratus is still in beta and detecting failed P2P connections can be a quite tricky. I would not recommend the P2P features for production use yet, instead you may want to rely on AFCS to handle the RTMP fallover for you.
As many of you will know, RTMP itself has been widely reverse engineered and documented, which made alternative RTMP servers such as Wowza and Red5 possible. Adobe have also recently announced that the RTMP specs will be made publicly available very soon, and so far I have heard of no action having ever been taken against anyone that implemented just RTMP. Quite clearly, the fuss is about RTMPE, not RTMP. It is the fact that rtmpdump can circumvent certain access controls that made Adobe react. By posing as a Flash Player, rtmpdump can connect to Flash Media Server and successfully pull and record an encrypted stream. In combination with the get_iplayer project rtmpdump made it possible to record all kinds of RTMP based content from sites such as channel4.com and the BBC iPlayer. The version of rtmpdump used within get_iplayer has now been removed and been replaced with a forked version called flvstreamer.
The article goes on to describe the use cases for such a TV set or STB: It will "create a new generation of connected entertainment services, including streaming video in high definition, and applications that can run in real time alongside video broadcasts, such as interactive news tickers, sport scores, quizzes and the weather."
Silverlight also gets a mention, but is described as having had "limited traction with developers and hardware manufacturers".
On the upside there is another hint which underlines Adobe's desire and efforts to get Flash Player onto the iPhone. All in all a great day for the Flash Platform as the ecosystem for developers has just widened considerably. Now let's hope that this story will make the 6 o'clock news too :-)
According to Adobe's Serge Jespers, the RTMP details will soon be published on Adobe.com. The full press release is here.
"With the RTMP specification, developers and companies will be able to provide users with optimized audio, video and data streaming, no matter what kind of device the user is on or where the content is coming from," said Adobe CTO Kevin Lynch. "Our ongoing commitment to openness is accelerating adoption of the Flash Platform by developers and resulting in a new generation of Web applications, content and video experiences that run reliably across operating systems and devices."
Understandably Adobe will not release details of the secure variants of RTMP such as RTMPE since it forms the backbone of some of the content protection measures in Flash Media Server.
The technology used to deliver? No, not Silverlight but Flash (did you really think I'd blog this if it wasn't? :-)
It's a bit of a shame though that there' are a bunch teething problems with this player - runtime errors whizzing past when you access the player using a debug version of Flash, and the embed didn't work well for me either since it played the whole video and not the part I highlighted, and at times I got even served the mobile version of the site!? Could someone give the guys at MSNBC some ActionScript training please ;-) Ok, I am kidding, credit where credit is due and I am sure they will get it all fixed in time.
Keep your eyes open for the full video of the presentation on Adobe TV (I am not sure if it will be published there or not, but the video roadmap session is there already).
In order to use RTMFP, Flash Player endpoints must connect to an RTMFP-capable server, such as the Adobe Stratus service. Stratus is a beta, hosted rendezvous service that aids establishing communications between Flash Player endpoints. Unlike Flash Media Server, Stratus does not support media relay, shared objects, scripting, etc. So by using Stratus, you can only develop applications where Flash Player endpoints are directly communicating with each other.
At MAX this year we also learned that a future (and yet unreleased) version of FMS will also support RTMFP and will be able to facilitate the same endpoint functionality as Stratus. But not only that: this future version of FMS can also use RTMFP in a client-server-client architecture, meaning that any traditional FMS based application can potentially make use of UD based, low latency communications. It does not have to be peer to peer setup... that I think is great news.
In the meantime you can sign up for a Stratus developer key and start playing.
As you may have heard, Stratus is the name of an upcoming service that will allow Flash Player 10 and AIR 1.5 clients to connect directly to one another in a peer to peer mode and exchange data once a connection is established. The protocol used is the new RTMFP (real time media flow protocol) protocol and it runs over UDP, not TCP. The use of UDP has a positive effect on latency and will therefore make Flash Player's peer to peer features ideal for one to one communications and reduce bandwidth costs since the server is sidestepped. You can try the new features using this sample application (Player 10 required).
While the Stratus cloud service is necessary to connect clients in this way, there will also be an upcoming version of Flash Media Server that is capable of facilitating this connection. More information on this is available in this PDF file.
RTMFP is one of the most exiting developments for Flash Player in recent times and it will add major new capabilities to the platform. There are plans to develop RTMFP further, and I recommend you attend the Sneak Peak sessions at Adobe MAX Milan next week where Adobe may showcase application level multi-cast over RTMFP. As outlined by Matthew Kaufman at MAX North America, the RTMFP protocol could evolve further and support one to many broadcasts, Group setups as well as Direct Routing.
Flash Player 10 will not enable swarming, multi-cast or broadcast quality live video at this time.
These are definitely exciting times to be a Flash Platform developer.
You can grab the 64bit Flash Player 10 for Linux on labs.
UPDATE
Now that Flash Player 10 is officially out you can download the debug version from http://www.adobe.com/support/flashplayer/downloads.html#fp10
I've just managed to iron out a nasty bug in one of my FMS apps and this issue will likely affect other applications.
One of my clients noticed that some users would show up multiple times in a userlist of one of my applications. The userlist was tied to a SharedObject and users were removed from this SharedObject as they logged off. I noticed that the issue only surfaces in Internet Explorer 6 and 7, regardless of the minor Flash Player version used.
Moreover (and this was the hard bit to figure out) the issue seemed to surface only on those pages which used SWFObject 2 or SWFObject 2.1 to embed the SWF. Any pages using a previous version of SWFObject (in particular I was using version 1.5) the problem did not occur.
My conclusion is therefore that the problem somehow lies with SWFObject and how it interacts with Internet Explorer. For some reason the onDisconnect event is not invoked on FMS (I was using FMS 2 in this particular app) when my SWF was embedded with SWFObject 2.0 or above and I have now rolled back to SWFObject 1.5. Hope this helps someone as it may easily have you pulling your hair out.
You can get Player 10 Beta on labs.adobe.com.
File Reference runtime access -- Bring users into the experience by letting them load files into your RIA. You can work with the content at runtime and even save it back when you are done through the browse dialog box. Files can be accessed as a byteArray or text using a convenient API in ActionScript without round-tripping to the server. You no longer have to know a server language or have access to a server to load or save files at runtime.
That's yet more big news. Saving actual files locally? Load files into the app without going through a server first? WOW! Combine this with video downloads and P2P...
Hank Williams even thinks that this technology could kill CDNs. I'm not sure if I agree with that totally, but it will have an impact no doubt. It remains to be seen how restrictive or open this new API really is. But we will have fun over the coming months, that much is clear.
Oh, and it looks like I was right about the multi bitrate support too. :-)
Flash Player 10 Beta has just dropped on Labs and while the most hyped features center around 3D support and custom filters (amongst other things), there's also a goodiebag full of toys for the audio/video crowd.
How do you fancy some UDP? Peer to peer? Speex audio codec support (finally!)?
Let's dig a little deeper. The new rich media features in Flash Player 10 beta cannot be leveraged until the next version of Flash Media Server ships (this is likely to be a dot release to go hand in hand with the Player 10 release). However you can apply to take part in the FMS prerelease program and test these features before they are publicly released.
The next version of FMS and Player 10 will introduce a new protocol, RTMFP, which stands for Real Time Messaging Flow Protocol. This is a low latency, UDP based protocol that is based on Amicima's MFP protocol. Amicima was aquired by Adobe in 2006.
It sounds likely that FMS will act like a switchboard to connect various Flash clients into an optional peer to peer mode, offering high quality, low latency audio and video communications, and thereby sidestepping any bandwidth flowing through the server itself. Did I mention higher quality and lower latency? Think Skype inside a Flash application. Oh yes, I'll take two of those please.
In addition to the new protocol there's a new audio codec, Speex, to go with it. And what a great choice this codec is since Speex is open-source, as well as patent and royalty-free. It will be a revelation compared to Nellymoser, the only audio encoder that's currently present in the Flash Player.
There are tons of other exciting new features in Player 10 (enhanced text support - yeah), you can check a list here.
Oh and btw, Player 10, codenamed Astro, is really making some noise with its new sound features.
Rock on.
Kevin Towes presented on FMS at NAB recently and towards the end of his talk showed some sneak peaks of possibly upcoming new features in Flash and FMS. The experience he demoed shows an absolutely seamless switching capability between video feeds, or between multiple bitrates inside one file. It is not clear if it is the former or the latter, but in any case it sounds like that this is coming and it will make moving between bitrates of a single clip much easier and smoother. So smooth that you can't even hear a break in the audio.
Unfortunately the direct link to Kevin's talk does not seem to work, but if you go to http://tv.adobe.com and search for 'Kevin Towes' you will find the clip. It's the first result that comes up in the search and the sneak peak is towards the end of the presentation.
While RTMP has not been patented explicitly in this patent, something that sounds even wider reaching has (at least to my limited experience), namely a "Method and system for facilitating communications between an interactive multimedia client and an interactive multimedia communication server".
While I don't know if this particular patent is the one cited in the white paper but it was the only one I could find that appears applicable. It is US patent number 7246356, filed on Jan 29, 2003 (that's not too long after FCS was released and way before FMS2) and issued on Jul 17, 2007.
The inventors list is a who's who of Flash and FMS and includes Slavik Lozben, Pritham Shetty, Jonathan Gay, Stephen Cheng and Bradley Edelman.
I'm not sure what implications (if any) this patent may have for the likes of Red5, Wowza and other RTMP servers but it certainly appears that Adobe wants to protect their intellectual property at least on paper and 'just in case'.

