You may have already heard the announcement that the presidential inauguration committee has chosen to use Silverlight to stream the historical event today.
But you may not have heard everything and I wanted to clarify a few things. I have been seeing posts on the internet of people saying that HD is available only on windows or that only windows machines can view the event. This is entirely false. All Silverlight 2 compatible machines can view this event and that includes Windows and intel based Macs. Secondly the team worked very hard last night to get up a version running on Silverlight 1.0 that would allow both Linux and PPC based macs to view the event as well! Miguel de Icaza has all the details on his blog here. Awesome work guys this is great to see!
It’s always neat to find out how the streaming stuff works behind the scenes. Events like the NBC Olympics and even the open source Podcasting Kit for SharePoint have shared details of their streaming. There is also an Expression Encoder SDK you can utilize to do your own via .NET.
The team behind today’s streaming event is sharing some of those juicy technical details. Check it out…
And as I promised earlier, I got the tech details on how the streams are encoded. Note there is manual stream selection in the lower right corner;
There are quite a few encoders to handle the different streams, data rates, and to provide failover backups. All systems are quad-core, and use hardware preprocessing.
- Onsite configuration: Dell Precision workstations with Osprey 230 capture cards
- Offsite configuration: Dell 2950 with Digital Rapids capture cards.
The encoders are running Windows XP and use Windows Media Encoder, with my recommended tweaks and registry key settings applied.
- Video: Window Media Video 9 Advanced Profile (aka VC-1 Advanced Profile)
- Audio: Windows Media Audio 9.2
The audio was originally going to be WMA 10 Pro for improved efficiency, but we fell back to WMA 9.2 in order to have Silverlight 1.0 compatibility. Fortunately the audio feeds are either mono or might as well be, so we can win some efficiency back by encoding in mono.
300 Kbps streams
- Video: 480×360, 29.97 fps, 259 Kbps
- Audio: 44.1 KHz mono, 32 Kbps
500 Kbps streams
- Video: 480×360, 29.97 fps, 442 Kbps
- Audio: 44.1 KHz mono, 48 Kbps “