Tumbled Logic

Apr 12 2009

An abridged glossary of (MPEG) video

Container
A file containing one or more *tracks* of audio, video, or both (or conceivably, something else entirely). .avi, .mov, .mp4, .3gp, .mkv are all containers. Some containers make specific representations about what format of content they can contain (MPEG 4 and 3GPP), others by convention (i.e., .ogg containers generally contain Vorbis audio and Theora video, and not, say, AAC audio and H.264 video).
Program Stream
A container in MPEG-speak. Despite its name, Program Streams are one designed to be stored and retrieved, rather than streamed (although they can be, like any other file).
Transport Stream
A container of sorts. Transport Streams are multiplexes of audio, video and other content which are usually broadcast over-the-air, although they can be streamed over IP networks too.
MPEG 1
A set of standards defining video and audio encoding, file formats and so on. MPEG 1 Layer 3 is what we know as *MP3*. MPEG 1 video isn’t used a whole lot nowadays as it’s largely been superseded by bigger and better things, and it was never particularly flexible.
MPEG 2
MPEG 2 is currently the most widely-used set of MPEG standards. MPEG 2 video wrapped up in Program Streams are the .vob files on a DVD disc. MPEG 2 Transport Streams are the basis of DVB.
MPEG 3
MPEG 3 does not exist.
MPEG 4
Another suite of standards, one built with the aim of being more flexible than MPEG 2. MPEG 4 Part 2 is the original “MPEG 4” video; MPEG 4 Part 3 is “AAC audio”; added much later, MPEG 4 Part 10 is AVC, otherwise known as H.264 video.
DivX, Xvid, et al
A set of video codecs which popularised variants on MPEG 4 Part 3 video, usually in a variety of incompatible ways.
H.264
Also known as H.26L, AVC, MPEG 4 Part 10, and JVT, H.264 is the souped-up version of MPEG 4 video. H.264 is part of both the Blu-Ray and HD-DVD specifications, is the video codec of choice for most HDTV broadcast systems, and is gaining ground in Internet video streaming. H.264 requires a faster processor for decoding as compared to MPEG 4 Part 3 video (for example, a G4 Mac Mini will struggle to decode DVD-resolution H.264 video with an peak bitrate of 1.5Mbit/sec).
DVB-T, DVB-C, DVB-S
A suite of standards for broadcasting MPEG 2 video (along with MP3, AC-3 or AAC audio) across terrestrial, cable, and satellite media respectively.
DVB-T2, DVB-C2, DVB-S2
A revised version of the DVB-T/C/S standards which allow for H.264 video (in either SD or HD resolutions) as well as HE-AAC (*high efficiency*) audio.
RTSP (Real-Time Streaming Protocol)
A simple TCP/IP-based protocol for obtaining information about and controlling media streams. RTSP is *not* used to actually send the media itself.
RTP (Real Time Protocol)
A UDP-based protocol for carrying media streams, which can either be *elementary* streams (i.e., there are separate streams for audio and video) or a Transport Stream containing multiplexed audio and video.
Freeview
DVB-T broadcasting in the UK. The current plan is to (gradually) migrate to DVB-T2 starting from November 2009.
Multicast
A system of sending a media stream to multiple receivers at once without the overheads of sending streams to every receiver individually, nor the inflexibility of sending to every receiver simultaneously.
SDP
An ASCII text format for describing one or more media streams and the transport that will be used for them (e.g., RTP). RTSP servers provide information about the streams they serve to clients as SDP.

Some other odds and ends:

  • QuickTime movies (.mov) and MPEG 4 containers (.mp4, .m4v, .m4a, .m4p, .m4b) are ostensibly the same file format, although they are not the same. MPEG adopted the basic structure of the QuickTime movie file format as its container format, and meanwhile, Apple added support for the MPEG 4 audio and video codecs to QuickTime itself. MPEG 4 is not a proprietary Apple invention, though. Apple uses MPEG 4 a lot because it does the job.

  • When you give your media player (QuickTime, VLC, MPlayer, etc.) an rtsp:// URL, it will fetch the information about the media stream and then (assuming it understands the SDP), it will request that the server starts sending the data to it.

  • Multicast is used for live, rather than on-demand, streams (fairly obviously—who, of all the receivers, would get to control it if it was on-demand?). As such, the server is already streaming the content to whoever wants it before your client “tunes in”. Because of this, you can’t use RTSP, and have to give media players the appropriate information some other way (e.g., by serving an SDP file over HTTP).

  • When you do streaming with VLC, it multiplexes everything into an MPEG 2 transport stream (as used by DVB, coincidentally enough). This means that on the receiving side, there’s only one IP and port to worry about, dispensing with the need for SDP. Commercial players (i.e., QuickTime, Windows Media Player, RealPlayer) don’t support demuxing mpeg2ts streams, as far as I know.


blog comments powered by Disqus
Page 1 of 1