annotate DOCS/formats.html @ 2964:ab8df016b2f1

Qualitative speedup of decoding
author nick
date Sun, 18 Nov 2001 09:45:29 +0000
parents 72c750bbc249
children 7b85ba8c9be5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
1 <HTML>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
2 <BODY BGCOLOR=WHITE>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
3
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
4 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
5
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
6
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
7 <P><B><A NAME=2.1>2.1. Supported formats</A></B></P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
8
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
9 <P><B>MPlayer</B> can read/play from the following devices/formats:<BR>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
10 <UL>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
11 <LI> <A HREF="#2.1.1.1">VCD</A> (Video CD) directly from CD-ROM or from CDRwin's .bin image file
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
12 <LI> <A HREF="#2.1.1.1">DVD</A>, directly from your DVD disk, using libdvdread for decryption
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
13 <LI> <A HREF="#2.1.1.1">MPEG 1/2</A> System Stream (PS/PES/VOB) and Elementary Stream (ES) file
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
14 formats
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
15 <LI> <A HREF="#2.1.1.2">RIFF AVI</A> file format
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
16 <LI> <A HREF="#2.1.1.3">ASF/WMV</A> 1.0 file format
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
17 <LI> <A HREF="#2.1.1.4">QT/MOV</A> file format with (un)compressed headers
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
18 <LI> <A HREF="#2.1.1.5">VIVO</A> format (.viv files)
2761
24797a1d36d6 *** empty log message ***
gabucino
parents: 2745
diff changeset
19 <LI> supports <A HREF="documentation.html#3.3">reading from stdin</A>, or network via HTTP
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
20 </UL></P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
21
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
22 <P>Note: about realmedia (.ra/.rm) support read the FAQ!</P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
23
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
24 <P>It's important to clarify a popular mistake. When people see a file with
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
25 <B>.AVI</B> extension, they instantly declare that isn't an MPEG file.
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
26 That's not true. At least not entirely. If you tell them that such a file
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
27 can contain MPEG1 video, they laugh at you. Feel free to kick their dumbass
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
28 faces, then tell them to RTFM.</P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
29
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
30 <P>You see, a <B>codec</B> isn't equal to a <B>file format</B>.<BR>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
31 Video <B>codecs</B> are: MPEG1, MPEG2, DivX, Indeo5, 3ivx.<BR>
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
32 Video <B>formats</B> are: MPG, AVI, ASF.<BR>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
33 </P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
34
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
35 <P>In theory, you can happily put an OpenDivX video and MP3 audio
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
36 into a <B>.MPG</B> format file. Though most players won't play it, since
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
37 they expect MPEG1 video and MP2 audio (<B>.MPG</B> doesn't have the
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
38 necessary fields to describe its video and audio streams, like <B>.AVI</B>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
39 does). Or put MPEG1 video to an .AVI. For example <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> can
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
40 create these files.</P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
41
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
42 <P>Audio <B>codecs</B> and <B>formats</B> are basically the same terms.</P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
43
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
44
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
45 <P><B><A NAME=2.1.1>2.1.1. Video formats</A></B></P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
46
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
47
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
48 <P><B><A NAME=2.1.1.1>2.1.1.1. MPEG files</A></B></P>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
49
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
50 <P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
51 <LI>MPG : this is the most <B>basic</B> form of MPEG file formats. Contains
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
52 MPEG1 video, and MP2 (MPEG-1 layer 2) audio, or rarely MP1.</LI>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
53 <LI>DAT : this is the very same format as MPG, just different extension. Used
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
54 on <B>Video CD</B>s. Due to the nature VCDs are created and Linux is designed,
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
55 the DAT files can't be played nor copied from VCDs. You have to use the
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
56 <CODE>-vcd</CODE> option to play the VideoCD.</LI>
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
57 <LI>VOB : this is the MPEG file format on <B>DVD</B>s. The same as MPG, plus
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
58 capability to contain subtitles, or non-MPEG (AC3) audio. Contains encoded MPEG2
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
59 video, and usually AC3 audio, but MP2 is allowed too.<BR>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
60 <B>Read the <A HREF="cd-dvd.html#4.2">DVD section</A> !</B></LI>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
61 </P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
62
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
63 <P>In MPEG files, series of frames are grouped together, and are independent
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
64 from the other groups. What this means is you can cut/join an MPEG file with
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
65 standard file-tools (like dd, cut), and it remains completely functional.</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
66
2761
24797a1d36d6 *** empty log message ***
gabucino
parents: 2745
diff changeset
67 <P>One important feature for MPGs is that they have a field to describe
24797a1d36d6 *** empty log message ***
gabucino
parents: 2745
diff changeset
68 the aspect ratio of the video stream within. For example SVCDs have
24797a1d36d6 *** empty log message ***
gabucino
parents: 2745
diff changeset
69 480x480 resolution video, and in the header that field is set to 4:3, so
24797a1d36d6 *** empty log message ***
gabucino
parents: 2745
diff changeset
70 it's played at 640x480. AVI files don't have this field, so one has to
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
71 rescale it during encoding.</P>
2761
24797a1d36d6 *** empty log message ***
gabucino
parents: 2745
diff changeset
72
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
73
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
74 <P><B><A NAME=2.1.1.2>2.1.1.2. AVI files</A></B></P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
75
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
76 <P>Designed by Micro$oft, the <B>AVI (Audio Video Interleaved)</B> is a
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
77 widespread multipurpose format, currently used mostly for DivX and DivX4
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
78 videos. Has many known drawbacks, and inabilities (for example in streaming).
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
79 Has support for one video stream, and 99 audio streams. Can be as big as
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
80 2Gb. There exists an extension for it to be bigger, called <B>OpenDMS</B>.
2761
24797a1d36d6 *** empty log message ***
gabucino
parents: 2745
diff changeset
81 M$ currently strongly discourages its use and propagates ASF/WMV. Not if
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
82 anybody cares.<BR>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
83 <B>NOTE</B> : DV cameras can create two types of AVI format, one is the usual and
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
84 playable, the other is neither.</P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
85
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
86 <P>There are two kinds of AVI files:
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
87 <UL>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
88 <LI><B>Interleaved</B> : audio and video content is interleaved. This is the
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
89 standard usage. Recommended and mostly used. Some tools create interleaved
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
90 AVIs with bad sync. <B>MPlayer</B> detects these as interleaved, and this
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
91 climaxes in loss of A/V sync, probably at seeking. These files should be
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
92 played as non-interleaved (with the <CODE>-ni</CODE> option).</LI>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
93 <LI><B>Non-interleaved</B> : bad. First come the whole video stream, then the whole
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
94 audio stream, thus needs a lot of seeking. It's very bad when playing from
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
95 network or CDROM.</LI>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
96 </UL>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
97 </P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
98
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
99 <P>MPlayer supports 2 kind of timing for AVI files:
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
100 <UL>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
101 <LI><B>bps-based</B> : it is based on bitrate/samplerate of video/audio stream. This
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
102 method is used by most players, including avifile and windows media player.
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
103 Files with broken headers, and files created with VBR audio but not
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
104 VBR-compliant encoder will result in A/V desync with this method (mostly at
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
105 seeking).</LI>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
106 <LI><B>interleaving-based</B> : it doesn't use bitrate value of the header, instead
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
107 it uses the relative position of interleaved audio and video chunks. Makes
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
108 some badly encoded file with VBR audio playable.</LI>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
109 </UL>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
110 </P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
111
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
112 <P>Any audio and video codec is allowed, but note that VBR audio isn't well
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
113 supported by most of the players. The file format makes it possible to use VBR
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
114 audio, but most players expect CBR audio, thus they fail with VBR. VBR is
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
115 unusual, and Microsoft's AVI specs only describe CBR audio. I also note, that
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
116 most AVI encoders/multiplexers create bad files if using VBR audio. only 2
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
117 exception (known by me): NaNDub and <A HREF="encoding.html">MEncoder</A>.</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
118
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
119
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
120 <P><B><A NAME=2.1.1.3>2.1.1.3. ASF/WMV files</A></B></P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
121
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
122 <P>ASF (active streaming format) comes from Microsoft. They developed two
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
123 variants of ASF, v1.0 and v2.0. v1.0 is used by their media tools (windows
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
124 media player and windows media encoder) and is very secret. v2.0 is published
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
125 and patented :). Of course they differ, there is no compatibility at all (it's
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
126 just another legal game). <B>MPlayer</B> supports only v1.0, as nobody has ever seen
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
127 v2.0 files :) . Note, that .ASF files nowdays come with the extension .WMA or
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
128 .WMV.</P>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
129
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
130
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
131 <P><B><A NAME=2.1.1.4>2.1.1.4. QuickTime/MOV files</A></B></P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
132
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
133 <P>These are from Macintosh. Usually have extensions of .QT or .MOV . Note
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
134 that since the MPEG4 Group chose QuickTime as the recommended file format
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
135 for MPEG4, their .MOV files come with .MPG or .MP4 extension.</P>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
136
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
137 <P><B>Codecs</B>: any codecs allowed, both CBR and VBR. Note: most new mov files use
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
138 <B>Sorenson</B> video and QDesign Music audio. These formats are completely
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
139 secret, and only Apple's quicktime player is able to play these files (on
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
140 win/mac only).</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
141
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
142
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
143 <P><B><A NAME=2.1.1.5>2.1.1.5. VIV files</A></B></P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
144
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
145 <P><B>MPlayer</B> happily demuxes VIVO file formats. The format's big
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
146 disadvantage is that it has no index block, nor fixed packetsize or sync bytes,
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
147 and most files lack even keyframes, so forget seeking!</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
148
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
149 <P>VIVO/1.0 files' video codec is standard <B>h.263</B> . The VIVO/2.0 files'
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
150 video codec is a modified, nonstandard <B>h.263</B> . Audio is the same,
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
151 it may be <B>g.723</B> (standard), or <B>Vivo Siren</B> .</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
152
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
153 <P>See the <A HREF=codecs.html#2.2.1.4>VIVO video codec</A>
2855
8bb4e195d7d7 *** empty log message ***
gabucino
parents: 2761
diff changeset
154 and <A HREF=codecs.html#2.2.2.3>VIVO audio codec</A> sections for installation
8bb4e195d7d7 *** empty log message ***
gabucino
parents: 2761
diff changeset
155 instructions.</P>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
156
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
157
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
158 <P><B><A NAME=2.1.2>2.1.2. Audio formats</A></B></P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
159
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
160 <P>Currently <B>MPlayer</B> is still a <B>Movie</B> and not a <B>Media</B>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
161 player, thus the pure audio formats (for example MP3, WAV, audio ASF) are
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
162 unplayable. Use <A HREF="http://www.xmms.org">xmms</A>, <A HREF="http://www.mpg123.de">mpg123</A>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
163 or whatever.</P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
164
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
165 </BODY>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
166 </HTML>