annotate DOCS/formats.html @ 3061:6d8116bbf3b2

-rdynamic is only needed on bsd's (well... it was the case in C1) neither linux nor qnx need it and it doesn't help for static compilation too...
author pl
date Thu, 22 Nov 2001 01:56:10 +0000
parents 7b85ba8c9be5
children ef38487113b1
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
3027
7b85ba8c9be5 mostly fixes, some updates
gabucino
parents: 2865
diff changeset
116 most AVI encoders/multiplexers create bad files if using VBR audio. Only 2
2865
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
3027
7b85ba8c9be5 mostly fixes, some updates
gabucino
parents: 2865
diff changeset
135 for MPEG4, their .MOV files come with .MPG or .MP4 extension (interesting
7b85ba8c9be5 mostly fixes, some updates
gabucino
parents: 2865
diff changeset
136 that in these files the video stream is a real .MPG file. With the
7b85ba8c9be5 mostly fixes, some updates
gabucino
parents: 2865
diff changeset
137 <CODE>-dumpvideo</CODE> option you can even extract it.).</P>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
138
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
139 <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
140 <B>Sorenson</B> video and QDesign Music audio. These formats are completely
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
141 secret, and only Apple's quicktime player is able to play these files (on
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
142 win/mac only).</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
143
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
144
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
145 <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
146
2865
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
147 <P><B>MPlayer</B> happily demuxes VIVO file formats. The format's big
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
148 disadvantage is that it has no index block, nor fixed packetsize or sync bytes,
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
149 and most files lack even keyframes, so forget seeking!</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
150
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
151 <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
152 video codec is a modified, nonstandard <B>h.263</B> . Audio is the same,
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
153 it may be <B>g.723</B> (standard), or <B>Vivo Siren</B> .</P>
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
154
72c750bbc249 *** empty log message ***
gabucino
parents: 2855
diff changeset
155 <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
156 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
157 instructions.</P>
2745
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
158
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><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
161
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
162 <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
163 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
164 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
165 or whatever.</P>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
166
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
167 </BODY>
62bcea66003e oh my god what have i done...
gabucino
parents:
diff changeset
168 </HTML>