Dynamic Streaming article on streamingmedia.com
generated some follow-up over at Longtail
Video, home of the JW FLV Player
. In an email exchange, JW himself, Jeroen Wijering, explained how the JW was handling stream switching, and that in response to my test results, they'd made some changes for the next release (5.2). You will find excerpts of the ensuing email discussion in the comment section of the article page, appearing shortly. In that discussion, Jereon offers a terrific explanation of how it works, and confirms two of the rules of thumb I deduced in my testing:
- Encode with a fixed keyframe interval, ideally every 2 seconds or so
- Use a bufferlength about 2x the keyframe interval
To quote Jeroen:
Herein lies the tradeoff to be made for dynamic streaming. Higher bufferlengths decrease the likelihood of playback stuttering, but slow down any responses to screensize / bandwidth increases. Hence the rules of thumb for short keyframe intervals and "2x keyframe" bufferlengths.
I've updated the Dynamic Streaming example page
to load a build of the player that contains the fix. My testing shows that it performs beautifully - on par with the 1080p player at switching both up and down, with seamless playback during the switch. This will be part of the next release of JW Player, 5.2, now scheduled for around the end of May.
I haven't had any communication from anyone involved with Flowplayer
. Their dynamic streaming implementation as tested for this article (bandwidth-check plugin 3.1.3
) remains not really useful for during-playback streaming, although it was fine a selecting the correct stream at startup.
But I always thought there oughtta be a simpler way. So I made one. Honestly, I didn’t know if it was possible using the JW Plugin API, and while I’m a pretty good Java/Web programmer, I’m definitely not a Flash/ActionScript ace. So I decided to give it a try as a learning experience. The result is two plugins for the JW FLV Player: SlideSync and SlideScroller. These are free for commercial and non-commercial use.
You can see an example of the SlideSync and SlideScroller plugins in action, or look at documentation of the options and parameters, or go to Longtail Video’s plugin pages for the SlideSync and SlideScroller plugins.