Server Side Playlists - Wall Clock Feature and Tech Ready

 

I was participating in the Ask the Experts (ATE) session for Tech Ready last week and it just showed me how bad we have been at marketing some of our powerful features. Tech Ready is an internal conference for Microsoft employees where employees in the field are given a preview of the all the technologies coming and they are armored to be able to answer customer questions

Here are two questions I got for Windows Media Services:-

  • When are you guys going to build a web part to manage a Windows Media Server?

This one is easy, we already have a web based management tool called the ASP Admin or Web Admin. This provides all the functionality available through the rich client but using ASP pages for the same. It has the ability to manage a remote server as well.

  • A customer of mine wants to be able to program channels broadcast through a Windows Media Server. They want to be able to control what program plays at 9PM and then what plays at 10 PM and so on.

This one thing continues to baffle me. Why did we not yell out and tell the world about Server Side Play Lists (SSPL). Yes, SSPL enables anyone to do the above and a load of other powerful things. Some of them have been covered in my previous post and a lot more will be covered in my subsequent posts. I will do my bit to tell you all reading this blog on why I am so excited about SSPL.

To answer the above question - SSPL allows you to control what time a particular entry starts playing. This time is the actual server time and not a relative time. I mean if you say 9PM, the content will start playing at 9PM according to the sever system time. We call this feature wall-clock feature. The wallclock value can be used in the begin and end attributes to start and stop media according to a real-time clock.

Here is an example SSPL:

<smil>
   <excl>
      <priorityClass peers="Pause">
         <media id="Prog1" src="Prog1.wmv" mce_src="Prog1.wmv" begin="wallclock( 2005-07-28T15:30-08:00 )"/>
         <media id="News" src="http://WMEncoder02:8070" mce_src="http://WMEncoder02:8070" begin="wallclock( 15:59:50 )" end="wallclock( 16:30:00 )" />
      </priorityClass>
   </excl>
</smil>

This is well documented on MSDN as well. Please refer the online documentation for more details.

Note: A server side playlist cannot have only elements pertaining to future. There should be atleast one element that can be active the moment the publishing point is started. This could be a jpeg (looping), an ad or some other piece of content. There can be wallclock'ed media elements in addition to the non-wallclock'ed content and they can be used with PriorityClass to interrupt(pause, etc.) the playing content and play instead.

17 Comments

  • Vishal,
    Thanks for the tip. This seems to be working fine. However I did notice that when you actaully stop & start the publishing point the files will also start playing.

    For example, let us say I have two files media1.wmv media2.wmv that were scheduled in a SSPL using wallclock.

    If I restart that broadcast publishing point and try to to type in the URL (Ex: mms://mediaserver1/myBroadcast/) media1.wmv immediately starts playing even though the start time & date is different in "wallclock()" setting.

    How do I prevent this autoplay whenever I restart the publishing point. I just want to play these media files only during the time I mentioned in the wallclock() function.

    Thanks,
    Sai

  • Hi Sai,
    The wallclock value is stored in the memory as soon as the broadcast publishing point is started. The value should be respected.
    Would it be possible to share your SSPL with me?
    Regards
    Vishal

  • Vishal,
    Thanks for the reply.

    Here is the SSPL

    --------------











    -----------------------------

    Hmmm...I understand reading from memory/cachce. But for the application I am developing now, this is an important objective from business perspective and I don't see a workaround.

    My requirement is simple. I want to schedule/stream videos to our customers at certain dates & times. Almost for sure my media admins will change SSPL to include new media files/scheduling and will restart the publishing point to read newvalues. However right after they restart if any customer tries to access a video (Let us say which is scheduled for a future date), they will be able to see it streaming. This is what I am trying to prevent. Any ideas?

    -Sai

  • Hi Sai,

    Actually the scenario above will work. However, it will work only if you have another entry in the playlist that can play at that time. Let me try and explain a little more.

    WMS does not allow an empty publishing point to start. This also includes the case where we have a playlist that does not have an active entry (entry that can play on start of publishing point). In that case the content would start playing even though its start time /date are out in future.

    The workaround here is to have another entry which can play infinitely, or sufficiently long enough (e.g., An ad, a jepg or something and loop it). Once you have that, have another entry with wallclock and priority class as mentioned in my post. This should take care of things.

    Is this what you were looking for?

    -Vishal

  • Hi Vishal,

    I am also working on the same kind of application that Sai is working.
    I have created following playlist and it is working for me very well and alo switches between media elements according to wallclock value specified.
















    This might help others in creating SSPL.

    Thanks and Best Regards,
    Milind Dhobe

  • I've been attempting to get the SSPL to work with a live stream.

    It seems that the SSPL want to send the stream to a stand-alone encoder instead of a publishing point.

    Any thoughts of how to integrate the live broadcast point into a wall-clock based SSPL?

    Thanks a million!

  • Hi Fritz

    I did not completely understand your question.

    Here is an example of SSPL and live feed from encoder.











    However, to use the wallclock value with begin attribute there should be another stream which will be playling to fill in the time from start of publishing point to start of broadcast. It could be a jpg too.

    Also, you could mention another pubpoint instead of the encoder URL in SSPL above.

    Hopefully, this should help. In case you are still experiencing problems, please let me know the details.

  • Actually, I found buried a small table in some documentation regarding the URLs of various elements that can be used in SSPL.

    Here's what worked: lpp://pubpointname

    LLP = Local Publishing Point.

    So, for example:

    lpp://live

    This points to the publishing point set up on the local server that the SSPL is coming from called live.

    Very simple works beautifully.

    Regards,

    Fritz

  • Is there a way to toggle archiving on & off as well?

  • Yes, you can

    1. Click on the publishing point you want to work on
    2. Go to properties tab
    3. Go to archiving
    4. You can enable/disable the plug-in

    Hope this helps

  • Hi!

    One major problem with the wallclock is that you have to manually restart the playlist everday at midnight, or it wont work for the following day. If you have a 24/7 program you cant us it?.

    Is there some way to restart the playlist ever day at midnight?

    Thanks!
    Atmapuri

  • Hi!

    I tested Wall Clock feature by also specifying date and time and wallclock stops functioning after about 12h. I have restarted the publishing point after the changes, double checked that I am getting the right playlist etc. This is on W2003 R2.

    Thanks!
    Atmapuri

  • When will Silverlight and Windows Media Center support Server Side Playlists?

  • Silverlight will not support SSPL in 2.0 but probably in the next version. I don't have a certain answer though. I don't know about Media Center. I shall try to find out.

    Did you try out the new Web Playlists in IIS too?

  • The need we have is for a user to be able to add items to a playlist while watching a clip. Not really a big deal; it is something that Windows Media Player has supported for quite a while.

    We want to use Media Center and Silverlight but until this basic functionality is supported, we're out of luck. I just don't understand the omission.

    Maybe this is the wrong place to complain (once again) about this, but in another post, you said "During my chat with several people using Windows Media Services, I realized that very few actually know about Server Side playlists. "

    We (the company I work for) know about Server Side Playlists, we just can't use them because support is *still* lacking in most MS products, especially the ones we want to start using.

  • Hi sirshannon

    Would it be possible to send out a sample wsx or a more detailed scenario. I can take it to the Silverlight team as a customer request and see if they can help here. I really appreciate you trying out SSPL scenarios with WMS.

    We also just released a Web Playlists feature with IIS (http://blogs.iis.net/vsood/archive/2008/02/28/iis-7-media-pack-web-playlists-is-live.aspx). I would love to hear if that helps any of your scenarios. I will be happy to hear your feedback too. It is a server side playlist solution for progressive download and it works with Silverlight :)

  • Is there a way to quickly create a SSPL when you want to program days and days of content - f.x. drag and drop content onto a calendar with time -- and is there a way to generate an RSS electronic program guide (WMS plugin) from WSX files / SSPL?

Comments have been disabled for this content.