Adobe's Emerging Rich Media Ecosystem, Part 2: Developing Live and Video on Demand Streaming Media Applications
There are two major methods of delivering streaming video and audio content over the Web. The first method uses a standard Web server to deliver the video, audio, and data to a media player. The second method uses a separate streaming media server specialized to the audio/video/data streaming task. Deploying streaming media content with the Web server approach is actually only a small evolutionary step away from the download-and-play model.
Although Web server streaming can be an effective interim solution, a streaming server is more efficient and flexible and provides a better user experience. With the second method, streaming media files begin playing almost immediately, while the information is being sent, without having to wait for the whole file to download. And, viewers are immediately able to jump to any part of the video regardless of the length of the video or whether it has all been downloaded yet.
This article will focus primarily on the use of a separate streaming media server, Flash Media Server 3, which is available in three editions:
- Flash Media Interactive Server: The full-featured edition of the server.
- Flash Media Development Server: A development version of Flash Media Interactive Server. Supports all the same features but limits the number of connections.
- Flash Media Streaming Server: Supports the live-video and video-on-demand (recorded) streaming services only. This server edition does not support server-side scripting or stream recording.
Adobe Flash Media Streaming Server 3, focused on one-way streaming, is a scalable, real-time media server that delivers high quality (up to HD level), on-demand and live video and audio, regardless of the platform. It communicates and streams to Flash Player, Adobe AIR, mobile 'phones with Flash Lite 3, and the new Adobe Media Player consistently across platforms and browsers.
In addition to delivering live and video on demand (vod) to clients, Flash Media Streaming Server 3 offers a client API that lets you develop custom solutions that use these two services. This server should not be confused with Flash Media Interactive Server and Flash Media Development Server, which offer both client APIs and server APIs, and which were the subjects of an earlier article, Part 1 of this series.
Flash Media Streaming Server enables you to create client applications that stream live video and audio to an unlimited number of clients. These streams could be time delimited, like a short event, or always on, like a television or radio station. Other clients could use recorded media—anything from short commercials, movie trailers, and music videos to television programs and full-length movies.
And, Flash Media Server 3 supports playback of a variety of stream formats, including Flash Video (FLV), MPEG-3 (MP3), and MPEG-4 (MP4).
Note: MPEG-4 Part 10 is H.264, which will be discussed in some detail below.
Figure 1: Streaming live or recorded media to clients using RTMP protocol
Live and vod Services
The live service is a publishing point on Flash Media Server. You can use a media encoder to capture, encode, and stream live video to the live service and play the video with a client or with the FLVPlayback component shown in Figure 2. You also can build your own application to capture video and your own client application to play the video. For example, a producer could use Flash Media Encoder to capture and encode live audio and video from a speech and publish it to the server. Users could view the speech in a Flash Player, AIR, or Flash Lite client that subscribes to the stream.
The vod (video on demand) service lets you stream recorded media without building an application or configuring the server. You can use the Flash CS3 and Flash 9 FLVPlayback components as clients. You just need to copy MP4, FLV, and MP3 files into the vod application's media folder to stream the media to clients.
The live and vod services are signed (approved) by Adobe. Flash Media Streaming Server only supports signed services—it cannot run other applications. Flash Media Interactive Server and Flash Media Development Server, in contrast, support these signed services as well as any other applications you create.
Flash Media Streaming Server 3 provides single-server support with no restriction on the amount of bandwidth streamed or number of connected users. However, to provide even more capacity, you will have to upgrade to the more-expensive Flash Media Interactive Server, which features an Origin/Edge architecture with virtually unlimited scaling potential. Part 3 of this series of articles will include a discussion of this architecture.
Figure 2: An FLVPlayback component on a Flash Professional CS3 stage