Monday, January 09, 2006

Windows Media Streaming

I'm having to dive into the Windows Media world for a live event site. Winnercomm's core business is sports television production and they are the largest provider of outside content to ESPN. One of their clients would like to show the preliminary rounds as a pay event. Makes a lot of sense since the gear is already there for the final rounds which are broadcast.

While I've done projects with Flash Communication Server and Quicktime, I haven't paid much attention to the Windows Media side. This project needs to be higher quality than Flash can deliver live and there is some interest in leveraging Microsoft's DRM. Personally I think the DRM needs are overstated but it's not my call.

The live Flash based streaming is really a disappointing situation. The new Flash 8 codec from On2 is high enough quality and it would be great to leverage the other Flash Media Server features but there is no way to use the new codec in a live situation. The older codec is not very good quality on live material and in live mode is really designed for video conferencing. I think Macromedia assumed the main use of flashcomm would be for business apps (like their own Breeze platform) and not for online broadcasts. The biggest problem is that the speed of the video fluctuates and the audio changes pitch as it tries to catch up after the bandwidth chokes up. This makes sense in a videoconference where you are trying to keep a conversation synced up but is awful for an event broadcast. If the event has music it is a disaster.

I've heard that On2 is working on a live solution but it doesn't look like it will be ready in time for us to use it. By the time it comes out we'll probalby be entrenched on Windows Media for this project at least. I'm a big fan of how the Flash Media Server is architected with support for server side coding and the additional push features like Shared Objects so I wish we could have used it.

Monday, January 02, 2006

Flash Forms. Validation and Pre-Population

I've been doing a lot of work lately using flash as a front end to web data. I've become a big fan of Flash Remoting using both Flashorb from Midnight Coders and the open-source AMFPHP. Remoting makes moving data back and forth from the server to the flash movie so much easier than using xml or web services and is quite a bit faster.

Unfortunately, flash is still a lot of manual work when developing the forms themselves even when leveraging form components. I've been trying to find a better way to handle this side of it especially the validation side and pre-filling out the form from the server side. A recent project has a very complicated data model and I want to update the data across a multi-page form and then update it. The remoting side works great. Considering that the backend developers don't know anything about flash, it was a very easy process to get a usable object from them.

I'm really surprised at how much manual wiring up I'm having to do to get the forms to populate from the backend. This is one area where with most modern html frameworks I think it would have been a lot easier to do. When I using Struts (a popular java framework) all this was fairly well worked out and .NET handles it pretty well. (This is one of the few areas I think .NET really handles better than Java). In this case I think the data model is probably too complicated to make this easy no matter what the framework was but I do wish there was a simple way to connect Validation to the Form elements.