Netflix Watch Instantly Silverlight 2.0 workaround for Windows XP
I might have a pseudo-workaround for this problem… At least it worked for me.
Like many people, I have been having choppy streaming video using Silverlight on Netflix’s Watch Instantly on my Windows XP computer. The problem appears to be that Silverlight does not buffer ahead enough. The next problem is that Silverlight dynamically determines the play speed (500, 1000, 1500 Kbs) and the accompanying buffer rate (500, 1000, 1500 Kbs) so the user has very little control over it. This is the sequence I noticed every time:
1. Start Netflix player
2. Video is smooth for the first 10 sec or so.
3. Video begins to become choppy (frame dropping) and unwatchable.
And it never recovers.
So SIlverlight comes with a hidden diagnostic menu. On my XP, press Shift-Alt at the same time and click on the video with the left mouse button. A Diagnostic menu shows up under the mouse pointer (Figure 1).
Click on the A/V menu item. What I noticed was this:
1. Start Netflix player.
2. Press Shift-Alt and click on the video with mouse (Figure 1).
3. Bring up A/V menu item. I noticed the Playing video bitrate was 500, and the Buffering video bitrate was 1500 (Figure 2). Sounds good right? Well…
3. After about 10 sec, the play rate started to dynamically increase from 500 to 1000 to 1500. I noticed that the instant the play rate went up to 1000 and then 1500, the video became choppy. I also noticed the buffering bitrate dropped to 1000. Now the play rate was faster than the buffer bitrate! At the bottom of the A/V Stats, the Dropped Frames (/sec) had also increased to 15-20+ (Figure 3).
So the key here is how to decrease the play rate or increase the buffer rate. This worked for me:
1. Press Shift-Alt and click on the video with mouse.
2. Click on Stream Manager and check the Manual Selection box. Then check the 500 bitrate box (Figure 4).
3. Now bring up the A/V menu item again. You will notice that the playrate is still 1500, but the buffering rate is now 500.
4. The video will remain choppy until Silverlight recognizes this major discrepancy. For me, the playing bitrate eventually dropped to 500 to coincide with the buffer rate. This could take a few minutes. What worked really well for me was moving the playbar back to the beginning. When they are both even at 500, the video was no longer choppy and was watchable for the rest of the video. When it works, the Dropped Frames (/sec) never goes above 2.
If this didn’t work, look at the important notes below:
Important note 1: I noticed that clicking on the Manual Selection box and 500 doesn’t always update the rates right away. The A/V Stats still showed play rate at 1500 and buffer rate at 500. I would go to the Stream Manager, and although the Manual box is still checked, the bitrate had reverted back to 1500. Try moving the play bar around… maybe to the beginning of the video. For me, this would instantly switch both rates to 500.
Important note 2: If it still doesn’t work, try clicking again on the 500 box. Get out of the menu. Check the A/V Stats, and the play rate should eventually drop to 1000. When it happens go back to the Stream Manager, and the 500 bitrate box should now be checked and set. When it works, the Current at the top should say 500, and the play rate and buffer rate in A/V Stats should both say 500.
If the playrate is not automatically dropping to 500 after a while, try moving the play bar to the beginning of the video. Or restart your browser and try again.
Important note 3: If both rates say 500, but the video remains choppy and then the play rate goes back up to 1000, it is because the video is so far behind, it it is having a hard time catching up. So what I do is either move the play bar ahead or to the beginning. I usually do that anyways,so I can watch the video from the beginning!
Important note 4: You will have to redo the whole syncing process if you watch another video, so it’s a crude workaround. Also, sometimes I noticed if I watched another video in a sequence (like a sitcom) by clicking on the arrows at the bottom; although both rates were at 500, the dropped frames/sec was still somewhat high (~10). One work around for this is to close and open your browser again. When it works, the Dropped Frames (/sec) should never go above 2 or 3.
This method seems to work for me every time and playing at the 500 bitrate was very watchable. It gets faster too once you get the process down.
The computer I tried this on is a pretty old computer:
Dell Precision Workstation 420 MT, 512RAM, Pentium IIIE, 1000Mhz
Microsoft Windows XP Professional with SP3
Matrox Graphics Millennium G400 MAX AGP
Dell 17″ monitor at 1280×1024
My Internet connection is Fast Ethernet. And it worked with both IE6 and Firefox 3.0.8. It did seem that this method was more reliable for IE than Firefox though.
Let me know if this method worked for you or if it didn’t. If you also have other experiences regarding this method or suggestions, please post a comment so others can learn from it.