The differences between HTTP downloading and true streaming

April 15th, 2008

Downloading
When a user wishes to view video on your site, there are several possible methods that can allow said user to see the video. The easiest method is the create a hyperlink to the video file. This method is useful if you want the viewer to save the movie to their computer before viewing. This is fine for small files, but the bigger the file size, the longer the wait time and the less likely your viewers will want to wait for the entire movie to download before they can watch it. Delivering video files this way is known as HTTP streaming or HTTP delivery. HTTP means Hyper Text Transfer Protocol, and is the same protocol used to deliver web pages. For this reason it is easy to set up and use on almost any website, without requiring additional software or special hosting plans.

Progressive Downloading
This is a step up from hyperlinking to your video files. It is a temporary solution to the problems mentioned for downloading. The video file is embedded with code that is unique to each type of video, and as soon as enough of the video is downloaded to watch, the video will begin to play. If the user’s connection is fast enough, they can watch the video as it downloads. The disadvantage here is that the viewer cannot skip forward to any part of the video. This solution does not require any special software or streaming server to work.

True Streaming
This is the best way to deliver video to viewers if you want to allow the viewer to instantly skip to any part of the video or if you want to prevent the viewer from downloading the video file to their computer. True streaming works by delivering bits of video through a streaming server, which sends packets of data in real-time, effectively allowing the end user to view the data as it is arriving. This process is not possible with the HTTP protocol. Instead, RTSP is the protocol of choice for streaming media. It stands for real-time streaming protocol, and it is a method of routing video data to the end user. RTSP provides “VCR-style” control functionality such as pause, fast forward, reverse, and absolute positioning, which cannot be achieved with HTTP.

Which method should I use?
If you are serious about your videos, true streaming is the best option for delivering media to a global audience. With instant-access, built in download prevention, VCR style controls, and affordability, there’s never been a better time to start delivering streaming media to your audience. With GravityLab Multimedia, you can have the best of both worlds. We provide methods to access your streaming media via HTTP and RTSP, allowing you to choose which method is best for you. Check out our streaming video hosting plans
to see which plan best fits your needs.

Expression Encoder 2 for Silverlight and Windows Media

March 20th, 2008

From the Microsoft Expression Encoder download site:

“Microsoft® Expression® Encoder, a feature of Expression Media, offers encoding, enhancement, and publishing of rich media experiences to Microsoft Silverlight. “

Features Include:

Better Encoding

VC-1 advanced authoring SDK integration: by adopting the new VC-1 authoring SDK, Expression Encoder 2 is able to author better quality video faster. We’ve exposed a set of presets for tuning the encoder as well as detailed settings with comprehensive tooltips for the advanced compressionist.

New profiles, and video codecs for streaming media: Encoder 2 supports a number of new modes and codecs including Quality VBR, WMA Pro (stereo), WMA Lossless, 24 bit audio and audio/video encoding stream selection.

  • Improved MPEG source support: We now include an MPEG 2 decoder in the product to give a consistent story across platforms. The decoder we ship supports transport streams (so you are able to work with sources that originated from HDV cameras. Seeking performance and accuracy has been greatly improved.

Converting DVD to Streaming Video

December 5th, 2007

Before you read ahead, consider GravityLab Multimedia’s streaming media encoding services. We take the complexity out of creating streaming media for an affordable price.

Often times, companies that wish to stream their media are given video from a production company on a DVD. This is a great multi-purpose archival format, because the disc is high capacity, and therefore can store high-quality video. Until recently, DVD video was difficult to extract and convert into video files. If you’ve ever looked inside the DVD on your computer, you would have noticed all sorts of VOB, IFO, and BUP files. This is a confusing mess of files, and it takes specialized software to convert this data into streaming video.

One way to convert the audio and video on a DVD to WMV format is to capture the content using an analog capture device. You can connect the audio and video analog outputs of a DVD player to a video capture card on your computer, and then use Windows Media Encoder to encode the video to a file. But this requires a video capture card, and is a subject for another time.

If you want to convert digitally, you have a plethora of DVD extraction utilities for both Windows and Mac users.

Windows users:
DVDx, available on SourceForge.net. This program is able to convert DVDs directly to Windows Media Format, as well as AVI, MPEG. and WM9.

Once you have created an AVI or WMV file from the DVD, you can use the free Windows Media Encoder
to prepare the file for web streaming.

To configure Windows Media Encoder 9 Series to encode a file

  1. On the toolbar, click New Session. The New Session Wizard starts.

Bit-rate requirements of common connection speeds

November 2nd, 2007

When streaming media over the web, it is important to take into consideration the speed at which your viewers are connecting to the internet. Listed below are several common connection speeds and the corresponding bit-rate at which your videos will need to be encoded in order to play back smoothly. Bit-rates are listed in Kilobits (1000 bits = 125 bytes)


Bit-rate Connection Speed File Size Per Minute of Video
21 Kbits/sec. 28.8 modem users 160 KB
37 Kbits/sec. 56K modem users 280 KB
80-100 Kbits/sec. ISDN 600-750KB
150-200 Kbits/sec. High Speed ISDN 1.13 MB
250 Kbits/sec. DSL, cable modem, satellite dish 1.88 MB

How to tell if video can be streamed

November 1st, 2007

All files that are to be streamed must be hinted for streaming. This is made possible by the hint track, which is a small piece of data inside a streaming movie file. Our streaming servers recognize the hint track and use it to guide the streaming process. The hint track is never sent to the viewer, it always resides on the server.

Hinting your movies is essential for streaming media hosting, because without a hint track, the viewer will see an error instead of video.

Quicktime Pro provides the ability to check for hint tracks in a video. Simply open the video qith Quicktime Pro, and select Window > Show Movie Properties. If there is a hint track, you will see the words “Hint Track” under the Name column.

If there is no hint track, contact us and we would be glad to help you prepare your media for online delivery.

Multiple bitrate video streaming

October 10th, 2007

In order to provide the best quality video possible to the widest range of viewers, it is necessary to tailor the bit rate of the video to match the download speed of the client’s connection. This is possible to do with Windows Media Server, Real Producer and Quicktime.

The most difficult task of streaming audio and video over a network is maintaining a continuous presentation to the user in a highly changeable environment. Buffering is the biggest problem of streaming digital media. It is caused when the client runs out of data in memory, called the buffer, and must wait for more to arrive. The client will always run out of data if the bit rate of the incoming stream exceeds the current available bandwidth.

Unpredictability of bandwidth is taken for granted on the Internet. For example, just because a user connects to an ISP at 56 Kbps does not mean there is 56 Kbps of bandwidth available to the user at all times. The actual bandwidth at any given point is determined by network conditions and traffic on the Internet, which is constantly fluctuating, causing bandwidth to drop to 18 Kbps one moment, and then increase to 40 Kbps the next. If a user attempts to view video being streamed at 50 Kbps, the presentation suffers considerably when bandwidth is squeezed.

Can videos stream over the http:// protocol?

May 7th, 2007

http: defines a port that normal web servers use to deliver content. Port 80, to be precise. Sometimes that content is .html, sometimes it is .jpg image files, sometimes it is mp3’s or video files. You want to know that your video is being served from a streaming server. At GravityLab, it is.

Your multimedia, when pushed through mms://, rstp:// or http://via the 554 port protocol, is being pushed through Windows Media Services 9, Helix Universal, or Quicktime Streaming Server respectively. What http:// can, considering video MIME types with apache, is port 80. So if you link to video through http: but you specify the 554 port (ie:http://helix.gravlab.com:554/youraccount/yourfile.mov) http: loses all meaning in terms of defining a standard Port, because it is using the Quicktime Streaming Server 554 port.

Hinting a Quicktime movie for real-time streaming

May 7th, 2007

To set up a movie for streaming over the Internet, compress the movie so that its data rate is appropriate for the bandwidth at which your users will connect. You can use the hinted streaming format with QuickTime Streaming Server or Darwin Streaming Server. The hint tracks, which are stored in the movie along with the video, audio, and other tracks, provide QuickTime Streaming Server software with information about the server, the transmission packet size, and the protocol to be used–in short, how to send the movie data over the network.

When you choose hinted streaming, “hint tracks” (information needed to stream the movie) are added to the movie. If the movie is already in the desired format, you can prepare a movie for streaming by opening the movie in QuickTime Player and choosing Export from the File menu, then Movie to Hinted Movie. If you want to change the movie’s format, follow the steps below.

Converting a movie for real-time streaming

  1. Open your movie in QuickTime Player.

Can I upload AVI into my account?

April 27th, 2007

You’ll probably want to convert your AVI file to Windows Media. It’s a much better streaming video than AVI when delivered over the web. Windows Media Encoder is a free utility from Microsoft that you can download here - http://www.microsoft.com/windows/windowsmedia/9series/encoder/default.aspx
However, I don’t see any AVI file in your account. I don’t think you could have uploaded it last night while the account was locked. Remember, since you’re uploading video to our delivery network, it can take quite awhile for your file to finish uploading (it starts uploading when you drag it to the folder, but can take awhile). If you do use your AVI file on myspace, the link would look like this:

mms://media.gravlab.com/your-account-name/filename.avi

or

http://media.gravlab.com/your-account-name/filename.avi

Streaming, Broadcasting, and Progressive Download

April 27th, 2007

Digital video files are usually stored to disk in movie files. These files often contain the sample data used by the movie as well. The Player API includes functions to store a movie, or a movie and all its associated sample data, to a file. By default, the movie data structure is stored at the beginning of the file, followed by any sample data, such as in Quicktime. By default, the sample data is interleaved, so that media samples that are displayed at the same time are stored close together, with the samples needed earliest stored first.

This typical streaming encoded movie file can be delivered by any web server, using common protocols such as HTTP and FTP, just as if it were an HTML file or a JPEG image. It is necessary only to name the file correctly and associate the filename extension with the correct MIME type on the server. (The correct filename extension for QuickTime movies is .mov, and the correct MIME type is 'video/quicktime'.)

When a file is delivered over a network or downloaded over the Internet, the entire file is not available immediately, but a typical QuickTime movie can be played while it downloads. This is called progressive download, or Fast Start. It works because the movie atom is stored at the beginning of the file, so QuickTime knows how to interpret the movie sample data even before it arrives, and because the movie data is intelligently interleaved with respect to display time.

It is also possible to create a movie file with the sample data stored first, followed by the movie data structure. This is not usually desirable, because the entire file must download before QuickTime can interpret the sample data. You can correct this kind of data inversion simply by opening the movie file in QuickTime and saving it as a new, self-contained file. QuickTime stores the movie data structure at the beginning of the file by default.

A QuickTime movie file may contain only a movie data structure, pointing to sample data in other files or URLs. In most cases, this type of movie can also play as the movie data downloads, because, again, the movie data structure allows QuickTime to interpret the incoming data, and because the data source for each track is specified independently, causing the network to perform a kind of interleaving by delivering all of the media independently and simultaneously. Obviously, this kind of interleaving is less reliable than the deliberate interleaving QuickTime does when creating a self-contained movie file, so playback may not always be as smooth.

When the bandwidth of a connection meets or exceeds the data rate of the movie, a well-formed QuickTime movie file can play as it downloads. This kind of progressive download, or Fast Start movie, provides the same user experience as real-time streaming.

If the connection is not fast enough to play the movie in real time, you can either wait until the download completes or play as much of the movie as has downloaded at a given time. QuickTime can even estimate the required download time and begin playback when it calculates that enough data has arrived to play the movie smoothly (because the remaining data is expected to arrive by the time it is needed).

QuickTime movies can also be delivered using real-time protocols such as RTP and RTSP. This requires a streaming server, such as the QuickTime Streaming Server or Darwin Streaming Server. To stream movies in real time, the server requires information about how to packetize each track in the movie. This information is stored in special tracks in a QuickTime movie, known as hint tracks. There are functions in the API for adding hint tracks to existing movies, as well as flags that can be used to tell QuickTime to create hint tracks when saving a movie to disk.

Movies with hint tracks can also be delivered using HTTP or FTP protocols for progressive download, but additional bandwidth is needed to carry the hint tracks, which are used only for streaming. Consequently, it is best to determine how you will deliver a movie before saving it as hinted or nonhinted.

In addition to progressive download and real-time streaming of stored movie files, QuickTime supports broadcasting, the creation of one or more real-time streams from real-time sources, such as cameras or microphones. This involves capturing the incoming data, compressing it to the desired bandwidth, and generating streams of outgoing packets, all in real time. The QuickTime broadcast API is currently available for the Mac OS only; it is not available for Windows or Java.