source: multimedia/videoutils/ffmpeg.xml@ 9e5b78b

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 9e5b78b was 9e5b78b, checked in by Andrew Benton <andy@…>, 12 years ago

Updated ffmpeg to 0.8.6

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@9011 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 13.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY ffmpeg-download-http "http://ffmpeg.org/releases/ffmpeg-&ffmpeg-version;.tar.bz2">
8 <!ENTITY ffmpeg-download-ftp " ">
9 <!ENTITY ffmpeg-md5sum "b4ef1fa6506750569fdb64a0f0a646a8">
10 <!ENTITY ffmpeg-size "4.3 MB">
11 <!ENTITY ffmpeg-buildsize "178 MB (built with recommended dependency)">
12 <!ENTITY ffmpeg-time "2.5 SBU">
13]>
14
15<sect1 id="ffmpeg" xreflabel="FFmpeg-&ffmpeg-version;">
16 <?dbhtml filename="ffmpeg.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>FFmpeg-&ffmpeg-version;</title>
24
25 <indexterm zone="ffmpeg">
26 <primary sortas="a-FFmpeg">FFmpeg</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to FFmpeg</title>
31
32 <para><application>FFmpeg</application> is a solution to record, convert and
33 stream audio and video. It is a very fast video and audio converter and it
34 can also acquire from a live audio/video source. Designed to be intuitive,
35 the command-line interface (<command>ffmpeg</command>) tries to figure out
36 all the parameters, when possible. <application>FFmpeg</application> can
37 also convert from any sample rate to any other, and resize video on the fly
38 with a high quality polyphase filter. <application>FFmpeg</application> can
39 use a video4linux compatible video source and any Open Sound System audio
40 source.</para>
41
42 <para>The developers of this package do not make releases very often, so you
43 may wish to use a snapshot instead of this release. If you do that, you
44 must expect the acceptable <command>configure</command> switches, and the
45 dependencies, to change.</para>
46
47 &lfs70_checked;
48
49 <bridgehead renderas="sect3">Package Information</bridgehead>
50 <itemizedlist spacing="compact">
51 <listitem>
52 <para>Download (HTTP): <ulink url="&ffmpeg-download-http;"/></para>
53 </listitem>
54 <listitem>
55 <para>Download (FTP): <ulink url="&ffmpeg-download-ftp;"/></para>
56 </listitem>
57 <listitem>
58 <para>Download MD5 sum: &ffmpeg-md5sum;</para>
59 </listitem>
60 <listitem>
61 <para>Download size: &ffmpeg-size;</para>
62 </listitem>
63 <listitem>
64 <para>Estimated disk space required: &ffmpeg-buildsize;</para>
65 </listitem>
66 <listitem>
67 <para>Estimated build time: &ffmpeg-time;</para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">FFmpeg Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Recommended</bridgehead>
74 <para role="recommended">
75 <ulink url="http://www.tortall.net/projects/yasm/">yasm</ulink>.
76 </para>
77
78 <bridgehead renderas="sect4">Optional</bridgehead>
79 <para role="optional"><xref linkend="faad2"/>, <xref linkend="lame"/>,
80 <xref linkend="libtheora"/>, <xref linkend="libvorbis"/>,
81 <xref linkend="libvpx"/>, <xref linkend="x-window-system"/>,
82 <ulink url="http://www.videolan.org/developers/x264.html">x264</ulink>
83 (x264 needs <ulink url="http://www.tortall.net/projects/yasm/">yasm</ulink>
84 unless you configure it with <literal>--disable-asm</literal>),
85 <xref linkend="xvid"/>,
86 <ulink url="http://www.penguin.cz/~utx/amr">AMR narrowband
87 (floating point)</ulink>,
88 <ulink url="http://www.penguin.cz/~utx/amr">AMR wideband</ulink>,
89 <xref linkend="faac"/>, <xref linkend="freetype2"/>,
90 <ulink url="http://libgsm.sourcearchive.com/">GSM</ulink>,
91 <xref linkend="liba52"/>,
92 <ulink url="http://sourceforge.net/projects/libdc1394">libdc1394</ulink>,
93 <ulink url="http://svn.mplayerhq.hu/nut/src/trunk/">libnut</ulink>
94 (SVN checkout),
95 <ulink url="http://sourceforge.net/projects/librtmp">librtmp</ulink>,
96 <ulink url="http://diracvideo.org/">libschroedinger</ulink>,
97 <ulink url="http://medialibrary.sourceforge.net/">MediaLibrary</ulink>,
98 <ulink url="http://www.openjpeg.org">OpenJPEG</ulink>
99 (<application>ffmpeg</application> includes code for it's own jpeg2000
100 encoder and decoder which is enabled by default), <xref linkend="speex"/>,
101 <!-- <xref linkend="tetex"/>, --> <xref linkend="sdl"/> and
102 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink>
103 (to build HTML documentation).</para>
104
105 <para condition="html" role="usernotes">User Notes:
106 <ulink url="&blfs-wiki;/ffmpeg"/></para>
107
108 </sect2>
109
110 <sect2 role="installation">
111 <title>Installation of FFmpeg</title>
112
113 <para>Install <application>FFmpeg</application> by running the following
114 commands:</para>
115
116<screen><userinput>./configure --prefix=/usr --enable-shared --disable-static --enable-gpl &amp;&amp;
117make</userinput></screen>
118
119 <para>If you have <xref linkend="doxygen"/> installed and wish to create
120 the API documentation (takes about 150 MB of space), issue
121 <command>doxygen</command>.</para>
122
123 <para>This package does not come with a working test suite.</para>
124
125 <!-- make check is currently b0rken -->
126
127 <para>Now, as the <systemitem class="username">root</systemitem>
128 user:</para>
129
130<screen role="root"><userinput>make install &amp;&amp;
131make install-man &amp;&amp;
132mkdir /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
133cp ../doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
134texi2html --version &amp;&gt; /dev/null &amp;&amp;
135cp doc/*.html /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
136
137 <para>If you used <command>doxygen</command> to create the API
138 documentation, install it by issuing the following commands as the
139 <systemitem class="username">root</systemitem> user:</para>
140
141<screen role="root"><userinput>mkdir /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
142cp -v doxy/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
143
144 </sect2>
145
146 <sect2 role="commands">
147 <title>Command Explanations</title>
148
149 <para><option>--enable-shared</option>: This switch is needed to
150 build the shared libraries, otherwise only static libraries are built
151 and installed.</para>
152
153 <para><option>--disable-static</option>: This switch prevents the static
154 libraries from being built.</para>
155
156 <para><option>--enable-gpl</option>: This switch enables the
157 use of GPL code and permits support for postprocessing, swscale and many
158 other features.</para>
159
160 <para><option>--enable-<replaceable>&lt;codec&gt;</replaceable></option>:
161 <application>ffmpeg</application> comes with code to compile decoders for
162 almost every codec you could think of. The only reason to enable a specific
163 codec (and make ffmpeg link to the prerequisite shared library installed on
164 your system) is to make ffmpeg compile an <emphasis>encoder</emphasis> for
165 that codec. Encoding video is a job for a specialist. If that is what you
166 want to do, study the output of <command>configure --help</command>.
167 Remember, the dependencies all install their own encoders that are often
168 better than <application>ffmpeg</application>'s.
169 <application>Ffmpeg</application> is an excellent collection of decoders.
170 If you just want to use ffmpeg to watch video or listen to music there is
171 no benefit from linking it to another library.</para>
172
173 <para><option>--disable-yasm</option>: use this option if you've not
174 installed yasm and you want what configure describes as "a crippled
175 build".</para>
176
177 </sect2>
178
179 <sect2 role="configuration">
180 <title>Configuring FFmpeg</title>
181
182 <sect3 id="ffmpeg-config">
183 <title>Config Files</title>
184
185 <para><filename>/etc/ffserver.conf</filename> and
186 <filename>~/.ffmpeg/ffserver-config</filename></para>
187
188 <indexterm zone="ffmpeg ffmpeg-config">
189 <primary sortas="e-AA.ffmpeg-ffserver-config">~/.ffmpeg/ffserver-config</primary>
190 </indexterm>
191
192 <indexterm zone="ffmpeg ffmpeg-config">
193 <primary sortas="e-etc-ffserver.conf">/etc/ffserver.conf</primary>
194 </indexterm>
195
196 <para>You'll find a sample ffserver configuration file at
197 <filename>doc/ffserver.conf</filename> in the source tree.</para>
198
199 </sect3>
200
201 </sect2>
202
203 <sect2 role="content">
204 <title>Contents</title>
205
206 <segmentedlist>
207 <segtitle>Installed Programs</segtitle>
208 <segtitle>Installed Libraries</segtitle>
209 <segtitle>Installed Directories</segtitle>
210
211 <seglistitem>
212 <seg>ffmpeg, ffplay, ffprobe, and ffserver</seg>
213 <seg>libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so,
214 libavutil.so, libpostproc.so, and libswscale.so</seg>
215 <seg>/usr/include/libavcodec, /usr/include/libavdevice,
216 /usr/include/libavfilter, /usr/include/libavformat,
217 /usr/include/libavutil, /usr/include/postproc, /usr/include/libswscale,
218 /usr/share/ffmpeg, and /usr/share/doc/ffmpeg-&ffmpeg-version;</seg>
219 </seglistitem>
220 </segmentedlist>
221
222 <variablelist>
223 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
224 <?dbfo list-presentation="list"?>
225 <?dbhtml list-presentation="table"?>
226
227 <varlistentry id="ffmpeg-prog">
228 <term><command>ffmpeg</command></term>
229 <listitem>
230 <para>is a command-line tool to convert video files, network streams
231 and input from a TV card to several video formats.</para>
232 <indexterm zone="ffmpeg ffmpeg-prog">
233 <primary sortas="b-ffmpeg">ffmpeg</primary>
234 </indexterm>
235 </listitem>
236 </varlistentry>
237
238 <varlistentry id="ffplay">
239 <term><command>ffplay</command></term>
240 <listitem>
241 <para>is a very simple and portable media player using the
242 <filename>ffmpeg</filename> libraries and the SDL library.</para>
243 <indexterm zone="ffmpeg ffplay">
244 <primary sortas="b-ffplay">ffplay</primary>
245 </indexterm>
246 </listitem>
247 </varlistentry>
248
249 <varlistentry id="ffserver">
250 <term><command>ffserver</command></term>
251 <listitem>
252 <para>is a streaming server for everything that <command>ffmpeg</command>
253 could use as input (files, streams, TV card input, webcam, etc.).</para>
254 <indexterm zone="ffmpeg ffserver">
255 <primary sortas="b-ffserver">ffserver</primary>
256 </indexterm>
257 </listitem>
258 </varlistentry>
259
260 <varlistentry id="libavcodec">
261 <term><filename class='libraryfile'>libavcodec.so</filename></term>
262 <listitem>
263 <para>is a library containing the <application>FFmpeg</application>
264 codecs (both encoding and decoding).</para>
265 <indexterm zone="ffmpeg libavcodec">
266 <primary sortas="c-libavcodec">libavcodec.so</primary>
267 </indexterm>
268 </listitem>
269 </varlistentry>
270
271 <varlistentry id="libavdevice">
272 <term><filename class='libraryfile'>libavdevice.so</filename></term>
273 <listitem>
274 <para>is the <application>FFmpeg</application> device handling
275 library.</para>
276 <indexterm zone="ffmpeg libavdevice">
277 <primary sortas="c-libavdevice">libavdevice.so</primary>
278 </indexterm>
279 </listitem>
280 </varlistentry>
281
282 <varlistentry id="libavfilter">
283 <term><filename class='libraryfile'>libavfilter.so</filename></term>
284 <listitem>
285 <para>is a library of filters that can alter video or audio between
286 the decoder and the encoder (or output).</para>
287 <indexterm zone="ffmpeg libavfilter">
288 <primary sortas="c-libavfilter">libavfilter.so</primary>
289 </indexterm>
290 </listitem>
291 </varlistentry>
292
293 <varlistentry id="libavformat">
294 <term><filename class='libraryfile'>libavformat.so</filename></term>
295 <listitem>
296 <para>is a library containing the file formats handling (mux and demux code
297 for several formats) used by <command>ffplay</command> as well as
298 allowing the generation of audio or video streams.</para>
299 <indexterm zone="ffmpeg libavformat">
300 <primary sortas="c-libavformat">libavformat.so</primary>
301 </indexterm>
302 </listitem>
303 </varlistentry>
304
305 <varlistentry id="libavutil">
306 <term><filename class='libraryfile'>libavutil.so</filename></term>
307 <listitem>
308 <para>is the <application>FFmpeg</application> utility library.</para>
309 <indexterm zone="ffmpeg libavutil">
310 <primary sortas="c-libavutil">libavutil.so</primary>
311 </indexterm>
312 </listitem>
313 </varlistentry>
314
315 <!-- Both mplayer and ffmpeg now create libpostproc. The validation
316 for the book is not impressed by that, and it falls apart without giving
317 any useful information if the id is changed to "libpostproc (from ffmpeg)"
318 or any other variant using spaces or parenthesis or square brackets, so
319 try this variant : mmm, bizarrely, it accepts this but drops everything from
320 the first hyphen, so that in longindex.html it looks just right (one library,
321 two packages) -->
322 <varlistentry id="libpostproc-from-ffmpeg">
323 <term><filename class='libraryfile'>libpostproc.so</filename></term>
324 <listitem>
325 <para>is the <application>FFmpeg</application> post processing
326 library.</para>
327 <indexterm zone="ffmpeg libpostproc">
328 <primary sortas="c-libpostproc">libpostproc.so</primary>
329 </indexterm>
330 </listitem>
331 </varlistentry>
332
333 <varlistentry id="libswscale">
334 <term><filename class='libraryfile'>libswscale.so</filename></term>
335 <listitem>
336 <para>is the <application>FFmpeg</application> image rescaling
337 library.</para>
338 <indexterm zone="ffmpeg libswscale">
339 <primary sortas="c-libswscale">libswscale.so</primary>
340 </indexterm>
341 </listitem>
342 </varlistentry>
343
344 </variablelist>
345
346 </sect2>
347
348</sect1>
Note: See TracBrowser for help on using the repository browser.