summaryrefslogtreecommitdiffstats
path: root/DOCS/formats.html
blob: 84348d4e5eae8fc35d86c044fd5faa1a89652ada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<HTML>

<HEAD>
<STYLE>
	.text
		{font-family	:	Verdana, Arial, Helvetica, sans-serif;
		font-size	:	14px;}
</STYLE>
</HEAD>

<BODY BGCOLOR=WHITE>

<FONT CLASS="text">

<P><B><A NAME=2.1>2.1. Supported formats</A></B></P>

<P>It is important to clarify a common mistake. When people see a file with a
<B>.AVI</B> 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
<B>can</B> contain MPEG1 video.</P>

<P>You see, a <B>codec</B> is not the same as a <B>file format</B>.<BR>
Examples of video <B>codecs</B> are: MPEG1, MPEG2, DivX, Indeo5, 3ivx.<BR>
Examples of file <B>formats</B> are: MPG, AVI, ASF.<BR>
</P>

<P>In theory, you can put an OpenDivX video and MP3 audio
into an <B>MPG</B> format file. However, most players will not play it, since
they expect MPEG1 video and MP2 audio (unlike <B>AVI</B>, <B>MPG</B> does not have the
necessary fields to describe its video and audio streams).
Or you might put MPEG1 video into an AVI file. <A HREF="http://ffmpeg.sourceforge.net">FFmpeg</A>
and <A HREF="encoding.html">MEncoder</A> can create these files.</P>



<P><B><A NAME=2.1.1>2.1.1. Video formats</A></B></P>


<P><B><A NAME=2.1.1.1>2.1.1.1. MPEG files</A></B></P>

<P>MPEG files come in different guises:</P>

<UL>
<LI>MPG: This is the most <B>basic</B> form of the MPEG file formats. It contains
MPEG1 video, and MP2 (MPEG-1 layer 2) or rarely MP1 audio.</LI>
<LI>DAT: This is the very same format as MPG with a different extension. It is used
on <B>Video CD</B>s. Due to the way VCDs are created and Linux is designed,
the DAT files cannot be played nor copied from VCDs as regular files. You have
to use the <CODE>-vcd</CODE> option to play the Video CD.</LI>
<LI>VOB: This is the MPEG file format on <B>DVD</B>s. It is the same as MPG, plus the
capability to contain subtitles or non-MPEG (AC3) audio. It contains encoded MPEG2
video and usually AC3 audio, but DTS, MP2 and uncompressed LPCM are allowed, too.<BR>
<B>Read the <A HREF="cd-dvd.html#4.2">DVD section</A> !</B></LI>
</UL>

<P>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.</P>

<P>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 <CODE>-aspect</CODE> option.</P>


<P><B><A NAME=2.1.1.2>2.1.1.2. AVI files</A></B></P>

<P>Designed by Micro$oft, <B>AVI (Audio Video Interleaved)</B> 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 and can be as big as
2GB. There exists an extension allowing bigger files called <B>OpenDMS</B>.
M$ currently strongly discourages its use and encourages ASF/WMV. Not that
anybody cares.<BR>

<P>There is a hack for AVI files that enhances them to contain Ogg Vorbis audio
  stream, but makes them incompatible with standard AVI. <B>MPlayer</B>
  supports playing these files, though seeking is currently unimplemented.</P>

<B>NOTE:</B> DV cameras can create two types of AVI formats. One is common and
playable, the other is neither.</P>

<P>There are two kinds of AVI files:</P>
<UL>
  <LI><B>Interleaved:</B> Audio and video content is interleaved. This is the
    standard usage. Recommended and mostly used. Some tools create interleaved
    AVIs with bad sync. <B>MPlayer</B> detects these as interleaved, and this
    climaxes in loss of A/V sync, probably at seeking. These files should be
    played as non-interleaved (with the <CODE>-ni</CODE> option).</LI>
  <LI><B>Non-interleaved:</B> First comes the whole video stream, then the whole
    audio stream. It thus needs a lot of seeking, making playing from network or
    CD-Rom difficult.</LI>
</UL>

<P><B>MPlayer</B> supports two kinds of timings for AVI files:</P>
<UL>
  <LI><B>bps-based</B>: It is based on the bitrate/samplerate of the video/audio stream. This
    method is used by most players, including <A HREF="http://avifile.sourceforge.net">avifile</A>
    and windows media player.
    Files with broken headers, and files created with VBR audio but not
    VBR-compliant encoder will result in A/V desync with this method (mostly at
    seeking).</LI>
  <LI><B>interleaving-based</B>: It does not use the bitrate value of the header, instead
    it uses the relative position of interleaved audio and video chunks, making
    badly encoded files with VBR audio playable.</LI>
</UL>

<P>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 Microsoft's AVI specs only describe CBR audio. I also noticed that
most AVI encoders/multiplexers create bad files when using VBR audio. There are only 
two exceptions (known to me): NaNDub and <A HREF="encoding.html">MEncoder</A>.</P>


<P><B><A NAME=2.1.1.3>2.1.1.3. ASF/WMV files</A></B></P>

<P>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). <B>MPlayer</B> supports only v1.0, as nobody has ever seen
v2.0 files :). Note that ASF files nowadays come with the extension .WMA or
.WMV.</P>


<P><B><A NAME=2.1.1.4>2.1.1.4. QuickTime/MOV files</A></B></P>

<P>These formats were designed by Apple. They usually have a .QT or .MOV extension. Note
that since the MPEG4 group chose QuickTime as the recommended file format
for MPEG4, their MOV files come with a .MPG or .MP4 extension (Interestingly
the video and audio streams in these files are real MPG and AAC files. With the
<CODE>-dumpvideo</CODE> and <CODE>-dumpaudio</CODE> options you can even extract them!).</P>

<P><B>Codecs</B>: Any codec is allowed, both CBR and VBR. Note: most new QuickTime files use
<B>Sorensen</B> video and QDesign Music audio. These formats have not been
disclosed and will probably remain so in the future, making Apple's QuickTime
player the only player able to play these files (on Windows/Mac OS only).</P>


<P><B><A NAME=2.1.1.5>2.1.1.5. VIV files</A></B></P>

<P><B>MPlayer</B> 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!</P>

<P>The video codec of VIVO/1.0 files is standard <B>h.263</B>. The video codec
of VIVO/2.0 files is a modified, nonstandard <B>h.263v2</B>. The audio is the same,
it may be <B>g.723</B> (standard), or <B>Vivo Siren</B>.</P>

<P>See the <A HREF="codecs.html#2.2.1.4">VIVO video codec</A>
and <A HREF="codecs.html#2.2.2.4">VIVO audio codec</A> sections for installation
instructions.</P>


<P><B><A NAME=2.1.1.6>2.1.1.6. FLI files</A></B></P>

<P><B>FLI</B> is a very old file format used by Autodesk Animator, but it is
a common file format for short animations on the net. <B>MPlayer</B> demuxes
and decodes FLI movies and is even able to seek within them (useful when
looping with the <CODE>-loop</CODE> option). FLI files do not have keyframes, so the picture
will be messy for a short time after seeking.</P>


<P><B><A NAME=2.1.1.7>2.1.1.7. RealMedia (RM) files</A></B></P>

<P>Yes, <B>MPlayer</B> can read (demux) RealMedia (.rm) files. Seeking works
(the format supports keyframes). Here are the lists of the supported
<A HREF="codecs.html#2.2.1.8">RealVideo</A>
and <A HREF="codecs.html#2.2.2.5">RealAudio</A> codecs.


<P><B><A NAME=2.1.1.8>2.1.1.8. NuppelVideo files</A></B></P>

<P><A HREF="http://mars.tuwien.ac.at/~roman/nuppelvideo">NuppelVideo</A>
is a TV grabber tool (AFAIK:). <B>MPlayer</B> 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. <B>MPlayer</B> decodes (and also <B>encodes</B> them with MEncoder to
DivX/etc!) them all. Seeking is being implemented.</P>


<P><B><A NAME=2.1.1.9>2.1.1.9. yuv4mpeg files</A></B></P>

<P><A HREF="http://mjpeg.sourceforge.net">yuv4mpeg / yuv4mpeg2</A> is
a file format used by the <A HREF="http://mjpeg.sf.net">mjpegtools programs</A>.
You can grab, produce, filter or encode video in this format using these.
The file format is really a sequence of uncompressed YUV 4:2:0 images.
</P>


<P><B><A NAME=2.1.1.10>2.1.1.10. FILM files</A></B></P>

<P>This format is used on old Sega Saturn CD-Rom games.</P>


<P><B><A NAME=2.1.1.11>2.1.1.11. RoQ files</A></B></P>

<P>RoQ files are multimedia files used in some ID games such as Quake III and
  Return to Castle Wolfenstein.</P>


<P><B><A NAME=2.1.1.12>2.1.1.12. OGG files</A></B></P>

<P>This is a new fileformat from Xiphophorus, developed to contain Vorbis
  audio. You'll need <CODE>libogg</CODE> and <CODE>libvorbis</CODE> installed
  before compiling <CODE>MPlayer</B> to be able to play it.</P>


<P><B><A NAME=2.1.2>2.1.2. Audio formats</A></B></P>

<P><B>MPlayer</B> is a <B>Movie</B> and not a <B>Media</B> player, although
  it can play some audio file formats (they are listed in the sections below).
  This is not a recommended usage of <B>MPlayer</B>, you better use
  <A HREF="http://www.xmms.org">xmms</A>.</P>


<P><B><A NAME=2.1.2.1>2.1.2.1. MP3 files</A></B></P>

<P>You may have problems playing certain MP3 files that <B>MPlayer</B> 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 <CODE>-demuxer</CODE> flag described
in the manpage may help you in these cases.</P>


<P><B><A NAME=2.1.2.2>2.1.2.2. WAV files</A></B></P>


<P><B><A NAME=2.1.2.3>2.1.2.3. OGG files (Vorbis)</A></B></P>

<P>Requires properly installed <CODE>libogg</CODE> and
  <CODE>libvorbis</CODE>.</P>


<P><B><A NAME=2.1.2.4>2.1.2.4. WMA/ASF files</A></B></P>


<P><B><A NAME=2.1.2.5>2.1.2.5. MP4 files</A></B></P>

</BODY>
</HTML>