Why isn't my FLV Player showing a buffer indicator?
I was recently facing an issue where I found one of our Flash video (flv) isn't shown with a buffer bar, whereas the others do. The difference on this particular video is that it is served by Wowza media server on an RTMP protocol, whereas the others are hosted over HTTP using a custom ASP.Net httphandler that I wrote myself.
After digging a little bit deeper, I found a gem in JW Player forum by Jeroen W himself:
" ... RTMP, which is a protocol that indeed maintains a small videobuffer instead of downloading the video."
"The stuttering of video when having a slow connection is simply a result of how RTMP streaming is set up. With RTMP (FMS, Red5 & Wowza), the server streams video to the client until the buffer (usually a few seconds) is filled. It will never load more data than the length of the buffer. So when you have a small bufferlength and a barely-enough connection, the video will stutter. The bufferlength is 1 second by default in the JW Player and can be changed with the "bufferlength" flashvar.
Services such as Youtube or our own BitsontheRun use HTTP streaming instead of RTMP streaming. The big advantage is indeed that the video IS being loaded ahead, so you can wait for a while until enough video is loaded and then watch it entirely without stuttering. Obviously this is a big advantage of HTTP streaming over RTMP.
The JW Player can do both types of streaming; RTMP with FMS, Wowza and Red5 and HTTP streaming with simple ASP/PHP scripts (such as XMoov PHP) or servers such as Lighttpd/NginX. My personal favourite is HTTP as well, due to this streaming/buffering problem and due to the fact that it is so easy to set up. RTMP on the other end is better protected, which is of course important for specific types of content."