Hosting and Streaminghttp://forums.silverlight.net//15.aspx/1?Hosting+and+StreamingDiscussions about hosting and streaming Silverlight applications Mon, 01 Jan 0001 00:00:00 -050015534http://forums.silverlight.net//p/440/534.aspx/1?Live+StreamsLive Streams <p>Good afternoon,</p> <p>Please could someone tell me what the capabilities are for Silverlight's live streaming capabilities. We currently have a Flash based solution because we chose Flash Media Server over Windows Media for the following reasons.</p> <p>As much as we tinkered with Windows Media, by setting the players buffer to none and setting the encoders buffer to none, we simply could not get the stream to be as real time as we would like. Flash has very real time encoding.</p> <p>We understand WMV is a high end codec and because of this superior quality there is a trade off in encoding time. However Flash's real time streaming uses the Spark codec (very fast encoding) oppose to the On2 VP6 codec (very slow encoding). In this situation real time is traded off for video quality. By setting a buffer of 0 on the client we achieve very real time streams.</p> <p>Unfortunately with Windows Media this is not possible.</p> <p>I would like to hear if this situation is possible in Silverlight. We love the technology however this is a show stopper for us when it comes to real time broadcasting &amp; conferencing solutions.</p> <p>Any feedback would be greatly appreciated.</p> <p>Thanks and take care.</p> 2007-05-01T13:36:45-04:00544http://forums.silverlight.net//p/440/544.aspx/1?Re+Live+StreamsRe: Live Streams <p>Windows Media Server has some technologies that will allow you to reduce the latency on your streams by a lot.</p> <p>Most notably it has a technology called Advanced Fast Start (only available I think on Windows Enterprise Edition). This is sort of a combination of regular Fast Start (note that normal Fast Start adds to the latency by seconds), a databurst to reduce buffering on the client, in combination with a mechanism that makes clients start playing your stream without waiting for it's buffer to fill. You will also need to encode your streams specifically for this.</p> <p>All this together gives you the lowest amount of latency possible, and through your encoding settings you yourself can set the latency/QoS ratio.</p> <p>A few comments to make:</p> <p>* so far in my own tests I have not been able to get Silverlight to use either Fast Start or Advanced Fast Start. For me it behaves like the old mediaplayer where I get 6-8 seconds of buffering no matter how I configure my server or encode my streams.</p> <p>* It is my opinion&nbsp;and experience&nbsp;that you&nbsp;can not reliably use low latency streams on the Internet. This goes for both Flash en Windows Media. Your problem is that if you have viewers all over the world with all sorts of connections, a significant percentage of your users will have serious quality of service issues that translate into&nbsp;periodic buffering. It is also very difficult to scale up streams like these. If I'm doing mission critical streaming that will attract a lot of viewers, I want to use multiple servers that are possibly in different geographical locations. In any technology like this, if I add to my redundancy, I will automatically add to my latency because I've set up my infrastructure in such a way that the stream travels from Encoder to Server to some other Server to the client.</p> <p>So IMO low latency streams&nbsp;are great for demo's and relatively small scale and unimportant webcasts, but I personally would never use them on the Internet or for&nbsp;critical webcasts.</p> 2007-05-01T15:06:22-04:00581http://forums.silverlight.net//p/440/581.aspx/1?Re+Live+StreamsRe: Live Streams <p>Thanks for the reply! </p> <p>I did not know about <strong>Advanced Fast Start. </strong>I hope someone from the Silverlight crew could chime in on if this will be supported, or any other similiar mechanism.</p> <p>That being said, the comment about low latency streams not being viable. I think it depends on the content and situation for your stream. I agree webcasts etc do not fit well in this manner because a webcast is pretty useless if the stream is not clear and concise.</p> <p>On the other hand, there are situations where quality of stream being a trade off for real time is preferred. In my opinion this should be supported and the person putting on the stream should have this choice to make the trade off rather than having no choice.</p> <p>However there are cases where a lower bitrate / frames dropping / audio dropping is acceptable if the network condition is poor to ensure real time rather than the stream getting further delayed over time.</p> <p>Flash Media Server is great in this respect. Not only can I develop the server side code to alter this,&nbsp;you can also code the client side end to be dynamic. There are many articles about how to use ActionScript to enable a dynamic buffer where it enables &quot;fast start&quot; but also then further extends the buffer dynamically if the bandwidth is there to surge ahead and fill a larger buffer.</p> <p>This is great for enabling real time streams but also allows you to ensure broadcast quality if the bandwidth is available by having an extended buffer so if the connection lowers temporarily you have a buffer available.</p> <p>As mentioned since this is all possible programatically the developer can choose their route to take for the streaming solution. Choice is good. I don't like when companies try and assume there is only one use and force a non-flexible technology. This usually ends up making people wanting to do custom uses go another route.</p> <p>Let me give an example for our company.</p> <p>We love .NET technologies, and Windows Media.<br> We don't enjoy developing in Flash &amp; ActionScript.<br> We could implement the same technology with WM Player ActiveX, WM Encoder ActiveX, WMS.</p> <p>However because the actual streaming aspect isn't very customizable on how it behaves like we can do in ActionScript by dynamically altering buffers, connections, bitrates on the fly etc and do the same in the Flash client side, we had to go this route.<br> <br> I am hoping this is different in Silverlight.</p> <p>This is also a far stretch but I hope Silverlight sometime in the future supports in the player encoding/streaming out as well. Flash player this is a GREAT advantage. Nobody has to run a stand alone encoding program to stream their video feed etc. We simply leverage Flash's built in capabilities in the player. Although I don't expect Silverlight to do that anytime soon, it would be a great bonus.</p> <p>This is just a bonus for now though. First and foremost if it can stream low latency along with WMS somehow and allow us to have the flexibility programatically for what is going on behind the scenes this would be great.</p> <p>Wow that was long sorry ;)</p> <p>Thanks and take care.</p> 2007-05-01T18:49:16-04:00590http://forums.silverlight.net//p/440/590.aspx/1?Re+Live+StreamsRe: Live Streams <p>What I think you should do is look at Windows Server 2003 Enterprise,&nbsp;and the Windows Server 2003 R2 SDK.</p> <p>The server&nbsp;has the Advanced Fast Start feature built in, and that's specifically designed for low latency streams. There's several articles about it in the SDK, and actually the built in help file for the Media Server gives you pretty much all the info you need. You can have the same low latency that you can achieve with Flash (you have to be sure to read some follow up stuff about how to encode your media). Not being all that familiar with Flash on the client side of things I don't know anything really about how to make a player that adjusts to different scenarios. The Windows Media player has the functionality built in to work with either the low latency streams, Fast Start streams and slow buffer streams. I'm not sure yet if this is supported currently in Silverlight, from my few hours of experience with 1.1 alpha it isn't.</p> <p>The reason that you want the SDK and the Enterprise edition is cos only 2003 Server Enterprise supports Windows Media Server plugins. These plugins are easy to make and to debug, all in your favorite .NET language, and give you realtime control over all aspects of your server, and even individual clients (referred to as &quot;players&quot; I believe). I do know a little bit about Flash on the server side, and I can tell you that it does not come close to the power of the Windows Media Server on 2003 Enterprise</p> 2007-05-01T19:44:01-04:00607http://forums.silverlight.net//p/440/607.aspx/1?Re+Live+StreamsRe: Live Streams <p>Check out this page in the SDK:</p> <p><a href="http://msdn2.microsoft.com/en-us/library/bb412386.aspx">http://msdn2.microsoft.com/en-us/library/bb412386.aspx</a></p> <blockquote> <h3 class="heading">Streaming</h3> <div class="seeAlsoNoToggleSection" id="sectionSection1"> <p>In addition to progressive downloads, <strong>MediaElement</strong> supports live and on-demand streaming from a Windows Media Server. If the file URI specifies the mms protocol, the <strong>MediaElement</strong> attempts to stream the file first. If the file can't be streamed, it downloads the file progressively. If the file URI specifies another protocol, such as http or https, the <strong>MediaElement</strong> attempts a progressive download first. If that fails, the <strong>MediaElement</strong> attempts to stream the file. </p> <p>Note that live streaming media cannot be paused--calling the <a href="http://msdn2.microsoft.com/en-us/library/bb188289.aspx"> Pause</a> method has no effect.</p> <p>To find out more about the differences between streaming and progressive downloading, see <a href="http://go.microsoft.com/fwlink/?linkid=87337">Key Concepts in Windows Media Technologies</a>.</p> </div> </blockquote> 2007-05-01T20:59:10-04:00617http://forums.silverlight.net//p/440/617.aspx/1?Re+Live+StreamsRe: Live Streams In the current beta, Silverlight doesn't support fast start or advanced fast start. But looking at your description, I don't know if that will help you at all since fast start doesn't change the number of seconds that the video is buffered, it only allows the video to start more quickly. If you want to get closer to real-time streams, we do provide a BufferingTime property on the MediaElement where you could decrease the amount of buffer that we keep. This should allow you to be much closer to real-time but you will be more succeptible to network hickups and congestion issues. 2007-05-01T22:09:57-04:00636http://forums.silverlight.net//p/440/636.aspx/1?Re+Live+StreamsRe: Live Streams <p>With all the focus on video, I bet Fast Start is coming, right? :)</p> 2007-05-02T00:13:17-04:00865http://forums.silverlight.net//p/440/865.aspx/1?Re+Live+StreamsRe: Live Streams <p>Yes, the RTM of Silverlight will have Fast Start in it.</p> 2007-05-02T20:59:05-04:001366http://forums.silverlight.net//p/440/1366.aspx/1?Re+Live+StreamsRe: Live Streams <p>Hi</p> <p>While I can get live streams to work, they are very (VERY!) blocky and unwatchable in Silverlight, but perfect in Windows Media Player.&nbsp; Is there some specific limited profile that must be used for Silverlight?</p> <p>&nbsp;/rich</p> <p>&nbsp;</p> 2007-05-04T21:29:33-04:001370http://forums.silverlight.net//p/440/1370.aspx/1?Re+Live+StreamsRe: Live Streams <p></p> <blockquote><span class="icon-blockquote"></span> <h4>rmavro</h4> While I can get live streams to work, they are very (VERY!) blocky and unwatchable in Silverlight, but perfect in Windows Media Player.&nbsp; Is there some specific limited profile that must be used for Silverlight?</blockquote> &nbsp; <p>That sounds interesting. Can you provide some more details rmavro?<br> What is your current encoding profile, and can you perhaps show some screenshots of what it looks like?<br> I wouldn;t mind looking at the actual stream if possible.<br> Perhaps you're just missing the Windows Media fuzzy filter that attempts to hide encoding artifacts.</p> 2007-05-04T21:35:13-04:001376http://forums.silverlight.net//p/440/1376.aspx/1?Re+Live+StreamsRe: Live Streams <p>You can view the live video at: <a href="http://www.textthefish.com/">www.textthefish.com</a></p> If you want to try&nbsp;to make Silverlight&nbsp;behave with live video, use&nbsp;<font size="2"></font><font size="2"> <p>mms://powerhost.live.powerstream.net/00300000_live2</p> <p>This is WM video reflected from a WMS. I've tried&nbsp;many combos of&nbsp;bit rate, resolution, frame rate, etc. No joy.&nbsp;&nbsp;I'm not talking about 'fuzzy',&nbsp;I'm talking about blocks as big as your fist.&nbsp;</p> <p>Silverlight seems to work well with stored video, but not live as far as I've seen so far...</p> <p>&nbsp;Any ideas would be more than welcome!</p> <p>I also find that multicast does not seem to work (e.g. pointing to a .nsc file).</p> <p></font>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> 2007-05-04T22:05:06-04:001379http://forums.silverlight.net//p/440/1379.aspx/1?Re+Live+StreamsRe: Live Streams <p>Haha that is one funky effect in Silverlight.<br> It looks like it's displaying the keyframes ok but everything in between gets messed up.</p> <p>I think you should create a new thread&nbsp;with some info about&nbsp;your encoder (it is a vBrick appliance?) and your settings. And some screenshots so they can see what's going on. And you say that if you record a bit of this stream on the server, and then play that as an on demand file in Silverlight everything is ok?</p> <p>&nbsp;I do not have this problem myself using Windows Media Encoder and version 9 codecs for both video and audio.</p> <p>And yeh multicast is not supported. There's more streaming related topics in the <a class="" href="http://silverlight.net/forums/20.aspx"><strong><font color="#817d77" size="1">Video and Media</font></strong></a> forum btw.</p> 2007-05-04T22:47:14-04:0048169http://forums.silverlight.net//p/440/48169.aspx/1?Re+Silverlight+Slow+on+Windows+Media+ServerRe: Silverlight Slow on Windows Media Server <p>&gt;&gt;&gt;&gt;* so far in my own tests I have not been able to get Silverlight to use either Fast Start or Advanced Fast Start. For me it behaves like the old mediaplayer where I get 6-8 seconds of buffering no matter how I configure my server or encode my streams.&lt;&lt;&lt;</p> <p>This appears to still be the case. Buffering is painfully slow, both on start and when using slider. With the standard MediaPlayer plugin buffering is almost instant, same with using the slider.</p> <p>Until this issue is resolved we simply cannot justify using Silverlight to deliver viideo.</p> 2008-04-21T19:17:03-04:00158193http://forums.silverlight.net//p/440/158193.aspx/1?Re+Silverlight+Slow+on+Windows+Media+ServerRe: Silverlight Slow on Windows Media Server <p>this is our EXACT same issue as to why we can't roll Silverlight out.&nbsp; We are on Windows 2003 Streaming Server and we use WMP (Windows Media Player)&nbsp;for Windows and QuickTime for Mac.&nbsp; Replacing QuickTime with Silverlight seems to help us on that part, but for Windows, we lose the quickness of the stream if we move to Silverlight.</p> <p>Silverlight demo (slow start): <a href="http://www.watchgamefilm.com/silverlight/default.html"> http://www.watchgamefilm.com/silverlight/default.html</a></p> <p>Our WMP demo (fast player start) ~ click on the demo button: <a href="http://www.watchgamefilm.com/"> http://www.watchgamefilm.com</a></p> <p>We want to move to Silverlight as a complete platform, but the fact that it starts streaming 5-10 seconds slower than WMP (which streams almost instantly) is a stopper for us.&nbsp; Especially when you load a 1 hour game film and you want to seek by jumping 40 minutes ahead.&nbsp; WMP does it instantly, but Silverlight 2 take 5-15 seconds before it starts the stream.</p> 2009-01-09T05:15:18-05:00158220http://forums.silverlight.net//p/440/158220.aspx/1?Re+Silverlight+Slow+on+Windows+Media+ServerRe: Silverlight Slow on Windows Media Server <p>Your Silverlight sample starts near instantly on my system.</p> <p>Remember that in Silverlight, your media stream is always coming in over HTTP on port 80, it's not impossible that you're running a firewall or virusscanning that slows loading these media files.</p> 2009-01-09T06:15:25-05:00158226http://forums.silverlight.net//p/440/158226.aspx/1?Re+Silverlight+Slow+on+Windows+Media+ServerRe: Silverlight Slow on Windows Media Server <p>And when you skip ahead you still see it near instanty playing the stream?&nbsp; We have tested in 5 states on various machines and we see the small 5-10 second delay when users skip around on video.&nbsp; We don't see it anywhere on WMP.</p> <p>We go over port 80 HTTP in WMP as well so there is no difference for us on port/protocol between the two players.&nbsp; We have set WMS&nbsp;to use only HTTP&nbsp; (so no MMS, etc.).</p> 2009-01-09T06:39:46-05:00158319http://forums.silverlight.net//p/440/158319.aspx/1?Re+Re+Silverlight+Slow+on+Windows+Media+ServerRe: Re: Silverlight Slow on Windows Media Server <p>Indeed, jumping around in your stream does have some longer buffering times.</p> <p>Try this URL if you can (this sample is hosted from the Netherlands, so results may vary depending on where you are)</p> <p><a href="http://pulse.companywebcast.nl/playerv1_0/default.aspx?id=1796">http://pulse.companywebcast.nl/playerv1_0/default.aspx?id=1796</a></p> <p>Note that you'll need to use a non-IE browser to get the Silverlight version, IE users default to WMP.</p> <p>The stream comes from Windows Media Server on Windows 2003, it has fast start enabled, not advanced fast start as that is something else entirely. This sample runs in SL 1 and 2 and Moonlight 1 (as long as you grab a more recent build than December's beta). On my test systems, loading and jumping through the&nbsp;stream gives good results.</p> 2009-01-09T10:33:47-05:00