source: multimedia/videoutils/ffmpeg.xml@ d8377ddb

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 d8377ddb was d8377ddb, checked in by Fernando de Oliveira <fernando@…>, 10 years ago

Updates to totem-pl-parser-3.10.1, grilo-0.2.9, grilo-plugins-0.2.11, ffmpeg-2.1.4, freetype-2.5.3, xterm-303, rasqal-0.9.32, libass-0.11.1, keyutils-1.5.9 and dhcpcd-6.3.1. Include comment in Harfbuzz-0.9.26 to go back and reinstall freetype-2.5.3.

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

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