Bit Rates And Encoding
There are actually two ways to play remotely located multimedia files. If you're using a PC or other device that is capable of navigating local and networked file systems, you can simply navigate to the folder / directory where the desired file is stored using your media player application. When you open the file, it will then be played using whatever networked file system protocol is used by your operating system. For most popular operating systems, this would be some form of SMB (Server Message Block), run on top of TCP/IP.
The other way to play remote multimedia content is to run a media server that uses a streaming protocol to deliver content from server to player. These servers use protocols such as RTP and RTCP that are built on the UDP protocol.
The conventional wisdom on these two protocols is that TCP/IP is more robust than UDP because TCP incorporates mechanisms to ensure that data arrives in order and error free. But TCP is supposed to be ill-suited for multimedia distribution due to its larger overhead and focus on getting data to where it is going without errors, at the expense of timely delivery.
UDP on the other hand has much less overhead than TCP, so it is better suited for real-time applications like streaming where on-time delivery of data is more important than reliability. It's up to the data receiver to fill in the gaps when data doesn't arrive or gets corrupted in transit.
My first step was to test the "conventional wisdom" by viewing three different video test files using the file play and streaming methods. The files used both different codecs and bit rates, so that I could see if those factors affected their susceptibility to data transmission errors.
- High bit rate: Ripped DVD VOB file, MPEG 2 codec
- Medium bit rate: DivX movie trailer file using DX50 codec, 640x300 resolution and 24 fps frame rate
- Low bit rate: PSP movie promotion feature using avc1 (MPEG 4) codec, 368x208 resolution and 30 fps frame rate
I used the VideoLAN VLC Media player 0.8.5 to both play and stream the files. I chose VLC because it could handle all of the above file types and either open the file directly for playing or receive it streamed from another VLC player acting as a streaming server. Streaming was done using the VLC UDP stream option defaults and no transcoding.
As anyone who has experimented with multimedia codecs knows, file bit rates have a significant effect on playback quality and are also a key factor in determining your success in networked video viewing. But a file's bit rate can be difficult to get a handle on simply because the information isn't often part of the file's metadata or properties. And even when it is included, the single value shown isn't that helpful because bit rate constantly changes.
To see the actual bit rates of a file being played you need a tool that measures the speed of the bits actually flowing through your network adapter. After trying a few, I ended up using Hoo Technologies' Net Meter. It does just about everything you'd want from a bandwidth meter (except I'd really like a button to clear the plot without having to restart the program). It runs on Win 98, ME, NT, 2000 and XP and is free to try for 30 days and $20 to buy.
Figures 4 and 5 show plots of the bit rates of the first four minutes of the VOB test file when played and streamed respectively.
Figure 4 : VOB (MPEG 2) file play bitrate plot
The VOB file maximum and average stream rates were about 20% lower than the file play rates. Peak to average rate ratios for both stream and file play were about 1.6.
Figure 5: VOB (MPEG 2) file stream bitrate plot
Figures 6 and 7 show plots of the bit rates of the entire DivX test file when played and streamed respectively.
Figure 6 : DivX file play bitrate plot
This time, the DivX maximum play rate was about 20% lower than the stream rate, while the average rates were probably within the limits of calculation error. The peak to average rate ratio for file play was 4.3 and 4.8 for streaming, the highest of the three files tested.
Figure 7 : DivX file stream bitrate plot
Finally, Figures 8 and 9 show the results for the PSP/MPEG4 file.
Figure 8: PSP file play bitrate plot
Once again, average file play and stream rates were about equal and the peak stream rate was lower than the play rate by a little more than 10%. Peak to average rate ratios were 2.8 for file play and 2.2 for streaming.
Figure 9: PSP file stream bitrate plot
Since the same content was not used in each case, the ratios and percentages described above can't be used to compare the encoding methods used. They are provided only to show how a single number for bit rate can't begin to capture the network load a multimedia file presents.
I originally also included Quicktime 7 HD files encoded in H.264, but had to give up on using them in the test. The VLC player's H.264 support is still "experimental" (see this chart) and I did, in fact have problems playing various files from Apple's movie trailer site. And using the Quicktime player itself was out, since I couldn't get it to open a stream from the VLC player.