source: multimedia/videoutils/ffmpeg.xml@ 89d37eb8

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 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 89d37eb8 was 89d37eb8, checked in by Igor Živković <igor@…>, 11 years ago

update to ffmpeg-2.0.1

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

  • Property mode set to 100644
File size: 20.9 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
8 "http://ffmpeg.org/releases/ffmpeg-&ffmpeg-version;.tar.bz2">
9 <!ENTITY ffmpeg-download-ftp " ">
10 <!ENTITY ffmpeg-md5sum "dd71a1baedb2daa3e4d21e0651daa918">
11 <!ENTITY ffmpeg-size "6.0 MB">
12 <!ENTITY ffmpeg-buildsize "100 MB">
13 <!ENTITY ffmpeg-time "2.6 SBU">
14]>
15
16<sect1 id="ffmpeg" xreflabel="FFmpeg-&ffmpeg-version;">
17 <?dbhtml filename="ffmpeg.html"?>
18
19 <sect1info>
20 <othername>$LastChangedBy$</othername>
21 <date>$Date$</date>
22 </sect1info>
23
24 <title>FFmpeg-&ffmpeg-version;</title>
25
26 <indexterm zone="ffmpeg">
27 <primary sortas="a-FFmpeg">FFmpeg</primary>
28 </indexterm>
29
30 <sect2 role="package">
31 <title>Introduction to FFmpeg</title>
32
33 <para>
34 <application>FFmpeg</application> is a solution to record, convert and
35 stream audio and video. It is a very fast video and audio converter and it
36 can also acquire from a live audio/video source. Designed to be intuitive,
37 the command-line interface (<command>ffmpeg</command>) tries to figure out
38 all the parameters, when possible. <application>FFmpeg</application> can
39 also convert from any sample rate to any other, and resize video on the
40 fly with a high quality polyphase filter.
41 <application>FFmpeg</application> can use a Video4Linux compatible video
42 source and any Open Sound System audio source.
43 </para>
44
45 &lfs74_checked;
46
47 <bridgehead renderas="sect3">Package Information</bridgehead>
48 <itemizedlist spacing="compact">
49 <listitem>
50 <para>
51 Download (HTTP): <ulink url="&ffmpeg-download-http;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download (FTP): <ulink url="&ffmpeg-download-ftp;"/>
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download MD5 sum: &ffmpeg-md5sum;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Download size: &ffmpeg-size;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated disk space required: &ffmpeg-buildsize;
72 </para>
73 </listitem>
74 <listitem>
75 <para>
76 Estimated build time: &ffmpeg-time;
77 </para>
78 </listitem>
79 </itemizedlist>
80
81 <bridgehead renderas="sect3">FFmpeg Dependencies</bridgehead>
82
83 <bridgehead renderas="sect4">Recommended</bridgehead>
84 <para role="recommended">
85 <xref linkend="yasm"/>,
86 <xref linkend="libass"/>,
87 <xref linkend="fdk-aac"/>,
88 <xref linkend="lame"/>,
89 <xref linkend="opus"/>,
90 <xref linkend="libtheora"/>,
91 <xref linkend="libvorbis"/>,
92 <xref linkend="libvpx"/>, and
93 <xref linkend="x264"/>
94 </para>
95
96 <bridgehead renderas="sect4">Recommended for desktop use</bridgehead>
97 <para>
98 <xref linkend="x-window-system"/>,
99 <xref linkend="alsa-lib"/>,
100 <xref linkend="sdl"/>,
101 <xref linkend="libva"/> and
102 <xref linkend="libvdpau"/> (with the corresponding driver package)
103 </para>
104
105 <bridgehead renderas="sect4">Optional</bridgehead>
106 <para role="optional">
107 <xref linkend="faac"/>,
108 <xref linkend="freetype2"/>,
109 <xref linkend="openjpeg"/>,
110 <xref linkend="pulseaudio"/>,
111 <xref linkend="speex"/>,
112 <xref linkend="xvid"/>,
113 <xref linkend="openssl"/>,
114 <xref linkend="fontconfig"/>,
115 <ulink url="http://www.piksel.org/frei0r">frei0r</ulink>,
116 <xref linkend="gnutls"/>,
117 <ulink url="http://tipok.org.ua/node/17">libaacplus</ulink>,
118 <ulink url="http://www.videolan.org/developers/libbluray.html">libbluray</ulink>,
119 <ulink url="http://caca.zoy.org/">libcaca</ulink>,
120 <ulink url="http://www.celt-codec.org/">libcelt</ulink>,
121 <ulink url="http://ftp.gnu.org/pub/gnu/libcdio/">libcdio</ulink>,
122 <ulink url="http://sourceforge.net/projects/libdc1394">libdc1394</ulink>,
123 <ulink url="http://www.speech.cs.cmu.edu/flite/">Flite</ulink>,
124 <ulink url="http://www.quut.com/gsm/">GSM</ulink>,
125 <ulink url="https://ieee1394.wiki.kernel.org/index.php/Libraries">libiec61883</ulink>,
126 <ulink url="https://github.com/dekkers/libilbc">libilbc</ulink>,
127 <ulink url="http://sourceforge.net/projects/modplug-xmms/">libmodplug</ulink>,
128 <ulink url="http://svn.mplayerhq.hu/nut/src/trunk/">libnut</ulink> (SVN checkout),
129 <ulink url="http://sourceforge.net/projects/opencore-amr">OpenCore AMR</ulink>,
130 <ulink url="http://opencv.org/">OpenCV</ulink>,
131 <ulink url="http://sourceforge.net/projects/librtmp">librtmp</ulink>,
132 <ulink url="http://diracvideo.org/">Schroedinger</ulink>,
133 <ulink url="http://www.twolame.org/">TwoLAME</ulink>,
134 <ulink url="http://linuxtv.org/downloads/v4l-utils/">Video4Linux</ulink>,
135 <ulink url="http://sourceforge.net/projects/opencore-amr/files/vo-aacenc/">vo-aaenc</ulink>,
136 <ulink url="http://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/">vo-amrwbenc</ulink>,
137 <ulink url="http://xavs.sourceforge.net/">libxavs</ulink> (SVN checkout),
138 <ulink url="http://kcat.strangesoft.net/openal-releases/">OpenAL</ulink>, and
139 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink> (to build HTML documentation)
140 </para>
141
142 <para condition="html" role="usernotes">
143 User Notes: <ulink url="&blfs-wiki;/ffmpeg"/>
144 </para>
145 </sect2>
146
147 <sect2 role="installation">
148 <title>Installation of FFmpeg</title>
149
150 <para>
151 If <application>Xorg</application> is installed in a prefix other
152 than <filename class='directory'>/usr</filename>, the build will fail. Fix
153 this by issuing the following command:
154 </para>
155
156<screen><userinput>export LIBRARY_PATH=$XORG_PREFIX/lib</userinput></screen>
157
158 <para>
159 Install <application>FFmpeg</application> by running the following
160 commands:
161 </para>
162
163<screen><userinput>sed -i 's/-lflite"/-lflite -lasound"/' configure &amp;&amp;
164./configure --prefix=/usr \
165 --enable-gpl \
166 --enable-version3 \
167 --enable-nonfree \
168 --disable-static \
169 --enable-shared \
170 --disable-debug \
171 --enable-libass \
172 --enable-libfdk-aac \
173 --enable-libmp3lame \
174 --enable-libopus \
175 --enable-libtheora \
176 --enable-libvorbis \
177 --enable-libvpx \
178 --enable-libx264 \
179 --enable-x11grab &amp;&amp;
180make &amp;&amp;
181gcc tools/qt-faststart.c -o tools/qt-faststart &amp;&amp;
182unset LIBRARY_PATH</userinput></screen>
183
184 <para>
185 HTML documentation was built in the previous step if
186 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink> is
187 installed. If the HTML was built (check for any
188 <filename class="extension">.html</filename> files in the
189 <filename class="directory">doc</filename> directory) and you have
190 <xref linkend="texlive"/> installed and wish to build PDF and
191 Postscript versions of the documentation, issue the following commands:
192 </para>
193
194<screen><userinput>pushd doc &amp;&amp;
195for DOCNAME in `basename -s .html *.html`
196do
197 texi2pdf -b $DOCNAME.texi &amp;&amp;
198 texi2dvi -b $DOCNAME.texi &amp;&amp;
199 dvips -o $DOCNAME.ps \
200 $DOCNAME.dvi &amp;&amp;
201done &amp;&amp;
202popd &amp;&amp;
203unset DOCNAME</userinput></screen>
204
205 <para>
206 If you have <xref linkend="doxygen"/> installed and wish to create the API
207 documentation (takes about 300 MB of space), issue the command
208 <command>doxygen doc/Doxyfile</command>.
209 </para>
210
211 <para>
212 To properly test the installation you must have <xref linkend="rsync"/>
213 installed and follow the instructions for the
214 <ulink url="http://ffmpeg.org/fate.html">
215 FFmpeg Automated Testing Environment</ulink>. Note that the BLFS team has
216 not performed this regression testing.
217 </para>
218
219 <para>
220 Now, as the <systemitem class="username">root</systemitem> user:
221 </para>
222
223<screen role="root"><userinput>make install &amp;&amp;
224install -v -m755 tools/qt-faststart /usr/bin &amp;&amp;
225install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
226install -v -m644 doc/*.txt \
227 /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
228
229 <para>
230 If HTML documentation was built, issue the following command to install it:
231 </para>
232
233<screen role="root"><userinput>install -v -m644 doc/*.html \
234 /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
235
236 <para>
237 If you used <command>doxygen</command> to create the API documentation,
238 install it (another 300 MB of space) by issuing the following commands
239 as the <systemitem class="username">root</systemitem> user:
240 </para>
241
242<screen role="root"><userinput>install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
243install -v -m644 doc/doxy/html/* \
244 /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
245
246 </sect2>
247
248 <sect2 role="commands">
249 <title>Command Explanations</title>
250
251 <para>
252 <command>sed -i ...</command>: This command adds the
253 <application>ALSA</application> library to the
254 <application>Flite</application> <envar>LDFLAGS</envar> variable and
255 enables the discovery of <application>Flite</application>.
256 </para>
257
258 <para>
259 <command>gcc tools/qt-faststart.c -o tools/qt-faststart</command>:
260 This builds the <command>qt-faststart</command> program which can
261 modify QuickTime formatted movies
262 (<filename class="extension">.mov</filename> or
263 <filename class="extension">.mp4</filename>) so that the header information
264 is located at the beginning of the file instead of the end. This allows
265 the movie file to begin playing before the entire file has been downloaded.
266 </para>
267
268 <para>
269 <parameter>--enable-gpl</parameter>: Enables the use of GPL code and
270 permits support for postprocessing, swscale and many other features.
271 </para>
272
273 <para>
274 <parameter>--enable-version3</parameter>: Enables the use of (L)GPL
275 version 3 code.
276 </para>
277
278 <para>
279 <parameter>--enable-nonfree</parameter>: Enables the use of nonfree
280 code. Note that the resulting libraries and binaries will be
281 unredistributable.
282 </para>
283
284 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
285 href="../../xincludes/static-libraries.xml"/>
286
287 <para>
288 <parameter>--enable-shared</parameter>: Enables building shared libraries,
289 otherwise only static libraries are built and installed.
290 </para>
291
292 <para>
293 <parameter>--disable-debug</parameter>: Disables building debugging
294 symbols into the programs and libraries.
295 </para>
296
297 <para>
298 <parameter>--enable-libass</parameter>: Enables ASS/SSA subtitle format
299 rendering <filename class="libraryfile">libass</filename>.
300 </para>
301
302 <para>
303 <parameter>--enable-libfdk-aac</parameter>: Enables audio encoding in AAC
304 format via <filename class="libraryfile">libfdk-aac</filename>.
305 </para>
306
307 <para>
308 <parameter>--enable-libmp3lame</parameter>: Enables MP3 encoding via
309 <filename class="libraryfile">libmp3lame</filename>.
310 </para>
311
312 <para>
313 <parameter>--enable-libopus</parameter>: Enables Opus format encoding and
314 decoding via <filename class="libraryfile">libopus</filename>.
315 </para>
316
317 <para>
318 <parameter>--enable-libtheora</parameter>: Enables
319 <application>Theora</application> encoding
320 via <filename class="libraryfile">libtheora</filename>.
321 </para>
322
323 <para>
324 <parameter>--enable-libvorbis</parameter>: Enables
325 <application>Vorbis</application> de/encoding
326 via <filename class="libraryfile">libvorbis</filename>.
327 </para>
328
329 <para>
330 <parameter>--enable-libvpx</parameter>: Enables VP8 de/encoding
331 via <filename class="libraryfile">libvpx</filename>.
332 </para>
333
334 <para>
335 <parameter>--enable-libx264</parameter>: Enables H.264 de/encoding
336 via <filename class="libraryfile">libvpx</filename>.
337 </para>
338
339 <para>
340 <parameter>--enable-x11grab</parameter>: Enables X11 grabbing.
341 </para>
342
343 <para>
344 Support for most of the dependency packages requires using options passed
345 to the <command>configure</command> script. View the the output from
346 <command>./configure --help</command> for complete information about
347 enabling dependency packages. The only reason to enable a specific codec
348 (and make <application>FFmpeg</application> link to the prerequisite
349 shared library installed on your system) is to make
350 <application>FFmpeg</application> compile an <emphasis>encoder</emphasis>
351 and/or <emphasis>decoder</emphasis> for that codec. If you just want to
352 use <application>FFmpeg</application> to watch video or listen to music
353 (via other applications such as <application>Gstreamer</application> or
354 <application>Xine</application>) then you will not benefit from linking
355 <application>FFmpeg</application> to other codec libraries.
356 </para>
357
358 </sect2>
359
360 <sect2 role="configuration">
361 <title>Configuring FFmpeg</title>
362
363 <sect3 id="ffmpeg-config">
364 <title>Config Files</title>
365
366 <para>
367 <filename>/etc/ffserver.conf</filename> and
368 <filename>~/.ffmpeg/ffserver-config</filename>
369 </para>
370
371 <indexterm zone="ffmpeg ffmpeg-config">
372 <primary
373 sortas="e-AA.ffmpeg-ffserver-config">~/.ffmpeg/ffserver-config</primary>
374 </indexterm>
375
376 <indexterm zone="ffmpeg ffmpeg-config">
377 <primary sortas="e-etc-ffserver.conf">/etc/ffserver.conf</primary>
378 </indexterm>
379
380 <para>
381 You'll find a sample <command>ffserver</command> configuration file at
382 <filename>doc/ffserver.conf</filename> in the source tree.
383 </para>
384
385 </sect3>
386
387 </sect2>
388
389 <sect2 role="content">
390 <title>Contents</title>
391
392 <segmentedlist>
393 <segtitle>Installed Programs</segtitle>
394 <segtitle>Installed Libraries</segtitle>
395 <segtitle>Installed Directories</segtitle>
396
397 <seglistitem>
398 <seg>
399 ffmpeg, ffplay, ffprobe, ffserver, and
400 qt-faststart
401 </seg>
402 <seg>
403 libavcodec.so, libavdevice.so, libavfilter.so,
404 libavformat.so, libavutil.so, libpostproc.so,
405 libswresample, and libswscale.so
406 </seg>
407 <seg>
408 /usr/include/libavcodec,
409 /usr/include/libavdevice,
410 /usr/include/libavfilter,
411 /usr/include/libavformat,
412 /usr/include/libavutil,
413 /usr/include/libpostproc,
414 /usr/include/libswresample
415 /usr/include/libswscale,
416 /usr/share/ffmpeg, and
417 /usr/share/doc/ffmpeg-&ffmpeg-version;
418 </seg>
419 </seglistitem>
420 </segmentedlist>
421
422 <variablelist>
423 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
424 <?dbfo list-presentation="list"?>
425 <?dbhtml list-presentation="table"?>
426
427 <varlistentry id="ffmpeg-prog">
428 <term><command>ffmpeg</command></term>
429 <listitem>
430 <para>
431 is a command-line tool to convert video files, network streams and
432 input from a TV card to several video formats.
433 </para>
434 <indexterm zone="ffmpeg ffmpeg-prog">
435 <primary sortas="b-ffmpeg">ffmpeg</primary>
436 </indexterm>
437 </listitem>
438 </varlistentry>
439
440 <varlistentry id="ffplay">
441 <term><command>ffplay</command></term>
442 <listitem>
443 <para>
444 is a very simple and portable media player using the
445 <filename>ffmpeg</filename> libraries and the SDL library.
446 </para>
447 <indexterm zone="ffmpeg ffplay">
448 <primary sortas="b-ffplay">ffplay</primary>
449 </indexterm>
450 </listitem>
451 </varlistentry>
452
453 <varlistentry id="ffprobe">
454 <term><command>ffprobe</command></term>
455 <listitem>
456 <para>
457 gathers information from multimedia streams and prints it in a human
458 and machine-readable fashion.
459 </para>
460 <indexterm zone="ffmpeg ffprobe">
461 <primary sortas="b-ffprobe">ffprobe</primary>
462 </indexterm>
463 </listitem>
464 </varlistentry>
465
466 <varlistentry id="ffserver">
467 <term><command>ffserver</command></term>
468 <listitem>
469 <para>
470 is a streaming server for everything that <command>ffmpeg</command>
471 could use as input (files, streams, TV card input, webcam, etc).
472 </para>
473 <indexterm zone="ffmpeg ffserver">
474 <primary sortas="b-ffserver">ffserver</primary>
475 </indexterm>
476 </listitem>
477 </varlistentry>
478
479 <varlistentry id="qt-faststart">
480 <term><command>qt-faststart</command></term>
481 <listitem>
482 <para>
483 moves the index file to the front of quicktime (mov/mp4) videos.
484 </para>
485 <indexterm zone="ffmpeg qt-faststart">
486 <primary sortas="b-qt-faststart">qt-faststart</primary>
487 </indexterm>
488 </listitem>
489 </varlistentry>
490
491 <varlistentry id="libavcodec">
492 <term><filename class="libraryfile">libavcodec.so</filename></term>
493 <listitem>
494 <para>
495 is a library containing the <application>FFmpeg</application> codecs
496 (both encoding and decoding).
497 </para>
498 <indexterm zone="ffmpeg libavcodec">
499 <primary sortas="c-libavcodec">libavcodec.so</primary>
500 </indexterm>
501 </listitem>
502 </varlistentry>
503
504 <varlistentry id="libavdevice">
505 <term><filename class="libraryfile">libavdevice.so</filename></term>
506 <listitem>
507 <para>
508 is the <application>FFmpeg</application> device handling library.
509 </para>
510 <indexterm zone="ffmpeg libavdevice">
511 <primary sortas="c-libavdevice">libavdevice.so</primary>
512 </indexterm>
513 </listitem>
514 </varlistentry>
515
516 <varlistentry id="libavfilter">
517 <term><filename class="libraryfile">libavfilter.so</filename></term>
518 <listitem>
519 <para>
520 is a library of filters that can alter video or audio between the
521 decoder and the encoder (or output).
522 </para>
523 <indexterm zone="ffmpeg libavfilter">
524 <primary sortas="c-libavfilter">libavfilter.so</primary>
525 </indexterm>
526 </listitem>
527 </varlistentry>
528
529 <varlistentry id="libavformat">
530 <term><filename class="libraryfile">libavformat.so</filename></term>
531 <listitem>
532 <para>
533 is a library containing the file formats handling (mux and demux
534 code for several formats) used by <command>ffplay</command> as well
535 as allowing the generation of audio or video streams.
536 </para>
537 <indexterm zone="ffmpeg libavformat">
538 <primary sortas="c-libavformat">libavformat.so</primary>
539 </indexterm>
540 </listitem>
541 </varlistentry>
542
543 <varlistentry id="libavutil">
544 <term><filename class="libraryfile">libavutil.so</filename></term>
545 <listitem>
546 <para>
547 is the <application>FFmpeg</application> utility library.
548 </para>
549 <indexterm zone="ffmpeg libavutil">
550 <primary sortas="c-libavutil">libavutil.so</primary>
551 </indexterm>
552 </listitem>
553 </varlistentry>
554
555 <varlistentry id="libpostproc">
556 <term><filename class="libraryfile">libpostproc.so</filename></term>
557 <listitem>
558 <para>
559 is the <application>FFmpeg</application> post processing library.
560 </para>
561 <indexterm zone="ffmpeg libpostproc">
562 <primary sortas="c-libpostproc">libpostproc.so</primary>
563 </indexterm>
564 </listitem>
565 </varlistentry>
566
567 <varlistentry id="libswresample">
568 <term><filename class="libraryfile">libswresample.so</filename></term>
569 <listitem>
570 <para>
571 is the <application>FFmpeg</application> audio rescaling library,
572 it contains functions for converting audio sample formats.
573 </para>
574 <indexterm zone="ffmpeg libswresample">
575 <primary sortas="c-libswresample">libswresample.so</primary>
576 </indexterm>
577 </listitem>
578 </varlistentry>
579
580 <varlistentry id="libswscale">
581 <term><filename class="libraryfile">libswscale.so</filename></term>
582 <listitem>
583 <para>
584 is the <application>FFmpeg</application> image rescaling library.
585 </para>
586 <indexterm zone="ffmpeg libswscale">
587 <primary sortas="c-libswscale">libswscale.so</primary>
588 </indexterm>
589 </listitem>
590 </varlistentry>
591
592 </variablelist>
593
594 </sect2>
595
596</sect1>
Note: See TracBrowser for help on using the repository browser.