Four Core StreamingTechnologies at UAA
By Jim Weller
August, 2005

Introduction
The purpose of this white paper is to give a rich overview of UAA's
next-gen streaming environment. UAA has services for all four major
streaming suites. This document explains how those services are
arranged at UAA. This paper covers the abstract process of publishing
streaming media. It explores connecting streaming media to the web.
This is not a detailed tutorial or instructional document but rather a
survey of the streaming media market and how it relates to the UAA
community. This document limits its scope to on-demand unicast
streaming; skipping live and multicast streaming.
Streaming Media
"Streaming media is 'just-in-time' delivery of multimedia information.
It is typically applied to compressed multimedia formats delivered over
the Internet." [http://en.wikipedia.org/wiki/Streaming_media
]
There are 4 major streaming suite products right now
- Helix: Real Media is available from Real Networks. Real Networks
is one of the oldest and widely used streaming media product companies.
It's
generally considered the best to distrubute because it is supported on
many operating sytems.
- Windows Media Services is included in Windows Server 2000 and
Windows Server 2003. It's very populare due to it's relationship with
the dominant Windows operating system.
- Quick Time streaming server only comes with Mac OS X Server. The
open source component Darwin Streaming Server is available to the
public and can run on many operating systems. Quick Time is mainly
associated with Apple computers. It made significat in roads in the
market when Apple was one of the first to stream movie trailers in the
late 90's.
- Macromedia Flash Communication Server is available from
Macromedia, the makers of ColdFusion and Flash. It's a newer product
that uses some well defined video standards. The communication server
is much more than a streaming server, and generally requires advanced
Flash programming skills to use.
There are a number of steps in creating a finished streamable product..
Many steps are combined in some software packages. For example hooking
your camera to your computer and windows media encoder can allow you to
combine the first 6 steps. Implicit or explicit, all these steps are
required.
- Planning. You decide who,
what, when, why, and where to film. For example, a meeting with all the
consituents.
- Capturing. You actually
film or record something. For example, filming a lecture to tape.
- Digitizing. You put what
you recorded onto the computer. For example, capturing a video from a
tape.
- Editing. You arrange the
components of your media into a final revision, a golden master. For
example, editing a video in iMovie or Adobe Premiere.
- Rendering. The part where
you export the finished product to a very high quality format; like
MPEG-1 or MPEG-2 (DVD quality). For example, exporting to file in
Premiere.
- Encoding. You convert the
final rendering to a streamable media file. For example, converting and
MPEG to a WMV.
- Publishing. You put the
encoded streamable file on the server. For example, FTP'ing a WMV to a
streaming server.
- Marketing. You distribute
and advertise the availability of the stream.. For example, posting a
link to a web page or mailing list.
Encoders
Creating streaming media requires
conversion software called encoders. Encoders
convert media from live sources (web cams, camcorders, microphones
etc.) and from stored sources (files, tapes, dvds) into files that can
be put on a streaming server and viewed. The encoding and compression
methods employed are called codecs. There are a wealth of
codecs out there. Basically, each company has their own codec and
historical codecs. Software for encoding media is generally freely
available. More advanced software can be purchased. For example, Adobe
premiere can create Quick Times, Reals, and Windows Medias. Media
production and
encoding is a rich subject. Further discussion is available from the
links in the bibliography.
Servers
UAA has servers to host files that
require streaming. There is one
server for each of the 4 major streaming types.
- Real Media - rm.uaa.alaska.edu
- Windows Media - wm.uaa.alaska.edu
- Quick Time - qt.uaa.alaska.edu
- Flash Communication - fc.uaa.alaska.edu
Regardless of which media you choose to
distribute, you'll always publish your media to stream.uaa.alaska.edu. Anybody who
requests it can have a home folder on stream.
Posting something to stream,
either via FTP or CIFS, makes it available to any and all of the
streaming servers here at UAA.
Players
Viewing streaming media requires player
software. Each of the four media types has their own player. The
players are all free. Real Media has players available to download
for almost all operating systems and is the most ubiquitous of the
players. Windows Media comes with Microsoft Windows and
can be downloaded for Windows and Mac. Quicktime comes with Mac OS and
can be
downloaded for Windows. Flash Communcation streams are delivered
through Shockwaves
made in the Flash application. The shockwave flash player and plugin
are also
available for most operating systems.
Protocols
Industry has thought of a number of
different ways to transmit
streaming media. These ways are called protocols and rely on standard
TCP/IP networks. You already know one protocol used for streaming, HTTP
(http://). All 4 servers can generally stream over http. Streaming over
HTTP helps
avoid firewalls because web access is almost always allowed. In
addition, Real, Windows, and QuickTime speak the Real Time Streaming
Protocol (RTSP,rtsp://). Windows and Real can speak the Microsoft Media
Stream protocol (MMS, mms://). Flash Communication server uses the Real
Time Multimedia Protocol (RTMP,rtmp://).
So each server can speak a number of different protocols. How do you
know which protocol to use? The below rules of thumb should be
sufficient more
most applications. Notice Quicktime and Real both prefer RTSP.
- Real Media - rtsp://
- Windows Media - mms://
- Quick Time - rtsp://
- Flash Communication - rtmp://
Media and the Web
Web and streaming are a perfect complement to each other. The web
serves as an interface for retrieving and viewing streams. For small,
movies to an audience with good network connections, it's ok to put a
media file right on the web server and forego the streaming all
together. If you have large media, you'll benefit from streaming's
just-in-time delivery and compression. If you have a diverse
audience, then you'll benefit from streamings multi-rate files which
means that
during encoding the media can be pre-calculated to deliver to a
variety of different audiences using a single file (e.g. one stream for
modem users, one for DSL, and one for LAN)..
There are three different ways that you can make your streams interact
with the web.
- You can embed the player in the web page. Using <OBJECT>
and <EMBED> tags in your HTML the movie will show directly as an
element of your page.
- You can provide a link directly to the media stream.
- You can use a streaming metafile which contains information on
accessing the stream.
Embedded Players
Media content can be embedded in web
pages. The computer must have the
appropriate player software. Plus, the browser must have the
appropriate plugin installed for the type of media being played. The
plugin generally comes with the software and is installed along with
it. The embedded method takes relatively sophisticated HTML to create
and can
sometimes be clunky
in the web page.
Below are links to some simple examples. View the HTML source and look
at
the bibliography references for more details. If you have real
player, shockwave
player, quicktime player, and windows media player; plus, the
plugin for each in your browser, then you can watch all the videos
below inside the browser. Try these links. Can you play all of them?
Directly Linking to Streams
You can also link directly to a media
stream with an anchor tag, just
like a regular web address. Though, results will vary from computer to
computer. Direct links rely on the browser's protocol handler to decide
how to open the stream. Protocol handlers can be ambiguous. Real and
quicktime both register as handlers for the
rtsp:// protocol. Yet, Real won't play a .mov file and quicktime won't
play an .rm file. Try these links and see how your computer handles
them. Did your browser open all the right players?
It's much more reliable to use
streaming metafiles
as described in the next section.
Stream Metafiles
Streaming metafiles are simple files
with magic extensions and
defined formats. They tell a media player how to find a stream to
attach to. Meta-files are small making them easy to transmit via web or
email. Pluse, meta-files allow computers use file-types to
figure out how to open the file (.doc uses word, .asx
uses windows media player, .ram uses real media player, etc.). Using
file-types is more reliable than
using protocol handlers.
Windows primarily uses .asx files which use an XML format and are
simple text
files. Real uses .ram which are very simple text files. Quicktime uses
"reference movies" which require special software to create and are not
text files. Flash Communication metafiles are the SWF that you
created to display the video. Quicktime and flash are generally
more complicated to use metafiles.
Below are samples of metafiles. They have the .txt extension so you can
read them. One is an asx file which is HTML-ish
and has a
reference to a windows media stream. The other is a .ram file which can
be just a single line with a reference to a real stream.
The above two samples are repeated
below with their normal .asx and
.ram file extension. Click
them and see how your browser decides to open them. Then download them
and open them from your computer. If you are really zealous, try
emailing yourself one (they are tiny) and opening it from there.
Stream metafiles are the best way to
distribute stream files over the
web or email. Because you just send a little tiny text file to
reference a large stream object. It's a lot like like using a windows
shortcut. You can read more details about each type in the links
provided in the bibliography.
Conclusion
Streaming is a great way to delivery media over the internet. Streaming
also allows people to view media on demand without complicated
broadcast schedules. It let's you avoid lengthy download waits,
distribute multiple levels of quality, deliver to most major operating
systems, and is relatively inexpensive. Streaming delivery is flexible
and integrates with the web.
References
Files
Bibliography
Wikipedia
Windows Media
Windows
Media Home
Using
the Windows Media Player Control in a Web Page
Microsoft
MSDN: Metafile Playlists
Microsoft
MSDN: Windows Media Metafile Elements Reference
Real Media
Real
Production Guide
Web
Page Embedding > Internet Explorer Changes:
Real
Production Guide: Chap 20: Web Page Embedding
Real
Production Guide: Chapter 21: Presentation Delivery
Quicktime
Quicktime Home
Embedding
quicktime for web delivery
Sample
code to embed a Quicktime movie in a webpage
Reference
Movies
Preparing
media for streaming
QT
Tracks
Hinting
Tracks (OS 9 Pics)
Flash Comm
Macromedia Flash
Communication Server Home
Sample
Flash Player
Macromedia
- Developer Center : Creating Your First Broadcast with Macromedia
Flash Communication Server MX: