Lately I’ve been spending a lot of time in the Silverlight video space. Both with writing the video chapter for my Silverlight 4 book as well as at work. Creating a basic video player is straight forward (link 1 | link 2), have a button to play, a way to control the volume, a scrubber to show the position of playback, and of course an area to view the video.
Rich media content display for your line of business apps with Telerik MediaPlayer component for Silverlight. Total Video Player is a Free multimedia Player with popular Video and audio codecs built-in. Total Video Player supports file formats such as AVI, DAT, MPEG, DivX, XviD, WMV, ASF. MP4, FLV MP3 etc.Not need install any Video codecs with this small size's tool to play almost any Media formats.
Once you get beyond the basic requirements, the “basic video player” becomes very involved. A few questions that will need attention are:
Microsoft Silverlight Media Player
- “How do you handler markers?”
- “How is streaming video handled?”
- “What do you do an an error?”
- “What’s the strategy for buffering?”
- “Can the video player support Smooth Streaming content?” (this is a whole different conversation)
- “How does the video player handle Closed captioning?”
- If you have ever watched a video on Channel 9 (if you haven’t check out Silverlight TV) the player being used is this video player. It was developed by Tim Heuer (Microsoft) and Joel Nuebeck.
- Silverlight 1 – Silverlight 1, developed under the codename Windows Presentation Foundation/Everywhere (WPF/E) was released in 2007. It consisted of the core presentation framework, which is responsible for the user interface (UI), interactivity and user input, basic UI controls, graphics and animation, media playback, Digital rights.
And on and on the list goes. At some point (hopefully in the analysis phase) you should ask is it better to build or buy. If you decide to build, give me a call ;), but before you do I would encourage you to take a look at the following open-source (free) Silverlight video player options. If nothing else, these players are great place to start.
I’ll start off with the three best options, then highlight other projects I am less familiar with.
Silverlight Media Framework (SMF)
This is so much more than a video player, it’s an entire framework. Developed by Vertigo in coordination with Microsoft, SMF has been used on the largest, most watched, Silverlight video players to date. Wimbledon, NFL’s Sunday Night Football, PDC live keynote, and the NBC’s Vancouver Olympics video players, to name a few, all use SMF. To say it’s robust would be an understatement.
Other than the standard video player controls, here are additional highlights of SMF:
- Smooth Streaming support – includes the Microsoft.Web.Media.SmoothStreaming.dll
- Great base classes like MergeableCollection, SimpleEventArgs and ObservableObject
- A light weight data project
- Logging
- Blendability – the player is easily skinned
- InStream markers
- Bitrate – the ability to show bitrate
For a more detailed list of features, and the code, check out SMF’s site.
Silverlight Video Player
If you have ever watched a video on Channel 9 (if you haven’t check out Silverlight TV) the player being used is this video player. It was developed by Tim Heuer (Microsoft) and Joel Nuebeck (Silverlight MVP). Although SVP does not the feature set the SMF player has, this is still a solid and proven video player. It’s is probably the best option for a standard, light weight, feature rich video player.
Silverlight HyperVideo player (HVP)
Microsoft Silverlight Player
A new video player to the scene is the Silverlight Hyper-Video Player (HVP). This offering is from Jesse Liberty (Microsoft) and the Community. Targeting Silverlight 4, HVP takes advantage of the MEF framework and is rooted in best development practices. Although the project is young, there is a lot of traction and Jesse is doing an amazing job of documenting each step. Keep on eye on HVP as this maybe the most scalable offering.
Others
The above three video players I have personally used, dug through the code, and/or evaluated. The following projects I am not as familiar with, but could be possible options for your scenario:
Sharepoint video player - http://svp.codeplex.com/
Silverlight Media Player http://silverlight30.codeplex.com/
xLite player - http://xliteplayer.codeplex.com/