Madness Video

All About Video Production

Video Buffering Techniques

Among the most usually ignored facets of releasing real-time streaming Flash Video is buffering. And when I say “real-time streaming Flash Video”, I suggest any FLV file that is served from Adobe Flash Media Server, such as an organized web server on, or a Flash Video Streaming Company like Akamai or Spotlight. Any sort of URI beginning with “rtmp:”, “rtmps:”, or “rtmpt:” is considered a real-time streaming Flash Video.

If you’re deploying Flash Video from a web server using HTTP, then the adhering to conversation concerning buffering does not apply. The “buffer” of a dynamic download Flash Video is the amount of the documents that has actually downloaded and cached to the browser.

So, when you’ve decided to make use of real-time streaming (RTMP) in your Flash Video implementation situation, you have to consider the bitrate (or information price) of the Flash Video clip, or FLV, content you will serve to your viewers. An FLV data can be encoded with only one bitrate– there’s no such beast as a “multibitrate” (or MBR) Flash Video file, as there is with Windows Media or various other popular streaming web video styles. You can develop multiple variations of a Flash Video, encoding as many bitrates as you want to provide to your viewers, and use ActionScript to choose the ideal FLV data to offer to the end-user. Yet, that’s an additional topic totally– allow’s obtain back to buffering.

Buffering real-time streaming video clip is a little uncomfortable with the Flash Gamer. Let’s determine just what a buffer is. The buffer for a Flash Video clip is just the quantity of video clip content, in secs, that has actually briefly cached to the customer’s computer from the Flash Media Web server. You could establish the buffer time to any value you want, with the NetStream. setBufferTime() approach in ActionScript 2.0 (AS2) or the NetStream. bufferTime property in ActionScript 3.0 (AS3). If you enjoy using the FLVPlayback component (either AS2 or AS3), you could use the FLVPlayback. bufferTime property to also manage the buffer time of a real-time streaming Flash Video.

Now allow me be clear: the buffer time is the amount of video clip material in seconds to cache on the individual’s computer or gadget prior to playback of the video clip can begin. The buffer time is not necessarily just how long the customer will certainly need to wait till playback beginnings. For instance, if you have a 500Kbps video clip stream and you set the buffer time of the stream to 3 secs, then 1500 kilobits (equivalent to 187,500 bytes or 183 KB) of the FLV data has to download and briefly cache just before the video clip can begin to play. If you have a 1500Kbps connection rate to the Flash Media Web server, then you need to await just one 2nd just before the video clip starts playback, since that’s the quantity of time it would certainly take to buffer 3 secs of 500 Kbps video. Nonetheless, if you have a 100Kbps connection to the Flash Media Web server, you would certainly need to stand by 15 seconds for the very first three seconds of the Flash Video to buffer.

Since you comprehend exactly how the buffer system deals with respect to time, allow’s take a look at why the Flash Player handles the buffer with playback states. When you first established the bufferTime property (or call the NetStream. setBufferTime() approach in AS2), the Flash Player stands by to play the stream until that amount of video time has actually buffered into memory. When it has, you can readjust the buffer time to a brand-new worth without necessarily disrupting current playback. (Actually, there’s a cool technique called “double buffering” well-documented by Fabio Sonnati on Adobe DevNet, yet again, that’s an additional topic of discussion.) The Flash Player will certainly likewise attempt to buffer more video compared to you have actually asked for with your buffer time, permitted that your connection rate can accommodate it. For instance, if you establish the bufferTime residential property to 10 seconds, the Flash Player might really be try to buffer 20 secs, readjusting the buffer in between 10 and 20 secs as the video clip plays. The bufferTime property, therefore, is simply the minimum quantity of video clip time that need to buffer to the Flash Gamer before playback can start (or return to if the buffer has actually cleared).

Of course, there’s some bad information for buffering in the Flash Gamer: anytime you find or pause the Flash Video, the whole buffer is ditched. If you’ve assumed that you could possibly buffer the entire video for sluggish connection rates, forget it– when the user stops briefly or seeks the video (if those procedures are definitely allowed by your playback controls), then the individual needs to wait throughout once again for the buffer to fill up. This is just a truth of life (or FOL, in geek terms) with the Flash Player. Even if you have actually buffered the material that is seeked to by the individual, the buffer is ditched.