Four Core StreamingTechnologies at UAA

By Jim Weller
August, 2005

streaming company logos

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
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.
  1. Planning. You decide who, what, when, why, and where to film. For example, a meeting with all the consituents.
  2. Capturing. You actually film or record something. For example, filming a lecture to tape.
  3. Digitizing. You put what you recorded onto the computer. For example, capturing a video from a tape.
  4. 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.
  5. 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.
  6. Encoding. You convert the final rendering to a streamable media file. For example, converting and MPEG to a WMV.
  7. Publishing. You put the encoded streamable file on the server. For example, FTP'ing a WMV to a streaming server.
  8. 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.
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.

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.
  1. 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.
  2. You can provide a link directly to the media stream.
  3. 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: