source: multimedia/videoutils/ffmpeg.xml@ 76ed78a

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

update to ffmpeg-2.1

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@12129 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 "4ec1cedd4c7753512462f70b347c338a">
11 <!ENTITY ffmpeg-size "6.4 MB">
12 <!ENTITY ffmpeg-buildsize "106 MB">
13 <!ENTITY ffmpeg-time "2.4 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">Additional Downloads</bridgehead>
82 <itemizedlist spacing="compact">
83 <listitem>
84 <para>
85 Required patch:
86 <ulink url="&patch-root;/ffmpeg-&ffmpeg-version;-libavformat_cookies-1.patch"/>
87 </para>
88 </listitem>
89 </itemizedlist>
90
91 <bridgehead renderas="sect3">FFmpeg Dependencies</bridgehead>
92
93 <bridgehead renderas="sect4">Recommended</bridgehead>
94 <para role="recommended">
95 <xref linkend="yasm"/>,
96 <xref linkend="libass"/>,
97 <xref linkend="fdk-aac"/>,
98 <xref linkend="lame"/>,
99 <xref linkend="opus"/>,
100 <xref linkend="libtheora"/>,
101 <xref linkend="libvorbis"/>,
102 <xref linkend="libvpx"/>, and
103 <xref linkend="x264"/>
104 </para>
105
106 <bridgehead renderas="sect4">Recommended for desktop use</bridgehead>
107 <para>
108 <xref linkend="x-window-system"/>,
109 <xref linkend="alsa-lib"/>,
110 <xref linkend="sdl"/>,
111 <xref linkend="libva"/> and
112 <xref linkend="libvdpau"/> (with the corresponding driver package)
113 </para>
114
115 <bridgehead renderas="sect4">Optional</bridgehead>
116 <para role="optional">
117 <xref linkend="faac"/>,
118 <xref linkend="freetype2"/>,
119 <xref linkend="openjpeg"/>,
120 <xref linkend="pulseaudio"/>,
121 <xref linkend="speex"/>,
122 <xref linkend="xvid"/>,
123 <xref linkend="openssl"/>,
124 <xref linkend="fontconfig"/>,
125 <ulink url="http://www.piksel.org/frei0r">frei0r</ulink>,
126 <xref linkend="gnutls"/>,
127 <ulink url="http://www.ladspa.org/">LADSPA</ulink>,
128 <ulink url="http://www.libssh.org/">libssh</ulink>,
129 <ulink url="http://zapping.sourceforge.net/ZVBI/">ZVBI</ulink>,
130 <ulink url="http://tipok.org.ua/node/17">libaacplus</ulink>,
131 <ulink url="http://www.videolan.org/developers/libbluray.html">libbluray</ulink>,
132 <ulink url="http://caca.zoy.org/">libcaca</ulink>,
133 <ulink url="http://www.celt-codec.org/">libcelt</ulink>,
134 <ulink url="http://ftp.gnu.org/pub/gnu/libcdio/">libcdio</ulink>,
135 <ulink url="http://sourceforge.net/projects/libdc1394">libdc1394</ulink>,
136 <ulink url="http://www.speech.cs.cmu.edu/flite/">Flite</ulink>,
137 <ulink url="http://www.quut.com/gsm/">GSM</ulink>,
138 <ulink url="https://ieee1394.wiki.kernel.org/index.php/Libraries">libiec61883</ulink>,
139 <ulink url="https://github.com/dekkers/libilbc">libilbc</ulink>,
140 <ulink url="http://sourceforge.net/projects/modplug-xmms/">libmodplug</ulink>,
141 <ulink url="http://svn.mplayerhq.hu/nut/src/trunk/">libnut</ulink> (SVN checkout),
142 <ulink url="http://sourceforge.net/projects/opencore-amr">OpenCore AMR</ulink>,
143 <ulink url="http://opencv.org/">OpenCV</ulink>,
144 <ulink url="http://sourceforge.net/projects/librtmp">librtmp</ulink>,
145 <ulink url="http://diracvideo.org/">Schroedinger</ulink>,
146 <ulink url="http://www.twolame.org/">TwoLAME</ulink>,
147 <ulink url="http://linuxtv.org/downloads/v4l-utils/">Video4Linux</ulink>,
148 <ulink url="http://sourceforge.net/projects/opencore-amr/files/vo-aacenc/">vo-aaenc</ulink>,
149 <ulink url="http://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/">vo-amrwbenc</ulink>,
150 <ulink url="http://xavs.sourceforge.net/">libxavs</ulink> (SVN checkout),
151 <ulink url="http://kcat.strangesoft.net/openal-releases/">OpenAL</ulink>, and
152 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink> (to build HTML documentation)
153 </para>
154
155 <para condition="html" role="usernotes">
156 User Notes: <ulink url="&blfs-wiki;/ffmpeg"/>
157 </para>
158 </sect2>
159
160 <sect2 role="installation">
161 <title>Installation of FFmpeg</title>
162
163 <para>
164 If <application>Xorg</application> is installed in a prefix other
165 than <filename class='directory'>/usr</filename>, the build will fail. Fix
166 this by issuing the following command:
167 </para>
168
169<screen><userinput>export LIBRARY_PATH=$XORG_PREFIX/lib</userinput></screen>
170
171 <para>
172 Install <application>FFmpeg</application> by running the following
173 commands:
174 </para>
175
176<screen><userinput>patch -Np1 -i ../ffmpeg-&ffmpeg-version;-libavformat_cookies-1.patch &amp;&amp;
177sed -i 's/-lflite"/-lflite -lasound"/' configure &amp;&amp;
178./configure --prefix=/usr \
179 --enable-gpl \
180 --enable-version3 \
181 --enable-nonfree \
182 --disable-static \
183 --enable-shared \
184 --disable-debug \
185 --enable-libass \
186 --enable-libfdk-aac \
187 --enable-libmp3lame \
188 --enable-libopus \
189 --enable-libtheora \
190 --enable-libvorbis \
191 --enable-libvpx \
192 --enable-libx264 \
193 --enable-x11grab &amp;&amp;
194make &amp;&amp;
195gcc tools/qt-faststart.c -o tools/qt-faststart &amp;&amp;
196unset LIBRARY_PATH</userinput></screen>
197
198 <para>
199 HTML documentation was built in the previous step if
200 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink> is
201 installed. If the HTML was built (check for any
202 <filename class="extension">.html</filename> files in the
203 <filename class="directory">doc</filename> directory) and you have
204 <xref linkend="texlive"/> installed and wish to build PDF and
205 Postscript versions of the documentation, issue the following commands:
206 </para>
207
208<screen><userinput>pushd doc &amp;&amp;
209for DOCNAME in `basename -s .html *.html`
210do
211 texi2pdf -b $DOCNAME.texi &amp;&amp;
212 texi2dvi -b $DOCNAME.texi &amp;&amp;
213 dvips -o $DOCNAME.ps \
214 $DOCNAME.dvi
215done &amp;&amp;
216popd &amp;&amp;
217unset DOCNAME</userinput></screen>
218
219 <para>
220 If you have <xref linkend="doxygen"/> installed and wish to create the API
221 documentation (takes about 300 MB of space), issue the command
222 <command>doxygen doc/Doxyfile</command>.
223 </para>
224
225 <para>
226 To properly test the installation you must have <xref linkend="rsync"/>
227 installed and follow the instructions for the
228 <ulink url="http://ffmpeg.org/fate.html">
229 FFmpeg Automated Testing Environment</ulink>. Note that the BLFS team has
230 not performed this regression testing.
231 </para>
232
233 <para>
234 Now, as the <systemitem class="username">root</systemitem> user:
235 </para>
236
237<screen role="root"><userinput>make install &amp;&amp;
238install -v -m755 tools/qt-faststart /usr/bin &amp;&amp;
239install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
240install -v -m644 doc/*.txt \
241 /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
242
243 <para>
244 If HTML documentation was built, issue the following command to install it:
245 </para>
246
247<screen role="root"><userinput>install -v -m644 doc/*.html \
248 /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
249
250 <para>
251 If you used <command>doxygen</command> to create the API documentation,
252 install it (another 300 MB of space) by issuing the following commands
253 as the <systemitem class="username">root</systemitem> user:
254 </para>
255
256<screen role="root"><userinput>install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
257install -v -m644 doc/doxy/html/* \
258 /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
259
260 </sect2>
261
262 <sect2 role="commands">
263 <title>Command Explanations</title>
264
265 <para>
266 <command>sed -i ...</command>: This command adds the
267 <application>ALSA</application> library to the
268 <application>Flite</application> <envar>LDFLAGS</envar> variable and
269 enables the discovery of <application>Flite</application>.
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-&ffmpeg-version;
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.