source: multimedia/videoutils/ffmpeg.xml@ 94b096b

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 94b096b was 4484a54, checked in by Ken Moffat <ken@…>, 14 years ago

Update dependencies for aspell and ffmpeg.

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

  • Property mode set to 100644
File size: 15.7 KB
RevLine 
[8a1e4f4]1<?xml version="1.0" encoding="ISO-8859-1"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[01062dd]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
[560e14cf]6
[28cd5ce]7 <!ENTITY ffmpeg-download-http "http://ffmpeg.org/releases/ffmpeg-&ffmpeg-version;.tar.bz2">
[01062dd]8 <!ENTITY ffmpeg-download-ftp " ">
[28cd5ce]9 <!ENTITY ffmpeg-md5sum "4f5d732d25eedfb072251b5314ba2093">
10 <!ENTITY ffmpeg-size "3.5 MB">
11 <!ENTITY ffmpeg-buildsize "328 MB (built with recommended dependencies)">
12 <!ENTITY ffmpeg-time "2.1 SBU">
[01062dd]13]>
14
[0b5a693]15<sect1 id="ffmpeg" xreflabel="FFmpeg-&ffmpeg-version;">
[8a1e4f4]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
[f009801]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 can
34 also acquire from a live audio/video source. Designed to be intuitive, the
35 command-line interface (<command>ffmpeg</command>) tries to figure out all the
36 parameters, when possible. <application>FFmpeg</application> can also convert
37 from any sample rate to any other, and resize video on the fly with a high
38 quality polyphase filter. <application>FFmpeg</application> can use a
39 video4linux compatible video source and any Open Sound System audio
[28cd5ce]40 source.</para>
41 <para>The developers of this package do not make releases very often, so you
42 may wish to use a snapshot instead of this release. If you do that, you must
43 expect the acceptable <command>configure</command> switches, and the
44 dependencies, to change.</para>
45
46 &lfs67_checked;
[8a1e4f4]47
48 <bridgehead renderas="sect3">Package Information</bridgehead>
49 <itemizedlist spacing="compact">
50 <listitem>
51 <para>Download (HTTP): <ulink url="&ffmpeg-download-http;"/></para>
52 </listitem>
53 <listitem>
54 <para>Download (FTP): <ulink url="&ffmpeg-download-ftp;"/></para>
55 </listitem>
56 <listitem>
57 <para>Download MD5 sum: &ffmpeg-md5sum;</para>
58 </listitem>
59 <listitem>
60 <para>Download size: &ffmpeg-size;</para>
61 </listitem>
62 <listitem>
63 <para>Estimated disk space required: &ffmpeg-buildsize;</para>
64 </listitem>
65 <listitem>
66 <para>Estimated build time: &ffmpeg-time;</para>
67 </listitem>
68 </itemizedlist>
69
[dff08f73]70 <!-- <bridgehead renderas="sect3">Additional Downloads</bridgehead>
[7ab0cf0d]71 <itemizedlist spacing="compact">
72 <listitem>
73 <para>Required patch: <ulink
74 url="&patch-root;/ffmpeg-&ffmpeg-version;-gcc4-1.patch"/></para>
75 </listitem>
[f5d262aa]76 <listitem>
77 <para>Required patch: <ulink
78 url="&patch-root;/ffmpeg-&ffmpeg-version;-amr_fixes-1.patch"/></para>
79 </listitem>
[dff08f73]80 </itemizedlist> -->
[7ab0cf0d]81
[f29d6ee]82 <bridgehead renderas="sect3">FFmpeg Dependencies</bridgehead>
[8a1e4f4]83
[28cd5ce]84 <bridgehead renderas="sect4">Recommended</bridgehead>
85 <para role="recommended">
86 <xref linkend="faad2"/>,
87 <xref linkend="lame"/>,
88 <xref linkend="libtheora"/>,
89 <xref linkend="libvorbis"/>,
90 <xref linkend="libvpx"/>,
91 <xref linkend="x-window-system"/>,
92 <ulink url="http://www.videolan.org/developers/x264.html">x264</ulink>
[4484a54]93 (tested with the 20100615-2245 snapshot : x264 needs
94 <ulink url="http://www.tortall.net/projects/yasm/">yasm</ulink> unless you
95 configure it with <literal>--disable-asm</literal>),
[28cd5ce]96 <xref linkend="xvid"/></para>
97
[8a1e4f4]98 <bridgehead renderas="sect4">Optional</bridgehead>
[dff08f73]99 <para role="optional">
100 <ulink url="http://www.penguin.cz/~utx/amr">AMR narrowband (floating point)</ulink>,
101 <ulink url="http://www.penguin.cz/~utx/amr">AMR wideband</ulink>,
[222787b9]102 <xref linkend="faac"/>,
[dff08f73]103 <xref linkend="freetype2"/>,
104 <ulink url="http://kbs.cs.tu-berlin.de/~jutta/gsm/">GSM</ulink>,
105 <xref linkend="imlib2"/>,
106 <xref linkend="liba52"/>,
107 <ulink url="http://sourceforge.net/projects/libdc1394">libdc1394</ulink>,
108 <ulink url="http://svn.mplayerhq.hu/nut/src/trunk/">libnut</ulink> (SVN checkout),
[28cd5ce]109 <ulink url="http://sourceforge.net/projects/librtmp">librtmp</ulink>,
110 <ulink url="http://diracvideo.org/">libschroedinger</ulink>,
[dff08f73]111 <ulink url="http://medialibrary.sourceforge.net/">MediaLibrary</ulink>,
[28cd5ce]112 <ulink url="http://www.openjpeg.org">OpenJPEG</ulink>,
[dff08f73]113 <xref linkend="sdl"/>,
[28cd5ce]114 <xref linkend="speex"/>,
115 <ulink url="http://www.tortall.net/projects/yasm/">yasm</ulink>, and
116 <xref linkend="tetex"/> or
117 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink>
118 (to build HTML documentation)</para>
[8a1e4f4]119
[0e2aa08]120 <para condition="html" role="usernotes">User Notes:
121 <ulink url="&blfs-wiki;/ffmpeg"/></para>
122
[8a1e4f4]123 </sect2>
124
125 <sect2 role="installation">
126 <title>Installation of FFmpeg</title>
127
[f009801]128 <para>Install <application>FFmpeg</application> by running the following
[8a1e4f4]129 commands:</para>
130
[28cd5ce]131<screen><userinput>sed -i 's/-number//' Makefile &amp;&amp;
132./configure --prefix=/usr --enable-shared \
133 --enable-pthreads --enable-gpl \
134 --enable-swscale --enable-postproc \
135 --enable-libfaad --enable-libmp3lame \
136 --enable-libtheora --enable-libvorbis \
137 --enable-libvpx --enable-libx264 \
138 --enable-libxvid &amp;&amp;
139make</userinput></screen>
140
141 <para>If you have <application>teTeX</application> or
142 <application>texi2html</application> installed, the HTML
[dff08f73]143 documentation was built during the <command>make</command> process. If you
144 wish to create additional formats of the documentation, you must have
[28cd5ce]145 <application>teTeX</application> installed, and issue the following
[dff08f73]146 commands:</para>
147
148<screen><userinput>cd doc &amp;&amp;
[28cd5ce]149for DOCNAME in faq ffmpeg-doc ffplay-doc ffprobe-doc ffserver-doc general libavfilter; do
[dff08f73]150 texi2dvi -b -p $DOCNAME.texi
151 texi2dvi -b $DOCNAME.texi
152 dvips -o $DOCNAME.ps $DOCNAME.dvi
[28cd5ce]153 if [ $DOCNAME = ffserver-doc ] || [ $DOCNAME = ffplay-doc ] || [ $DOCNAME = ffprobe-doc ]; then \
[dff08f73]154 continue
155 fi
156 makeinfo --plaintext --force -o $DOCNAME.txt $DOCNAME.texi
157done &amp;&amp;
158cd .. &amp;&amp;
159unset DOCNAME</userinput></screen>
160
161 <para>If you have <xref linkend="doxygen"/> installed and wish to create
[28cd5ce]162 the API documentation (takes about 150 MB of space), issue
[dff08f73]163 <command>doxygen</command>.</para>
[8a1e4f4]164
[28cd5ce]165 <para>If you wish to run the tests, issue: <command>make check</command> -
166 that will take about 0.9 SBU and use another 365 MB of space.</para>
[e2c98cc6]167
[8a1e4f4]168 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
169
[dff08f73]170<screen role="root"><userinput>make install &amp;&amp;
171install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
172install -v -m644 doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
[5631507b]173texi2html --version >/dev/null 2>&amp;1 || make install-man</userinput></screen>
[8a1e4f4]174
[dff08f73]175 <para>If you created additional formats of the documentation,
176 install it by issuing the following commands as the
177 <systemitem class="username">root</systemitem> user:</para>
[8a1e4f4]178
[dff08f73]179<screen role="root"><userinput>install -v -m644 doc/*.{html,dvi,pdf,ps} \
[f5d262aa]180 /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
[8a1e4f4]181
[dff08f73]182 <para>If you created the API documentation, install it by issuing the
183 following commands as the
184 <systemitem class="username">root</systemitem> user:</para>
[fd7e0ed6]185
[dff08f73]186<screen role="root"><userinput>install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
187cp -v doxy/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
188
[8a1e4f4]189 </sect2>
190
191 <sect2 role="commands">
192 <title>Command Explanations</title>
193
[28cd5ce]194 <para><parameter>sed -i 's/-number//' Makefile</parameter>: Recent versions
195 of gnu <command>texi2html</command> error out because
196 <command>-number</command> is now ambiguous (for number-footnote or
197 number-sections). Neither choice makes any difference to what is created
198 here, and the same is true with older versions of
199 <command>texi2html</command>, e.g. from application
200 <application>teTeX</application>.</para>
201
[8a1e4f4]202 <para><parameter>--enable-shared</parameter>: This switch is needed to
[dff08f73]203 build the shared libraries, otherwise only static libraries are built
204 and installed.</para>
[8a1e4f4]205
[f009801]206 <para><parameter>--enable-pthreads</parameter>: This switch enables the
[8a1e4f4]207 build to link against the Posix threads library.</para>
208
[28cd5ce]209 <para><parameter>--enable-gpl</parameter>: This switch enables the
210 use of GPL code and permits support for postprocessing, swscale, liba54,
211 xvid, x264, libfaad2 and x11grab to be selected.</para>
212
213 <para><parameter>--enable-swscale</parameter>: This switch causes libswscale
214 to be built.</para>
215
216 <para><parameter>--enable-postprocessing</parameter>: This switch causes
217 libpostproc to be built.</para>
[8a1e4f4]218
[0e2aa08]219 <para><option>--enable-<replaceable>&lt;codec&gt;</replaceable></option>: Review
[f009801]220 the available options and codecs using the
[dff08f73]221 <command>./configure --help</command> command. You must explicitly enable
[28cd5ce]222 each optional codec. If you have not installed some of the recommended
223 dependencies, do not enable those you have omitted.</para>
[dff08f73]224
[28cd5ce]225 <para><option>--disable-ffplay</option>: Only installs the server part.
226 Use this option if <application>X</application> is not installed.</para>
[be09b68]227
[28cd5ce]228 <para><option>--disable-static</option>: This switch prevents the static
229 libraries from being built.</para>
[be09b68]230
[28cd5ce]231 <para><command>if [ $DOCNAME = ffserver-doc ] ...</command> These three
232 .texi files are rejected by <command>makeinfo</command> because of syntax
233 errors.</para>
[8a1e4f4]234
235 </sect2>
236
237 <sect2 role="configuration">
238 <title>Configuring FFmpeg</title>
239
240 <sect3 id="ffmpeg-config">
241 <title>Config Files</title>
242
[f009801]243 <para><filename>/etc/ffserver.conf</filename> and
[8a1e4f4]244 <filename>~/.ffmpeg/ffserver-config</filename></para>
245
246 <indexterm zone="ffmpeg ffmpeg-config">
247 <primary sortas="e-AA.ffmpeg-ffserver-config">~/.ffmpeg/ffserver-config</primary>
248 </indexterm>
249
250 <indexterm zone="ffmpeg ffmpeg-config">
251 <primary sortas="e-etc-ffserver.conf">/etc/ffserver.conf</primary>
252 </indexterm>
253
254 <para>You'll find a sample ffserver configuration file at
[f009801]255 <ulink url="http://ffmpeg.sourceforge.net/sample.html"/> (also
[8a1e4f4]256 <filename>doc/ffserver.conf</filename> in the source tree).</para>
257
258 </sect3>
259
260 </sect2>
261
262 <sect2 role="content">
263 <title>Contents</title>
264
265 <segmentedlist>
266 <segtitle>Installed Programs</segtitle>
267 <segtitle>Installed Libraries</segtitle>
268 <segtitle>Installed Directories</segtitle>
269
270 <seglistitem>
[28cd5ce]271 <seg>ffmpeg, ffplay, ffprobe, and ffserver</seg>
272 <seg>libavcodec.{so,a}, libavdevice.{so,a}, libavformat.{so,a},
273 libavutil.{so,a}, libpostproc.{so,a}, and libswscale.{so,a}</seg>
274 <seg>/usr/include/libavcodec, /usr/include/libavdevice,
275 /usr/include/libavformat, /usr/include/libavutil, /usr/include/postproc,
276 /usr/include/libswscale, /usr/share/ffmpeg, and
[8a1e4f4]277 /usr/share/doc/ffmpeg-&ffmpeg-version;</seg>
278 </seglistitem>
279 </segmentedlist>
280
281 <variablelist>
282 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
283 <?dbfo list-presentation="list"?>
284 <?dbhtml list-presentation="table"?>
285
286 <varlistentry id="ffmpeg-prog">
287 <term><command>ffmpeg</command></term>
288 <listitem>
[f009801]289 <para>is a command-line tool to convert video files, network streams
[8a1e4f4]290 and input from a TV card to several video formats.</para>
291 <indexterm zone="ffmpeg ffmpeg-prog">
292 <primary sortas="b-ffmpeg">ffmpeg</primary>
293 </indexterm>
294 </listitem>
295 </varlistentry>
296
297 <varlistentry id="ffplay">
298 <term><command>ffplay</command></term>
299 <listitem>
[f009801]300 <para>is a very simple and portable media player using the
[8a1e4f4]301 <filename>ffmpeg</filename> libraries and the SDL library.</para>
302 <indexterm zone="ffmpeg ffplay">
303 <primary sortas="b-ffplay">ffplay</primary>
304 </indexterm>
305 </listitem>
306 </varlistentry>
307
308 <varlistentry id="ffserver">
309 <term><command>ffserver</command></term>
310 <listitem>
311 <para>is a streaming server for everything that <command>ffmpeg</command>
312 could use as input (files, streams, TV card input, webcam, etc.).</para>
313 <indexterm zone="ffmpeg ffserver">
314 <primary sortas="b-ffserver">ffserver</primary>
315 </indexterm>
316 </listitem>
317 </varlistentry>
318
319 <varlistentry id="libavcodec">
[28cd5ce]320 <term><filename class='libraryfile'>libavcodec.{so,a}</filename></term>
[8a1e4f4]321 <listitem>
[d7ecaa6]322 <para>is a library containing the <application>FFmpeg</application>
[8a1e4f4]323 codecs (both encoding and decoding).</para>
324 <indexterm zone="ffmpeg libavcodec">
[28cd5ce]325 <primary sortas="c-libavcodec">libavcodec.{so,a}</primary>
326 </indexterm>
327 </listitem>
328 </varlistentry>
329
330 <varlistentry id="libavdevice">
331 <term><filename class='libraryfile'>libavdevice.{so,a}</filename></term>
332 <listitem>
333 <para>is the <application>FFmpeg</application> device handling
334 library.</para>
335 <indexterm zone="ffmpeg libavdevice">
336 <primary sortas="c-libavdevice">libavdevice.{so,a}</primary>
[8a1e4f4]337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="libavformat">
[28cd5ce]342 <term><filename class='libraryfile'>libavformat.{so,a}</filename></term>
[8a1e4f4]343 <listitem>
[f009801]344 <para>is a library containing the file formats handling (mux and demux code
345 for several formats) used by <command>ffplay</command> as well as
[8a1e4f4]346 allowing the generation of audio or video streams.</para>
347 <indexterm zone="ffmpeg libavformat">
[28cd5ce]348 <primary sortas="c-libavformat">libavformat.{so,a}</primary>
349 </indexterm>
350 </listitem>
351 </varlistentry>
352
353 <varlistentry id="libavutil">
354 <term><filename class='libraryfile'>libavutil.{so,a}</filename></term>
355 <listitem>
356 <para>is the <application>FFmpeg</application> utility library.</para>
357 <indexterm zone="ffmpeg libavutil">
358 <primary sortas="c-libavutil">libavutil.{so,a}</primary>
359 </indexterm>
360 </listitem>
361 </varlistentry>
362
363 <!-- Both mplayer and ffmpeg now create libpostproc. The validation
364 for the book is not impressed by that, and it falls apart without giving
365 any useful information if the id is changed to "libpostproc (from ffmpeg)"
366 or any other variant using spaces or parenthesis or square brackets, so
367 try this variant : mmm, bizarrely, it accepts this but drops everything from
368 the first hyphen, so that in longindex.html it looks just right (one library,
369 two packages) -->
370 <varlistentry id="libpostproc-from-ffmpeg">
371 <term><filename class='libraryfile'>libpostproc.{so,a}</filename></term>
372 <listitem>
373 <para>is the <application>FFmpeg</application> post processing
374 library.</para>
375 <indexterm zone="ffmpeg libpostproc">
376 <primary sortas="c-libpostproc">libpostproc.{so,a}</primary>
377 </indexterm>
378 </listitem>
379 </varlistentry>
380
381 <varlistentry id="libswscale">
382 <term><filename class='libraryfile'>libswscale.{so,a}</filename></term>
383 <listitem>
384 <para>is the <application>FFmpeg</application> image rescaling
385 library.</para>
386 <indexterm zone="ffmpeg libswscale">
387 <primary sortas="c-libswscale">libswscale.{so,a}</primary>
[8a1e4f4]388 </indexterm>
389 </listitem>
390 </varlistentry>
391
392 </variablelist>
393
394 </sect2>
[49e5372]395
396</sect1>
Note: See TracBrowser for help on using the repository browser.