- Embedded Delivery of SWF Files
- Progressively Downloading FLV Video from a Web Server
- Streaming (FLV) Video Content
Streaming (FLV) Video Content
The last delivery option is to stream FLV video content using Flash Communication Server, a server solution optimized for the delivery of streaming real-time media. You can host your own Flash Communication Server, or, you can use a hosted Flash Video Streaming Service (FVSS). Adobe has partnered with several content delivery network (CDN) providers to offer hosted services for delivering on-demand Flash video across high-performance, reliable networks. Built with Flash Communication Server and integrated directly into the delivery, tracking, and reporting infrastructure of the CDN network, FVSS provides the most effective way to deliver Flash video to the largest possible audience without the hassle of setting up and maintaining your own streaming server hardware and network.
As with progressive download, FLV files are kept external to the other Flash content when you use streaming video. Use the FLV Playback component or ActionScript commands to feed the external FLV file into a Flash movie and play it back during runtime. The ActionScript code needed for streaming video is almost identical to that for progressive download (refer to Figure 2).
With both delivery options, you can also use the FLV playback components to provide video playback controls (see Figure 3).
Figure 3 An FLV placeholder representing a linked video clip with the FLV playback component below for playing, stopping, rewinding, fast forwarding, seeking, and controlling the volume of the clip.
However, this is where the similarities between progressive download and streaming delivery methods end. With streaming video, each client has a persistent connection to the streaming server. After those bits are consumed by the viewer, they are immediately discarded.
This tight connection between the server and client, and the server’s capability to precisely control and deliver any portion of the stream, enables the developer to take advantage of a number of very advanced capabilities, including the following:
- Determining the client bandwidth and serving up the correct bit rate stream.
- Measuring and tracking the quality of service of the stream and switching to a lower (or higher) bit rate stream if needed—for example, if network congestion increases.
- Automatically generating thumbnails or playing short previews of video clips without having to create separate image or video clips.
- Automatically creating "chapters" (with appropriate thumbnails) that users can use to navigate long clips without having to break up the clip into shorter pieces.
- Switching midstream from one camera angle to another without missing a beat.
- Editing together a full video based on portions of other video clips—for example, playing the first 10 seconds of Clip 1, followed by the content between the 30 and 40 second marks of Clip 2, followed by the last 20 seconds of Clip 3.
- Webcasting live or recorded events in which everyone sees the same thing at the same time.
Progressive download is a dumb way to deliver video; it is basically a simple HTTP download call, providing very little control. Streaming video, on the other hand, is a much smarter way to deliver media because it enables publishers to control every aspect of the video experience.
Pros and Cons of Streaming
In addition to the advanced features outline above, the advantages of streaming Flash video from Flash Communication Server are numerous:
- Fast start: Streaming FLV files is the fastest way to start playing any video on the web.
- Advanced video control: Features such as bandwidth detection, quality-of-service monitoring, automatic thumbnail creation, and server-side playlists can be achieved only with streaming video.
- More efficient use of network resources: Customers who pay for their video hosting or bandwidth by the amount that is transferred benefit from streaming video because only the bits that the client views are transferred.
- Secure media delivery: Flash Communication Server supports SSL encryption of streams, providing the tightest security possible. Also, because the streamed media is not saved to the client’s cache, users cannot access previously viewed media files through their temporary Internet files folder.
- Minimal use of client resources: Streaming reduces memory and disk space because the client does not need to download the entire file.
- Tracking, reporting, and logging capabilities: Streaming enables you to capture valuable statistics about video usage, such as how long the video was viewed; how many times the user played the video; whether the user left the web page before the video completed playing; whether the user navigated backward, forward, or paused the video; and much, much more.
- Full seek and navigation: Viewers can seek to any point in the video and have it start playing immediately. The streaming server immediately delivers the requested video, and the user doesn’t have to wait until the entire video is downloaded before navigating to a particular mark. This makes streaming a great solution for longer-playing videos or applications such as video blogging, in which you might want to jump into the video at a specific point instead of requiring the viewer to watch it from the beginning (see Figure 4).
Figure 4 With streaming delivery, a viewer can use the button to the right of this interface to seek and instantly play back five different locations of the clip. More buttons could be added to seek to any number of desired locations in the clip.
- Rich interactivity: The precise stream control found in streaming video enables developers to create extensive interaction in their videos. For example, streaming video provides the capability to switch camera angles, have one video spawn another video, or switch seamlessly to alternate endings.
- Live video: Streaming provides the ability to deliver live video and audio from any connected webcam or digital video camera.
- Video capture and record: In addition to live streaming, Flash Communication Server gives you the ability to record video either in conjunction with the live stream (for example, archiving an event) or on its own (for example, video messaging).
- Multiuser capabilities: In addition to live one-to-many streaming, Flash Communication Server enables multiuser streaming of audio and video for the creation of video communication applications.
Although streaming video might at first appear as being more difficult than progressive download, both methods are actually pretty similar. They both use the same components and the same ActionScript commands. The key difference is that streaming video helps developers enjoy greater control over the video stream.
The only potential drawback with streaming video is that it requires special server software. Just as a robust data application requires you to install an application server besides your web server, robust media delivery applications require a streaming server in addition to the web server.
Customers who do not want the hassle and expense of buying and maintaining server hardware and Flash Communication Server software can get all the benefits of streaming Flash Video with Flash Video Streaming Service. (For more information, visit this website.)
When to Use Streaming Delivery
Streaming video with Flash Communication Server should be used in any situation in which you want or need to do the following:
- To deliver long files—for example, video clips more than 10 minutes long
- To deliver video to many viewers—for example, to 100 or more simultaneous viewers
- If you need advanced features such as bandwidth detection or quality-of-service monitoring for delivering the best possible experience
- To provide interactivity to your video experiences
- To stream live video
- To capture video
In short, if your website relies heavily on video for delivering your message, you will want to present it in the best possible manner and use Flash Communication Server.
For a detailed comparison of Flash video delivery options, see the handy chart Adobe has compiled here.
For information on where to learn more about Flash video visit my website.