source: multimedia/videoutils/ffmpeg.xml@ 0ee2aa3

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 0ee2aa3 was 0ee2aa3, checked in by Bruce Dubbs <bdubbs@…>, 10 years ago

Revert ghandes to guile

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