source: multimedia/videoutils/ffmpeg.xml@ 4e715f8

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 4e715f8 was 4e715f8, checked in by Igor Živković <igor@…>, 10 years ago

remove freetype patch for ffmpeg

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

  • Property mode set to 100644
File size: 20.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
8 "http://ffmpeg.org/releases/ffmpeg-&ffmpeg-version;.tar.bz2">
9 <!ENTITY ffmpeg-download-ftp " ">
10 <!ENTITY ffmpeg-md5sum "711b795bbc7b527c0f4a1828f324fd5a">
11 <!ENTITY ffmpeg-size "6.4 MB">
12 <!ENTITY ffmpeg-buildsize "107 MB (additional 710 MB for docs and 1.5 GB
13 for tests)">
14 <!ENTITY ffmpeg-time "2.3 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 &lfs74_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 <xref linkend="gnutls"/>,
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>, and
144 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink> (to build HTML documentation)
145 </para>
146
147 <para condition="html" role="usernotes">
148 User Notes: <ulink url="&blfs-wiki;/ffmpeg"/>
149 </para>
150 </sect2>
151
152 <sect2 role="installation">
153 <title>Installation of FFmpeg</title>
154
155<!--<para>
156 If <application>Xorg</application> is installed in a prefix other
157 than <filename class='directory'>/usr</filename>, the build will fail. Fix
158 this by issuing the following command:
159 </para>
160
161<screen><userinput>export LIBRARY_PATH=$XORG_PREFIX/lib</userinput></screen>
162-->
163 <para>
164 Install <application>FFmpeg</application> by running the following
165 commands:
166 </para>
167
168<screen><userinput>sed -i 's/-lflite"/-lflite -lasound"/' configure &amp;&amp;
169./configure --prefix=/usr \
170 --enable-gpl \
171 --enable-version3 \
172 --enable-nonfree \
173 --disable-static \
174 --enable-shared \
175 --disable-debug \
176 --enable-libass \
177 --enable-libfdk-aac \
178 --enable-libmp3lame \
179 --enable-libopus \
180 --enable-libtheora \
181 --enable-libvorbis \
182 --enable-libvpx \
183 --enable-libx264 \
184 --enable-x11grab &amp;&amp;
185make &amp;&amp;
186gcc tools/qt-faststart.c -o tools/qt-faststart &amp;&amp;
187unset LIBRARY_PATH</userinput></screen>
188
189 <para>
190 HTML documentation was built in the previous step if
191 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink> is
192 installed. If the HTML was built (check for any
193 <filename class="extension">.html</filename> files in the
194 <filename class="directory">doc</filename> directory) and you have
195 <xref linkend="texlive"/> installed and wish to build PDF and
196 Postscript versions of the documentation, issue the following commands:
197 </para>
198
199<screen><userinput>pushd doc &amp;&amp;
200for DOCNAME in `basename -s .html *.html`
201do
202 texi2pdf -b $DOCNAME.texi &amp;&amp;
203 texi2dvi -b $DOCNAME.texi &amp;&amp;
204 dvips -o $DOCNAME.ps \
205 $DOCNAME.dvi
206done &amp;&amp;
207popd &amp;&amp;
208unset DOCNAME</userinput></screen>
209
210 <para>
211 If you have <xref linkend="doxygen"/> installed and wish to create the API
212 documentation (takes about 350 MB of space), issue the command
213 <command>doxygen doc/Doxyfile</command>.
214 </para>
215
216 <para>
217 To properly test the installation you must have <xref linkend="rsync"/>
218 installed and follow the instructions for the
219 <ulink url="http://ffmpeg.org/FATE.html">
220 FFmpeg Automated Testing Environment</ulink> (FATE). First, about 736 MB
221 of data files used to run FATE are downloaded. Next, FATE is executed.
222 Estimated values in "Package Information" do not include the download SBU.
223 </para>
224
225 <para>
226 Now, as the <systemitem class="username">root</systemitem> user:
227 </para>
228
229<screen role="root"><userinput>make install &amp;&amp;
230install -v -m755 tools/qt-faststart /usr/bin &amp;&amp;
231install -v -m755 -d /usr/share/doc/ffmpeg &amp;&amp;
232install -v -m644 doc/*.txt \
233 /usr/share/doc/ffmpeg</userinput></screen>
234
235 <para>
236 If HTML documentation was built, issue the following command to install it:
237 </para>
238
239<screen role="root"><userinput>install -v -m644 doc/*.html \
240 /usr/share/doc/ffmpeg</userinput></screen>
241
242 <para>
243 If you used <command>doxygen</command> to create the API documentation,
244 install it (another 300 MB of space) by issuing the following commands
245 as the <systemitem class="username">root</systemitem> user:
246 </para>
247
248<screen role="root"><userinput>install -v -m755 -d /usr/share/doc/ffmpeg/api &amp;&amp;
249install -v -m644 doc/doxy/html/* \
250 /usr/share/doc/ffmpeg/api</userinput></screen>
251
252 </sect2>
253
254 <sect2 role="commands">
255 <title>Command Explanations</title>
256
257 <para>
258 <command>sed -i ...</command>: This command adds the
259 <application>ALSA</application> library to the
260 <application>Flite</application> <envar>LDFLAGS</envar> variable and
261 enables the discovery of <application>Flite</application>.
262 </para>
263
264 <para>
265 <option>--enable-libfreetype</option>: Enables
266 <application>Freetype</application> support.
267 </para>
268
269 <para>
270 <parameter>--enable-gpl</parameter>: Enables the use of GPL code and
271 permits support for postprocessing, swscale and many other features.
272 </para>
273
274 <para>
275 <parameter>--enable-version3</parameter>: Enables the use of (L)GPL
276 version 3 code.
277 </para>
278
279 <para>
280 <parameter>--enable-nonfree</parameter>: Enables the use of nonfree
281 code. Note that the resulting libraries and binaries will be
282 unredistributable.
283 </para>
284
285 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
286 href="../../xincludes/static-libraries.xml"/>
287
288 <para>
289 <parameter>--enable-shared</parameter>: Enables building shared libraries,
290 otherwise only static libraries are built and installed.
291 </para>
292
293 <para>
294 <parameter>--disable-debug</parameter>: Disables building debugging
295 symbols into the programs and libraries.
296 </para>
297
298 <para>
299 <parameter>--enable-libass</parameter>: Enables ASS/SSA subtitle format
300 rendering via <filename class="libraryfile">libass</filename>.
301 </para>
302
303 <para>
304 <parameter>--enable-libfdk-aac</parameter>: Enables currently the
305 highest-quality AAC audio encoding via <filename
306 class="libraryfile">libfdk-aac</filename>.
307 </para>
308
309 <para>
310 <parameter>--enable-libmp3lame</parameter>: Enables MP3 audio encoding via
311 <filename class="libraryfile">libmp3lame</filename>.
312 </para>
313
314 <para>
315 <parameter>--enable-libopus</parameter>: Enables Opus encoding for low
316 latency streaming via <filename class="libraryfile">libopus</filename>.
317 </para>
318
319 <para>
320 <parameter>--enable-libvorbis --enable-libtheora</parameter>: Enables
321 Theora video encoding via <filename
322 class="libraryfile">libvorbis</filename> and <filename
323 class="libraryfile">libtheora</filename>.
324 </para>
325
326 <para>
327 <parameter>--enable-libvorbis --enable-libvpx</parameter>: Enables WebM
328 encoding via <filename class="libraryfile">libvorbis</filename> and
329 <filename class="libraryfile">libvpx</filename>.
330 </para>
331
332 <para>
333 <parameter>--enable-libx264</parameter>: Enables high-quality H.264/MPEG-4
334 AVC encoding via <filename class="libraryfile">libx264</filename>.
335 </para>
336
337 <para>
338 <parameter>--enable-x11grab</parameter>: Enables X11 grabbing.
339 </para>
340
341 <para>
342 <command>gcc tools/qt-faststart.c -o tools/qt-faststart</command>:
343 This builds the <command>qt-faststart</command> program which can
344 modify QuickTime formatted movies
345 (<filename class="extension">.mov</filename> or
346 <filename class="extension">.mp4</filename>) so that the header information
347 is located at the beginning of the file instead of the end. This allows
348 the movie file to begin playing before the entire file has been downloaded.
349 </para>
350
351 <note>
352 <para>
353 Support for most of the dependency packages requires using options
354 passed to the <command>configure</command> script. View the output
355 from <command>./configure --help</command> for complete information
356 about enabling dependency packages.
357 </para>
358 </note>
359
360 </sect2>
361
362 <sect2 role="configuration">
363 <title>Configuring FFmpeg</title>
364
365 <sect3 id="ffmpeg-config">
366 <title>Config Files</title>
367
368 <para>
369 <filename>/etc/ffserver.conf</filename> and
370 <filename>~/.ffmpeg/ffserver-config</filename>
371 </para>
372
373 <indexterm zone="ffmpeg ffmpeg-config">
374 <primary
375 sortas="e-AA.ffmpeg-ffserver-config">~/.ffmpeg/ffserver-config</primary>
376 </indexterm>
377
378 <indexterm zone="ffmpeg ffmpeg-config">
379 <primary sortas="e-etc-ffserver.conf">/etc/ffserver.conf</primary>
380 </indexterm>
381
382 <para>
383 You'll find a sample <command>ffserver</command> configuration file at
384 <filename>doc/ffserver.conf</filename> in the source tree.
385 </para>
386
387 </sect3>
388
389 </sect2>
390
391 <sect2 role="content">
392 <title>Contents</title>
393
394 <segmentedlist>
395 <segtitle>Installed Programs</segtitle>
396 <segtitle>Installed Libraries</segtitle>
397 <segtitle>Installed Directories</segtitle>
398
399 <seglistitem>
400 <seg>
401 ffmpeg, ffplay, ffprobe, ffserver, and
402 qt-faststart
403 </seg>
404 <seg>
405 libavcodec.so, libavdevice.so, libavfilter.so,
406 libavformat.so, libavutil.so, libpostproc.so,
407 libswresample, and libswscale.so
408 </seg>
409 <seg>
410 /usr/include/libavcodec,
411 /usr/include/libavdevice,
412 /usr/include/libavfilter,
413 /usr/include/libavformat,
414 /usr/include/libavutil,
415 /usr/include/libpostproc,
416 /usr/include/libswresample
417 /usr/include/libswscale,
418 /usr/share/ffmpeg, and
419 /usr/share/doc/ffmpeg
420 </seg>
421 </seglistitem>
422 </segmentedlist>
423
424 <variablelist>
425 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
426 <?dbfo list-presentation="list"?>
427 <?dbhtml list-presentation="table"?>
428
429 <varlistentry id="ffmpeg-prog">
430 <term><command>ffmpeg</command></term>
431 <listitem>
432 <para>
433 is a command-line tool to convert video files, network streams and
434 input from a TV card to several video formats.
435 </para>
436 <indexterm zone="ffmpeg ffmpeg-prog">
437 <primary sortas="b-ffmpeg">ffmpeg</primary>
438 </indexterm>
439 </listitem>
440 </varlistentry>
441
442 <varlistentry id="ffplay">
443 <term><command>ffplay</command></term>
444 <listitem>
445 <para>
446 is a very simple and portable media player using the
447 <filename>ffmpeg</filename> libraries and the SDL library.
448 </para>
449 <indexterm zone="ffmpeg ffplay">
450 <primary sortas="b-ffplay">ffplay</primary>
451 </indexterm>
452 </listitem>
453 </varlistentry>
454
455 <varlistentry id="ffprobe">
456 <term><command>ffprobe</command></term>
457 <listitem>
458 <para>
459 gathers information from multimedia streams and prints it in a human
460 and machine-readable fashion.
461 </para>
462 <indexterm zone="ffmpeg ffprobe">
463 <primary sortas="b-ffprobe">ffprobe</primary>
464 </indexterm>
465 </listitem>
466 </varlistentry>
467
468 <varlistentry id="ffserver">
469 <term><command>ffserver</command></term>
470 <listitem>
471 <para>
472 is a streaming server for everything that <command>ffmpeg</command>
473 could use as input (files, streams, TV card input, webcam, etc).
474 </para>
475 <indexterm zone="ffmpeg ffserver">
476 <primary sortas="b-ffserver">ffserver</primary>
477 </indexterm>
478 </listitem>
479 </varlistentry>
480
481 <varlistentry id="qt-faststart">
482 <term><command>qt-faststart</command></term>
483 <listitem>
484 <para>
485 moves the index file to the front of quicktime (mov/mp4) videos.
486 </para>
487 <indexterm zone="ffmpeg qt-faststart">
488 <primary sortas="b-qt-faststart">qt-faststart</primary>
489 </indexterm>
490 </listitem>
491 </varlistentry>
492
493 <varlistentry id="libavcodec">
494 <term><filename class="libraryfile">libavcodec.so</filename></term>
495 <listitem>
496 <para>
497 is a library containing the <application>FFmpeg</application> codecs
498 (both encoding and decoding).
499 </para>
500 <indexterm zone="ffmpeg libavcodec">
501 <primary sortas="c-libavcodec">libavcodec.so</primary>
502 </indexterm>
503 </listitem>
504 </varlistentry>
505
506 <varlistentry id="libavdevice">
507 <term><filename class="libraryfile">libavdevice.so</filename></term>
508 <listitem>
509 <para>
510 is the <application>FFmpeg</application> device handling library.
511 </para>
512 <indexterm zone="ffmpeg libavdevice">
513 <primary sortas="c-libavdevice">libavdevice.so</primary>
514 </indexterm>
515 </listitem>
516 </varlistentry>
517
518 <varlistentry id="libavfilter">
519 <term><filename class="libraryfile">libavfilter.so</filename></term>
520 <listitem>
521 <para>
522 is a library of filters that can alter video or audio between the
523 decoder and the encoder (or output).
524 </para>
525 <indexterm zone="ffmpeg libavfilter">
526 <primary sortas="c-libavfilter">libavfilter.so</primary>
527 </indexterm>
528 </listitem>
529 </varlistentry>
530
531 <varlistentry id="libavformat">
532 <term><filename class="libraryfile">libavformat.so</filename></term>
533 <listitem>
534 <para>
535 is a library containing the file formats handling (mux and demux
536 code for several formats) used by <command>ffplay</command> as well
537 as allowing the generation of audio or video streams.
538 </para>
539 <indexterm zone="ffmpeg libavformat">
540 <primary sortas="c-libavformat">libavformat.so</primary>
541 </indexterm>
542 </listitem>
543 </varlistentry>
544
545 <varlistentry id="libavutil">
546 <term><filename class="libraryfile">libavutil.so</filename></term>
547 <listitem>
548 <para>
549 is the <application>FFmpeg</application> utility library.
550 </para>
551 <indexterm zone="ffmpeg libavutil">
552 <primary sortas="c-libavutil">libavutil.so</primary>
553 </indexterm>
554 </listitem>
555 </varlistentry>
556
557 <varlistentry id="libpostproc">
558 <term><filename class="libraryfile">libpostproc.so</filename></term>
559 <listitem>
560 <para>
561 is the <application>FFmpeg</application> post processing library.
562 </para>
563 <indexterm zone="ffmpeg libpostproc">
564 <primary sortas="c-libpostproc">libpostproc.so</primary>
565 </indexterm>
566 </listitem>
567 </varlistentry>
568
569 <varlistentry id="libswresample">
570 <term><filename class="libraryfile">libswresample.so</filename></term>
571 <listitem>
572 <para>
573 is the <application>FFmpeg</application> audio rescaling library,
574 it contains functions for converting audio sample formats.
575 </para>
576 <indexterm zone="ffmpeg libswresample">
577 <primary sortas="c-libswresample">libswresample.so</primary>
578 </indexterm>
579 </listitem>
580 </varlistentry>
581
582 <varlistentry id="libswscale">
583 <term><filename class="libraryfile">libswscale.so</filename></term>
584 <listitem>
585 <para>
586 is the <application>FFmpeg</application> image rescaling library.
587 </para>
588 <indexterm zone="ffmpeg libswscale">
589 <primary sortas="c-libswscale">libswscale.so</primary>
590 </indexterm>
591 </listitem>
592 </varlistentry>
593
594 </variablelist>
595
596 </sect2>
597
598</sect1>
Note: See TracBrowser for help on using the repository browser.