HTTP streaming is
an alternative approach to serving RealAudio and RealVideo files on
the Web without the added management requirements and expense of server-side
streaming software. Although this technique is not well-suited for high-volume
sites serving numerous simultaneous streams, many smaller Web sites
can benefit tremendously from this simple and inexpensive approach.
Actually, it's better
than inexpensive, it's free.
That's because it
relies on HTTP (HyperText Transfer Protocol) which is already used by
all Web servers to store and transmit ordinary text and graphics files
on the Web. And from the producer's point of view, there's no added
effort because RealAudio and RealVideo files prepared for use on an
HTTP server are identical to those used with a streaming media server.
There are some important
differences however, between the capabilities of HTTP and specialized
server software such as RealNetworks' RealSystem Server.
For example, you can't
automatically detect the user's modem speed using HTTP. Instead, files
optimized for each of the various connection speeds must be made available
for users to select themselves. Links must say something like "High
Bandwidth" and "Low Bandwidth". Also, the HTTP-based
approach does not allow for live streaming audio or video presentations
because complete files must be stored on the Web server before they
can be accessed. Finally, HTTP does not make efficient use of server
resources, and as a result doesn't perform well under heavy server loads.
But for sites serving
no more than a handful of simultaneous streams at any given time, this
is a great way to add streaming audio and video features to your Web
site without incurring extra costs.
The only requirement
for HTTP streaming is that your host server must recognize the .ra,
.ram, .rm and .rpm mime types, which are standardized file classifications.
Many servers already do. If not, it's a relatively simple process to
configure your host server for these mime types and you can request
that your service provider add this feature for you.
RealMedia
Mime Types:
| audio/x-pn-realaudio |
(files
with .ra, .rm and .ram file extensions)
|
| audio/x-pn-realaudio-plugin |
(files
with the .rpm file extension) |
Because Web servers
are not designed to manage bandwidth or keep multiple clips synchronized,
streaming clips delivered by a Web server are more likely to stall than
clips streamed by RealServer. To ensure that a presentation hosted by
a Web server plays as smoothly as possible, observe the following points.
No
SureStream Clips Encoded for Multiple Bandwidths
A Web server cannot
send just one stream from a SureStream clip encoded for several bandwidths. Instead,
it downloads the entire clip, causing a very high preroll. You must
therefore encode each RealAudio or RealVideo clip for just one bandwidth.
When using RealSystem Producer, select the option for Web server playback and
choose your target audience. To support multiple bandwidths, encode
separate clips for various bandwidths and use SMIL to let RealOne Player
choose which clip to play.
No
Secure RealAudio and RealVideo Clips
When you encode RealAudio
and RealVideo clips with RealSystem Producer, you have an option to prevent
RealOne Player users from recording the streamed clips to their computers.
This feature works only when RealServer streams the clips. When a Web
server delivers the clips, users still cannot record the clips through
RealOne Player, but their Web browsers will cache the clips. Additionally,
any user can click on your Web page hypertext link and perform a "Save
As" function to download a clip from the Web server.
Limited
Ability to Keep Parallel Clips Synchronized
A Web server does not
consider clip timelines when downloading data. Nor does it receive
feedback from RealOne Player about the presentation's progress. Web server
playback therefore makes it harder for RealOne Player to keep clips synchronized.
A presentation that plays large clips in parallel may stall when the
RealOne Player connection has little bandwidth to spare.
RealPix
Presentations Buffer Longer
When delivered by RealServer,
images in a RealPix presentation stream at different times depending
on their place in the RealPix timeline. This lets you structure a RealPix
presentation to keep it flowing smoothly. When delivered by a Web server,
however, all RealPix images begin to download as soon as presentation
playback begins. This causes a higher preroll.
SMIL
File Optional
When delivering a single
clip or a few clips played in sequence, you do not need a SMIL file.
You can simply list the clips in order when writing your Ram file as
described in "Creating a Ram File Manually". However, you can also have
your Ram file specify a SMIL file that lists the clip locations, creates
a layout, times the presentation, and so on.
SMIL
Internal Timing Commands do not Work
Although you can use
SMIL to lay out and time your presentation, you should not use the
clip-begin and clip-end attributes. A Web server cannot begin to download
a clip at a certain point in its timeline. With clip-begin="5min", for
example, RealOne Player must wait until it has received the first five minutes
of clip data before it can play the clip. This creates an unacceptably
long wait.
No
Ad Insertion
The RealSystem ad insertion
feature does not work with Web servers. Only
RealServer can replace <RealAdInsert.../> tags in SMIL files with
URLs to ad clips.
No
RealPlayer Seeking
Because a Web server
cannot jump to a new position in a clip timeline, the RealOne Player position
slider cannot fast-forward the clip. If the user moves the slider forward,
playback pauses as the clip continues to download at its normal rate.
RealOne Player resumes playback once the clip data reaches the requested
timeline position.
No
RTSP URLs
Because Web servers
do not support RTSP, all URLs in presentations hosted by a Web server
should begin with http://. This includes all URLs in a SMIL file or
Ram file.
No
Live Broadcast
Live broadcast is not
possible because Web servers can download only clips stored on disk
Communication like this is not possible through HTTP.