It is important to clarify a common mistake. When people see a file with a .AVI extension, they immediately conclude that it is not an MPEG file. That is not true. At least not entirely. Contrary to popular belief such a file can contain MPEG1 video.
You see, a codec is not the same as a file format.
Examples of video codecs are: MPEG1, MPEG2, DivX, Indeo5, 3ivx.
Examples of file formats are: MPG, AVI, ASF.
In theory, you can put an OpenDivX video and MP3 audio into an MPG format file. However, most players will not play it, since they expect MPEG1 video and MP2 audio (unlike AVI, MPG does not have the necessary fields to describe its video and audio streams). Or you might put MPEG1 video into an AVI file. FFmpeg and MEncoder can create these files.
MPEG files come in different guises:
vcd://
to play a Video CD.Series of frames form independent groups in MPEG files. This means that you
can cut/join an MPEG file with standard file tools (like dd
,
cut
), and it remains completely functional.
One important feature of MPGs is that they have a field to describe the
aspect ratio of the video stream within. For example SVCDs have 480x480
resolution video, and in the header that field is set to 4:3, so that it is
played at 640x480. AVI files do not have this field, so they have to be
rescaled during encoding or played with the -aspect
option.
Designed by Microsoft, AVI (Audio Video Interleaved) is a widespread multipurpose format currently used mostly for DivX and DivX4 video. It has many known drawbacks and shortcomings (for example in streaming). It supports one video stream and 0 to 99 audio streams. File size is limited to 2GB, but there exists an extension allowing bigger files called OpenDML. Microsoft currently strongly discourages its use and encourages ASF/WMV. Not that anybody cares.
There is a hack that allows AVI files to contain an Ogg Vorbis audio stream, but makes them incompatible with standard AVI. MPlayer supports playing these files. Seeking is also implemented but severely hampered by badly encoded files with confusing headers. Unfortunately the only encoder currently capable of creating these files, NanDub, has this problem.
Note: DV cameras create raw DV streams that DV grabbing utilities convert to two different types of AVI files. The AVI will then contain either separate audio and video streams that MPlayer can play or the raw DV stream for which support is under development.
There are two kinds of AVI files:
-ni
option).MPlayer supports two kinds of timings for AVI files:
Any audio and video codec is allowed, but note that VBR audio is not well supported by most players. The file format makes it possible to use VBR audio, but most players expect CBR audio, thus they fail with VBR. VBR is uncommon and the Microsoft AVI specs only describe CBR audio. Most AVI encoders/multiplexers create bad files when using VBR audio. There are only two known exceptions: NanDub and MEncoder.
ASF (active streaming format) comes from Microsoft. They developed two variants of ASF, v1.0 and v2.0. v1.0 is used by their media tools (Windows Media Player and Windows Media Encoder) and is very secret. v2.0 is published and patented :). Of course they differ, there is no compatibility at all (it is just another legal game). MPlayer supports only v1.0, as nobody has ever seen v2.0 files :). Note that ASF files nowadays come with the extension .WMA or .WMV.
These formats were designed by Apple and can contain any codec, CBR or VBR.
They usually have a .QT or .MOV extension. Ever since the MPEG4 group chose
QuickTime as the recommended file format for MPEG4, their MOV files come with
an
.MPG or .MP4 extension (Interestingly the video and audio streams in these
files are real MPG and AAC files. You can even extract them with the
-dumpvideo
and -dumpaudio
options.).
Note: Most new QuickTime files use Sorenson video and QDesign Music audio. See our Sorenson codec section.
MPlayer happily demuxes VIVO file formats. The biggest disadvantage of the format is that it has no index block, nor a fixed packet size or sync bytes and most files lack even keyframes, so forget seeking!
The video codec of VIVO/1.0 files is standard h.263. The video codec of VIVO/2.0 files is a modified, nonstandard h.263v2. The audio is the same, it may be g.723 (standard), or Vivo Siren.
See the VIVO video codec and VIVO audio codec sections for installation instructions.
FLI is a very old file format used by Autodesk Animator, but it is a
common file format for short animations on the net. MPlayer demuxes
and decodes FLI movies and is even able to seek within them (useful when
looping with the -loop
option). FLI files do not have keyframes,
so the picture will be messy for a short time after seeking.
Yes, MPlayer can read (demux) RealMedia (.rm) files. Seeking works,
but you have to explicitly specify the -forceidx
option
(the format supports keyframes). Here are the lists of the supported
RealVideo
and RealAudio codecs.
NuppelVideo is a TV grabber tool (AFAIK:). MPlayer can read its .NUV files (only NuppelVideo 5.0). Those files can contain uncompressed YV12, YV12+RTJpeg compressed, YV12 RTJpeg+lzo compressed, and YV12+lzo compressed frames. MPlayer decodes them all (and also encodes them with MEncoder to DivX/etc!). Seeking works.
yuv4mpeg / yuv4mpeg2 is a file format used by the mjpegtools programs. You can grab, produce, filter or encode video in this format using these tools. The file format is really a sequence of uncompressed YUV 4:2:0 images.
This format is used on old Sega Saturn CD-Rom games.
RoQ files are multimedia files used in some ID games such as Quake III and Return to Castle Wolfenstein.
This is a new file format from Xiphophorus.
It can contain any video or audio codec, CBR or VBR. You will need to
have libogg
and libvorbis
installed
before compiling MPlayer to be able to play it.
SDP is an IETF standard format for describing video and/or audio RTP streams. (The "LIVE.COM Streaming Media" libraries are required.)
PVA is an MPEG-like format used by DVB TV boards' software (e.g.: MultiDec, WinTV) under Windows.
The PVA specifications can be downloaded from the following address: http://www.technotrend.de/download/av_format_v1.pdf
The GIF format is a common format for web graphics. There are two
versions of the GIF spec, GIF87a and GIF89a. The main difference is that
GIF89a allows for animation. MPlayer supports both formats through use
of libungif or another libgif-compatible library. Non-animated GIFs will
be displayed as single frame videos. (Use the -loop
and
-fixed-vo
options to display these longer.)
MPlayer currently does not support seeking in GIF files. GIF files do not necessarily have a fixed frame size, nor a fixed framerate. Rather, each frame is of independent size and is supposed to be positioned in a certain place on a field of fixed-size. The framerate is controlled by an optional block before each frame that specifies the next frame's delay in centiseconds.
Standard GIF files contain 24-bit RGB frames with at most an 8-bit indexed pallete. These frames are usually LZW-compressed, although some GIF encoders produce uncompressed frames to avoid patent issues with LZW compression.
If your distribution does not come with libungif, download a copy from the libungif homepage. For detailed technical information, have a look at the GIF89a specification.
MPlayer is a Movie and not a Media player, although it can play some audio file formats (they are listed in the sections below). This is not a recommended usage of MPlayer, you better use xmms.
You may have problems playing certain MP3 files that MPlayer will
misdetect as MPEGs and play incorrectly or not at all. This cannot be fixed
without dropping support for certain broken MPEG files and thus will remain
like this for the foreseeable future. The -demuxer
flag
described in the man page may help you in these cases.
Requires properly installed libogg
and
libvorbis
.
MPlayer can use cdparanoia (lib) to play CDDA (Audio CD). The scope of this section does not contain enumerating cdparanoia's features.
See the man page's -cdda
option which can be used to
pass options to cdparanoia.
MPlayer can use XMMS input plugins to play many file formats. There are plugins for SNES game tunes, SID tunes (from Commodore 64), many Amiga formats, .xm, .it, VQF, musepack, Bonk, shorten and many others. You can find them at the XMMS input plugin page.
For this feature you need to have XMMS and compile MPlayer with
./configure --enable-xmms
. If that does not work, you might need
to set the XMMS plugin and library path explicitly by way of the
--with-xmmsplugindir
and --withxmmslibdir
options.