January 03rd 2003 | Jens C Brynildsen
Back in July, Macromedia started shipping a brand new product, the Flash Communication Server (FlashCom). FlashCom promise realtime collaborations over the web with integrated video, audio, chat, synchronized playback of SWF files and much more. I was invited to participate in a special press briefing just before the launch and made sure I had a webcam available the day Macromedia called me up to start the briefing.
My first peek
The Macromedians hosting the press brief was utterly happy when they heard that I had a webcam as none of the other press attendants had that available. The briefing was held via the FlashCom server and a phone. The video window streamed from Macromedia HQ was as tiny as a postage stamp and the video stuttered along at rates below 1 frame per second. The Macromedia representatives claimed there was no point trying to use the audio features of our cameras, as the lag would be horrible. The brief consisted of a PowerPoint-like SWF being controlled from California but the sync failed a couple times and the reps kept asking me "did it work now?" I wasn't very impressed to say the least.
Plug and Play videoconferencing
I still cannot see why there was a problem getting good video quality during Macromedias press briefing, because FlashCom is truly a great product. Just the other week I was using our review copy of FlashCom with my friends Miko (in the US) and Peter (in Belgium) with full motion video and audio across the Atlantic. The time lag was fully acceptable - much better than Walkie-Talkie and a little slower than using phones.
Earlier, the three of us had tried similar chats using tools such as NetMeeting without very much success. Tools for videoconferencing have always been hard to setup, but not any more. Videoconferencing with FlashCom simply works flawlessly. All you need is a camera, a web browser and a fat connection to the web.
What can you do with FlashCom? Video and audio conferencing is obviously the most exciting feature and thats also the main focus of this review, but there are many other possibilities. A lot of samples ship with the program. These will let you create chat-systems with lists of chatrooms where users can use video/audio/text to communicate, broadcast video and audio, do surveys, guest books with video, grab snapshots and share objects such as common text, objects and more. The samples are complete with all the source code and there are also tutorials that come with the server.
Much of the functionality available in the server/player is not mentioned in these files. For that you will need to dive into the electronic documentation. The documentation is divided in two, the client (the Flash Player) and the server (FlashCom). The Flash player has a special set of ActionScript commands available for use with FlashCom. If you have downloaded the updated documentation for your Flash MX program, you can find these in your actions panel under the heading Communications. Here you'll find commands for both audio- and motion-detection, controlling camera and microphone, recording video to the server and more.
The serverside scripts are built with Server-side ActionScript. This is not the same as ActionScript in the Flash player, but it is similar in many ways. The main difference is that Server-side ActionScript coheres very strictly to the ECMA-262 specification (ECMAScript 1.5) that the both of them are based on. Client-side is more loosely based on the spec, but you'll be able to use most of your knowledge about ActionScript on the server side too. With all the documentation provided, creating your own components and scripts should be within the reach of good coders.
If you are not into programming, you can still build your own applications with FlashCom. Using components, this process is in fact VERY easy, even for non-programmers. Here's a short tutorial on how to do it.
Setting up the server is a breeze. Just double click the installer and follow the prompts. If you're behind a firewall, you may need to set it up to support in/out connections on port 1935 and allow for the RTMP protocol. This port/protocol combination was chosen because it is allowed by default on most firewalls. If you wish to play with FlashCom yourself, there's a free 30-day trial of the personal edition available from Macromedia.
Due to a limitation of only 10 users, we have not been able to fully stress test the server, but our setup is really modest. The server used for our tests is a 333Mhz celeron PC with 192Mb RAM and a slow WiFi LAN connection. Not exactly the ideal setup at all, but even with these limitations the server has performed remarkably well. The best part of the setup was our 2,3Mbit SDSL connection that was more than enough for our 1Mbit license. During video chat sessions, FlashCom seldom spent more than 5-10% of the available CPU, so the program is not a CPU hog.
The server itself runs as a service on the host computer. The administration tools are built in Flash and they are easy to use. The HTML pages with SWF applications allow you to add more lisences, manage users, view server logs, add virtual hosts, monitor running applications and connections and restart/reload applications and the server itself.
There is also a communication app inspector that will let you view details about a certain application running on the server. Here you can find details on streams in use, shared objects, logs and statistics. Documentation is solid overall and the examples are good.
Communication to other servers are done through the new NetConnection object and Macromedia Flash Remoting. Using this, you can call up ColdFusion MX, Macromedia JRun, Microsoft .NET, and J2EE servers and get data back by calling their methods.
Our tests found that there are 3 important factors for successfully building video applications with FlashCom: Camera quality, bandwidth and using the updated component set from Macromedia.
During our testing we have tried webcams from multiple vendors and we have never experienced any serious problems. Any camera or microphone connected has worked when plugged in and the cameras quality has been what imposed the biggest restrictions. For the best video quality, avoid cameras using CMOS image sensors. These are the cheapest, but the cameras that contain a real CCD-chip will give you superior quality and frame rates. The price is only slightly higher for a camera using a good chip, so make sure you don't pick the CMOS ones.
Different cameras offer different software for setup and control. Logitech has given us the best results, while cameras from Creative Labs cause the most grief from what we hear and read from some of our testers.
There are actually no limitations to what quality you can stream. Using the standard components, you can only stream a 120 by 120 pixel video. If you use ActionScript to size the video, you may stream video of any resolution. It comes at a price though. Bigger video equals more bandwidth and more to do for your machines processor so there are physical limits to what will work. You will have to display rather big videos for this to be evident though.
If you want to use FlashCom for video, you'll want all the bandwidth you can get. For a decent quality video image, you'll want to make sure that all participants have at least 256Kb available as both upstream/downstream speeds. In Europe, you should easily get a line offering this or more. The standard DSL line in Norway (Flashmagazine HQ) is 1Mb down/640Kb up at the moment. From what I hear, this is not so common in the US as most DSL providers only give you 125Kb upstream. Modem, ISDN and slower DSL connections will work, but with slightly pixilated results. For the server however, its crucial that you have the full bandwidth your license gives you.
FlashCom licenses give you a maximum amount of simultaneous bandwidth or users. The developer edition is a 1Mbit/10 user license ($499). The Professional license is 10Mbit/500 users ($4500). Whenever any of these values max out, you'll need to buy a 10/500 Capacity Pack ($4000). With these numbers, it's obvious that using FlashCom for video will max out on bandwidth. Using FlashCom for something like a huge text only chat system or for multi-user games, will probably max out based on the number of users.
If you intend to use FlashCom for streaming video only the pricing scheme may seem a little expensive to an average developer, but Macromedia assures us that FlashCom is not more expensive than other streaming servers. In addition, it offers more possibilities than it's competitors.
Before you start your own streaming video-chat, make sure you check with your provider if there is a monthly bandwidth limit on your subscription. Many DSL providers put this in the small print so be aware. Let's make a small calculation. You set up a Developer Edition on a server. There is a 1Mbit limit for this license so you will never stream more data than this. Let's say you put this up publicly available and soon you'll have about 500Kb of data running all day in average. How much will this cost you?
500Kbit/second * 60 sec/minute * 60 min/hour * 24hrs * 30 days = 1296Gbit a month
From computer class we remember that 8 bits = 1 byte, so this gives us 162Gb per month. Additional bandwidth is usually between $5-$10 per Gigabyte for servers, so make sure you track the bandwidth usage carefully or it will cost you.
You may wonder why this review is published now, and not in august when we first got our hands on a review license? The reason is simple: our FlashCom server didn't work properly until now. Did not work? Well the server itself were stable enough, but out test application kept crashing for no apparent reason. It usually happened when a user connected and the app would simply "freeze". If the page were reloaded, the server wouldn't answer though it appeared to be running fine. We figured this was beyond our capabilities and turned to Macromedia for support. After some emails, Macromedia said that they couldn't reproduce our problem and that makes it hard to find the bug...
Some weeks ago, Macromedia released an updated version of the Communication components and on the list of fixes there was a mention of a memory leak in the simpleConnect component. We instantly rebuilt our sample application and it has now been up and running for more than 2 weeks without going down.
This chat is still open for all Flashmagazine users. Just point your browser to http://netron.no/conf/, bring some friends with webcams and chat away. Make sure you download the very latest version of the Flash Player 6 (WIN 18.104.22.168) for the best experience. This latest build contains many enhancements for streaming audio and also fixes other problems.
Macromedia Flash Communication Server is a massive effort. It has never been this easy to create advanced multi-user applications. From what we hear, the server is based on the multi-user server that comes with Director. This is a good thing as it is a proven technology that has been extended even further.
We are impressed with the quality and we cannot wait to see what people will build next. FlashCom can be used for anything from simple text chats to advanced video surveillance applications. I am pretty sure that with time, we will see some amazing uses that Macromedia never thought of when they built it.
The only thing lacking is a Linux version of the product, but we guess that isn't far away...
Visit Macromedia.com to read more about FlashCom
Jens has been working with Flash since version 3 came out. Since then, he's been an active member of the Flash community. He's created more than a hundred Flash games (thus the name of his blog) but he also creates web/standalone applications, does workshops and other consulting. He loves playing with new technology and he is convinced that the moment you stop learning you die (creatively speaking). Jens is also the Editor of this website.
Object-Oriented Programming with ActionScript
Designing Web Usability : The Practice of Simplicity