A Closer Look at Adobe Flash Media Server 3.5
Towes also noted that, if On2 has a live encoder for VP6-S, FMS 3.5Dynamic Streaming will support it as well, given the fact that FlashPlayer supports both the original VP6 and the newer VP6-S simplifiedencoder designed for low-power computers to easily decode high-definition (HD) content.
"A developer can make decisions as to how aggressively or how passivelythe streaming switch can be made," said Towes, reminding readers thatAdobe's Macromedia heritage is developer-centric in terms of whocontrols the creation of interactivity around traditional content.
The other big feature in FMS 3.5 is DVR functionality for client players.
This feature allows for client-side instant replay, which is similarto the way that a TiVo set-top box can "pause" live television for upto 30 minutes, allowing the viewer to go back and look at content theypreviously saw. In much the same way, though, a "catch up" serviceallows viewers that join a show or meeting late to catch up on theprevious content—or just skip ahead to the point in the live videothat is current.
"Think of it as live streams as video on demand," said Towes.
Both of these opportunities for reviewing or catching up on livestreams raise an interesting third possibility: Given the sporadicnetwork connectivity we have for some devices (think mobile, or evenhighly variable bandwidth to the home), the ability to catch up on astream also provides the opportunity to pick up at the location wherethe stream was lost.
While many viewers might want to resume a live stream directly at thecurrent point of the live stream, others will want the continuity offollowing along with what they missed.
This gets to the heart of how the DVR feature is possible: The livevideo stream is cached. Flash Media Server 3.5 is maintaining a cacheserver-side that can, under the right circumstances, reference theclient-side dynamic buffer on client machines. While it can't accountfor a true loss of connectivity, since Flash streaming clears thebuffer if network connectivity loss occurs, the server can cross-checkthe client player's last-known video frame played (via timecode) tosee where the live content playback ended, and begin filling the localplayer's buffer to pick back up where the live stream left off.
Towes mentioned that this feature also allows the server to treat theorigin server as an edge server, effectively caching content that isgrowing in popularity. This yields a fourth benefit: allowing CDNs tobring on new servers for popular content over the space of a fewminutes, rather than being required to react instantaneously if thelive stream is not being cached.
Does this live streaming DVR functionality come at a price? Yes, interms of a few seconds of delay.
"We have a slight delay called a ‘shadow delay' that is from the pointwhere the live encode arrives at ingest server to time that it hitsthe disk," said Towes. "We use a default, but configurable, buffersize of 256kb at server. So, for example, a 512kb stream wouldrequire a 4 seconds of initial delay before streaming, as the ingestedlive stream moves through RAM, to the disk for caching and then backto RAM for serving."