Introducing Video.Show: A Silverlight Reference-quality Sample


imageOne of the favorite things about my job is being able to share really cool new content with you all, and so today is a good day to end the week on! Since we completed the Family.Show WPF reference sample, we’ve been working away in partnership with a great developer team from Vertigo Software on a Silverlight video scenario, and today is the day when we get to open it up to the developer community in the form of a first public beta.

Video.Show is an end-to-end solution that provides a reference-quality sample for user-generated video content sites. Taking advantage of all of our latest technologies: .NET Framework 3.5, ASP.NET AJAX, LINQ, Silverlight, Expression Encoder and imageSilverlight Streaming, Video.Show provides support for uploading, encoding, tagging, viewing and commenting on videos. Since not many people are building video sites like YouTube that have millions of videos, we’ve optimized the experience for sites with tens to thousands of videos.

The version published today is a beta release; we’ve still got a few minor tweaks ahead of us before we’re ready to call this final. Nevertheless, if you’re interested in using Silverlight to build out a video site, it’s a great starting point. The screenshots on the right-hand side of the post give you a quick idea of the capabilities of this application. Here’s a short feature list:

  • imageVideo wall for browsing videos. Hover the mouse over any individual video to see an instant thumbnail preview.
  • Time marker-based comment system. Pause the video at an interesting moment and add your comment, and it will appear as that frame is displayed on playback.
  • Site membership using ASP.NET. Sign in and create a custom profile; favorite, tag and upload videos.
  • First-time experience for a user without Silverlight installed demonstrates best practices for detection and installation.
  • Web services for retrieving video catalogs, tagging and favorites.
  • Background batch processing task that handles the encoding of videos using Expression Encoder and uploads to Silverlight Streaming.

We’ll continue to extend this solution over the next couple of months and eventually merge it into the Software + Services Blueprints initiative that was announced at TechEd Developer in Barcelona last week. But for now, we’d love you to download it and try it on your machine; give us feedback on what you like and don’t like about it so we can improve it for future releases. At this point in time, the solution is available in source code form, but by the time we release we’ll have a live production site in place where you can visit to see the site in a real-world setting. Since it’s licensed under the Microsoft Public License, maybe one of you will have a live site using it even before we do!

Download Video.Show here from CodePlex. Have a great weekend!

Comments (26)

  1. Ryan Keeter says:

    Dr. Sneath,

       The things you guys to with these demos is simply fantastic! I loved to dive into Family.Show, and now I will love diving into this code. I love to see new ideas especially in the realm of social video. Thank you so much Tim!

  2. BenHayat says:

    Hi Tim;

    Looking at the speed and the complexity of the products that are coming out of MSFT, has begun, to create a distance between the developers catching up and MSFT moving ahead. There is nothing wrong with moving ahead and no one is asking MSFT to slow down either. However, the one thing that is missing, is guiding and showing the road maps to developers to follow as fast as MSFT is moving ahead.

    This is the solution to the problem. This initiative to provide "complete" showcase and sample solutions will help tremendously to save time and move along with MSFT. For example,  we need solid information how to develop applications with SL 1.1 that will contain many pages. This is something that everyone is trying to come up with their own home grown strategy how to do it. Hopefully, as part of this S+S initiative, you can give us samples, docs, showcases how to create large applications with SL.

    Overall, this is an excellent direction and I’ll be monitoring this movement very closely.

    Thank you for caring for developers!

    ..Ben

  3. ASP.NET The REST-Like Aspect Of ASP.NET MVC [Via: Haacked ] WPF Routed Event Viewer [Via: Karl Shifflett…

  4. Rod Macdonald says:

    Suggestion: I think it will help the rapid adoption of WPF on XP if the .NET 3.5 download could be incremental, starting with something to match the size & content of Silverlight (for the same functionality). If I have a Windows machine, IE should should detect it and download the appropriate library (Goldlight/Windowlight?). Why download Silverlight here when I can have  something that will run offline as well?! As for development, VS 2008 should have had the capability to recompile for either code base, based on a single solution setting (and couldn’t one control set be superimposed upon another in VS – maybe with just the occasional change to a property setting or two). Can’t understand why the dichotomy is allowed to rule us as it does but I guess it has to be commercial!

  5. Jay Adair says:

    Superb timing :) I’ve spent the last mmonth or so customising a third-party Flash-based product that does something similar. I wanted to experiment with Silverlight on there, so might just change over to this if it works well enough. Thanks Tim!

  6. Mental block says:

    Ζεστό-ζεστό μόλις δημοσιεύθηκε στο Codeplex , ένα ολοκληρωμένο project σε source code για την υλοποίηση

  7. Tim Sneath [via Lamont ] shows off the new Video.Show reference application: Video.Show is an end-to-end

  8. Just released is a sample app from Scott Stanfield (RD in San Francisco) and his company Vertigo . As

  9. 【来源: Saucer 编译自 Tim Sneath 】 如果你在学习Silverlight或者想建造一个录像网站,那么 Tim Sneath推荐的 这个刚刚在CodePlex上发布的项目, Video.Show

  10. Martin Cook says:

    This is exactly what I’m looking for!! Will shave eons off my learning time.  Thanks a lot!

    Martin :)

  11. Video.Show: un esempio di sito per contenuti video generati dall’utente

  12. iFX says:

    Video.Show – How to create a video portal for user-generated content

  13. Jay Adair says:

    Tim, I’ve got it running now. It’s superb! One thing though, we need some documentation :) I’m really interested in finding out how to disable Live use for the delivery. I want to host elsewhere.

    Would be great if there was a way to farm out encoding to either another server with Encoder on, or a farm of them for large sites.

  14. Chris says:

    have to agree the ability to host elsewhere would be beneficial not to mention that farming out to remote encoders.

  15. Jay Adair says:

    Ah, I see why it’s Beta. It got confused over an upload and used the same thumbnail for two videos in a row. Still, this is fabulous. I look forward to seeing it develop.

  16. Gísli Guðnason says:

    Has anyone tried to deploy this code, I get AG_E_NETWORK_ERROR when i try do do it.

  17. Scott Gurvey says:

    Could I get just a little guidence? I’m not bad at reading code as a way to learn the new technologies, but I’m not clear on how one actually does the deployment. I can open the project in VS2008 Beta2, now, how do I deploy it to a test web site? Thanks.

  18. Doug at iBloks says:

    Hi Tim,

    We struggled for a day or so, getting a local Silverlight application to reference SLS media.  Here’s part of what it took:

    function createSilverlight()

    {

    Silverlight.createHostedObjectEx({

    source: "Page.xaml",

    parentElement: document.getElementById("SilverlightControlHost"),

    id: "SilverlightControl",

    properties: {

    width: "100%",

    height: "100%",

    version: "1.1",

    enableHtmlAccess: "true"

    },

    events: {},

    initParams: "remoteMediaURL=streaming:/XXXXX/d80dcab94fce44b59b1057bba1696cb5/Lake.wmv"

    });  

    }

    The nugget here is the source points to a local Page.xaml but the initParams get munged when you call the http://agappdom.net/h/silverlight.js CreateHostedObjectEx().

    It turns out that the WebApplication.Current.StartupArguments works great in Silverlight 1.1

    IDictionary<string, string> startupArguments = WebApplication.Current.StartupArguments;

               string strText = startupArguments["remoteMediaURL"];

    Go Silverlight!

  19. Jay Adair says:

    Is there a dedicated project page/site for this yet? I’m sure we’d all love to jump in and contribute/query :)

  20. As regards the MS Public License, can the code released under thsi, be used in Commercial applications?

  21. tims says:

    Rupak, but of course! We’re keen for you to use it in whichever way helps your business. Incidentally, there will be a new release out tomorrow, so stay tuned to http://www.codeplex.com/videoshow.

  22. Jay Adair says:

    Where’s the new release? :) I’m experiencing network errors all the time now when trying to view new movies.

    Would love to know how this is all developing, especially the video hosting side. I want to get a beta of our implementation out asap.

  23. Damian says:

    Wicked.  Is this a replacement for the Blueportal kit on Codeplex or something  completely different?  

  24. 【来源: Tim Sneath 】 如果你在学习Silverlight或者想建造一个录像网站,那么 Tim Sneath推荐的 这个刚刚在CodePlex上发布的项目, Video.Show ,是个非常有参考价值的项目

  25. Jon Galloway says:

    Summary I ran into an interesting issue a few months ago with IE8 support on sites which use ASP.NET