source: multimedia/videoutils/ffmpeg.xml@ 29dc5df

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

Update to ffmpeg-2.2.3.

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

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