source: multimedia/videoutils/ffmpeg.xml@ 457568e

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 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 457568e was 457568e, checked in by Bruce Dubbs <bdubbs@…>, 12 years ago

Update to ffmpeg-1.0.
Tag some packages for 7.2.

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

  • Property mode set to 100644
File size: 17.6 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 "3ed526cea20c1bffb5a37f7730f710bd">
11 <!ENTITY ffmpeg-size "6.2 MB">
12 <!ENTITY ffmpeg-buildsize "90 MB (plus 805 MB for tests)">
13 <!ENTITY ffmpeg-time "3.2 SBU (plus 2.0 SBU for tests)">
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 &lfs72_checked;
46
47 <bridgehead renderas="sect3">Package Information</bridgehead>
48 <itemizedlist spacing="compact">
49 <listitem>
50 <para>Download (HTTP): <ulink url="&ffmpeg-download-http;"/></para>
51 </listitem>
52 <listitem>
53 <para>Download (FTP): <ulink url="&ffmpeg-download-ftp;"/></para>
54 </listitem>
55 <listitem>
56 <para>Download MD5 sum: &ffmpeg-md5sum;</para>
57 </listitem>
58 <listitem>
59 <para>Download size: &ffmpeg-size;</para>
60 </listitem>
61 <listitem>
62 <para>Estimated disk space required: &ffmpeg-buildsize;</para>
63 </listitem>
64 <listitem>
65 <para>Estimated build time: &ffmpeg-time;</para>
66 </listitem>
67 </itemizedlist>
68
69 <bridgehead renderas="sect3">FFmpeg Dependencies</bridgehead>
70
71 <bridgehead renderas="sect4">Recommended</bridgehead>
72 <para role="recommended">
73 <xref linkend="faac"/>,
74 <xref linkend="freetype2"/>,
75 <xref linkend="lame"/>,
76 <xref linkend="libtheora"/>,
77 <xref linkend="libvorbis"/>,
78 <xref linkend="libvpx"/>,
79 <xref linkend="openjpeg"/>,
80 <xref linkend="openssl"/>,
81 <xref linkend="sdl"/>,
82 <xref linkend="speex"/>,
83 <xref linkend="xorg7-lib"/>,
84 <xref linkend="xvid"/>, and
85 <xref linkend="yasm"/>
86 </para>
87
88 <bridgehead renderas="sect4">Optional</bridgehead>
89 <para role="optional">
90 <xref linkend="gnutls"/>,
91 <ulink url="http://www.videolan.org/developers/x264.html">x264</ulink>,
92 <ulink url="http://sourceforge.net/projects/opencore-amr">OpenCore AMR</ulink>,
93 <ulink url="http://libgsm.sourcearchive.com/">GSM</ulink>,
94 <ulink url="http://sourceforge.net/projects/libdc1394">libdc1394</ulink>,
95 <ulink url="http://svn.mplayerhq.hu/nut/src/trunk/">libnut</ulink> (SVN checkout),
96 <ulink url="http://xavs.sourceforge.net/">libxavs</ulink> (SVN checkout),
97 <ulink url="http://sourceforge.net/projects/librtmp">librtmp</ulink>,
98 <ulink url="http://diracvideo.org/">libschroedinger</ulink>,
99 <ulink url="http://medialibrary.sourceforge.net/">MediaLibrary</ulink>,
100 <ulink url="http://connect.creativelabs.com/openal/default.aspx">OpenAL</ulink>,
101 <ulink url="http://tipok.org.ua/node/17">libaacplus</ulink>,
102 <ulink url="http://code.google.com/p/libass/">libass</ulink>,
103 <ulink url="http://www.celt-codec.org/">libcelt</ulink>,
104 <ulink url="http://ftp.gnu.org/pub/gnu/libcdio/">libcdio</ulink>,
105 <ulink url="http://sourceforge.net/projects/opencvlibrary/">libopencv</ulink>,
106 <ulink url="http://sourceforge.net/projects/libdc1394/">libdc1394</ulink>,
107 <ulink url="http://linuxtv.org/downloads/v4l-utils/">libv4l2</ulink>, and
108 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink>
109 (to build HTML documentation).</para>
110
111 <bridgehead renderas="sect4">Optional (For Hardware Video Decoding)</bridgehead>
112 <para role="optional">
113 <ulink url="http://cgit.freedesktop.org/vaapi/libva/">VA API</ulink>
114 with corresponding drivers, including:
115 <ulink url="http://cgit.freedesktop.org/vaapi/intel-driver/">Intel Driver (i965 chipsets only)</ulink>,
116 <ulink url="http://www.splitted-desktop.com/static/libva/xvba-video/">XVBA Driver for Radeon Cards</ulink> and
117 <ulink url="http://cgit.freedesktop.org/vaapi/vdpau-driver/">VDPAU Driver for NVidia Cards</ulink>
118 (requires <ulink url="http://cgit.freedesktop.org/~aplattner/libvdpau/">libvdpau</ulink>).
119 </para>
120
121 <para condition="html" role="usernotes">
122 User Notes: <ulink url="&blfs-wiki;/ffmpeg"/>
123 </para>
124 </sect2>
125
126 <sect2 role="installation">
127 <title>Installation of FFmpeg</title>
128
129 <para>If you have not installed <application>Xorg</application> in
130 <filename class='directory'>/usr</filename>, tell <filename>configure</filename>
131 where to find it:</para>
132
133<screen><userinput>export LIBRARY_PATH=$XORG_PREFIX/lib</userinput></screen>
134
135 <para>
136 Install <application>FFmpeg</application> by running the following
137 commands:
138 </para>
139
140<screen><userinput>./configure --prefix=/usr \
141 --disable-debug \
142 --enable-shared \
143 --disable-static \
144 --enable-gpl \
145 --enable-x11grab \
146 --enable-postproc \
147 --enable-version3 \
148 --enable-nonfree \
149 --enable-libfaac \
150 --enable-libfreetype \
151 --enable-libmp3lame \
152 --enable-libopenjpeg \
153 --enable-libspeex \
154 --enable-libtheora \
155 --enable-libvorbis \
156 --enable-libvpx \
157 --enable-libxvid \
158 --enable-libpulse \
159 --enable-openssl &amp;&amp;
160make</userinput></screen>
161
162<!--
163 <para>To convert the docs to html use the following commands:</para>
164
165<screen><userinput>sed -i '/@top/d;/ignore$/d' doc/*.texi &amp;&amp;
166sed -i '/@include avoptions/d' doc/avtools-common-opts.texi &amp;&amp;
167
168for DOC in doc/*.texi; do
169 makeinfo - -html - -no-split -o ${DOC%texi}html ${DOC}
170done</userinput></screen>
171-->
172
173 <para>
174 If you have <xref linkend="doxygen"/> installed and wish to create the API
175 documentation (takes about 444 MB of space, 26 SBU), issue the command
176 <command>doxygen</command>.
177 </para>
178
179 <para>Now, as the <systemitem class="username">root</systemitem>
180 user:</para>
181
182<screen role="root"><userinput>make install &amp;&amp;
183mkdir -p /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
184cp -v doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
185
186 <para>The tests, if desired, need to be run after installation.
187 To test the package, run <command>make check</command>.</para>
188
189 <para>
190 The <application>FFmpeg</application> source contains a tool called
191 <command>qt-faststart</command> that can modify QuickTime formatted movies
192 (mov or mp4) so that the header information is located at the beginning of
193 the file instead of the end. This allows video players to begin playing
194 the content before the entire file has been downloaded. An example of
195 where this is useful for preparing videos before uploading them to
196 YouTube. If need <command>qt-faststart</command>, you can compile it with
197 gcc. As the <systemitem class="username">root</systemitem> user:
198 </para>
199
200<screen><userinput>gcc tools/qt-faststart.c -o /usr/bin/qt-faststart</userinput></screen>
201
202 <para>
203 If you used <command>doxygen</command> to create the API documentation,
204 install it by issuing the following commands as the
205 <systemitem class="username">root</systemitem> user:
206 </para>
207
208<screen role="root"><userinput>mkdir -p /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
209cp -av doxy/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
210 </sect2>
211
212 <sect2 role="commands">
213 <title>Command Explanations</title>
214
215 <para>
216 <option>--enable-gpl</option>: This switch enables the use of GPL code and
217 permits support for postprocessing, swscale and many other features.
218 </para>
219
220 <para>
221 <option>--enable-shared</option>: This switch is needed to build the
222 shared libraries, otherwise only static libraries are built and installed.
223 </para>
224
225 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
226 href="../../xincludes/static-libraries.xml"/>
227
228 <para>
229 <option>--enable-<replaceable>&lt;codec&gt;</replaceable></option>:
230 <application>FFmpeg</application> comes with code to compile decoders for
231 almost every codec you could think of. The only reason to enable a
232 specific codec (and make <application>FFmpeg</application> link to the
233 prerequisite shared library installed on your system) is to make ffmpeg
234 compile an <emphasis>encoder</emphasis> for that codec.
235 <application>FFmpeg</application> is an excellent collection of decoders.
236 If you just want to use <application>FFmpeg</application> to watch video
237 or listen to music (via other applications like
238 <application>Gstreamer</application> or Xine) then you will not benefit
239 from linking FFmpeg to another library.
240 </para>
241
242 </sect2>
243
244 <sect2 role="configuration">
245 <title>Configuring FFmpeg</title>
246
247 <sect3 id="ffmpeg-config">
248 <title>Config Files</title>
249
250 <para><filename>/etc/ffserver.conf</filename> and
251 <filename>~/.ffmpeg/ffserver-config</filename></para>
252
253 <indexterm zone="ffmpeg ffmpeg-config">
254 <primary
255 sortas="e-AA.ffmpeg-ffserver-config">~/.ffmpeg/ffserver-config</primary>
256 </indexterm>
257
258 <indexterm zone="ffmpeg ffmpeg-config">
259 <primary sortas="e-etc-ffserver.conf">/etc/ffserver.conf</primary>
260 </indexterm>
261
262 <para>
263 You'll find a sample <command>ffserver</command> configuration file at
264 <filename>doc/ffserver.conf</filename> in the source tree.
265 </para>
266 </sect3>
267 </sect2>
268
269 <sect2 role="content">
270 <title>Contents</title>
271
272 <segmentedlist>
273 <segtitle>Installed Programs</segtitle>
274 <segtitle>Installed Libraries</segtitle>
275 <segtitle>Installed Directories</segtitle>
276
277 <seglistitem>
278 <seg>
279 ffmpeg,
280 ffplay,
281 ffprobe,
282 ffserver and
283 qt-faststart
284 </seg>
285 <seg>
286 libavcodec.so,
287 libavdevice.so,
288 libavfilter.so,
289 libavformat.so,
290 libavutil.so,
291 libpostproc.so,
292 libswresample and
293 libswscale.so
294 </seg>
295 <seg>
296 /usr/include/libavcodec,
297 /usr/include/libavdevice,
298 /usr/include/libavfilter,
299 /usr/include/libavformat,
300 /usr/include/libavutil,
301 /usr/include/libpostproc,
302 /usr/include/libswresample
303 /usr/include/libswscale,
304 /usr/share/ffmpeg and
305 /usr/share/doc/ffmpeg-&ffmpeg-version;
306 </seg>
307 </seglistitem>
308 </segmentedlist>
309
310 <variablelist>
311 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
312 <?dbfo list-presentation="list"?>
313 <?dbhtml list-presentation="table"?>
314
315 <varlistentry id="ffmpeg-prog">
316 <term><command>ffmpeg</command></term>
317 <listitem>
318 <para>
319 is a command-line tool to convert video files, network streams and
320 input from a TV card to several video formats.
321 </para>
322 <indexterm zone="ffmpeg ffmpeg-prog">
323 <primary sortas="b-ffmpeg">ffmpeg</primary>
324 </indexterm>
325 </listitem>
326 </varlistentry>
327
328 <varlistentry id="ffplay">
329 <term><command>ffplay</command></term>
330 <listitem>
331 <para>
332 is a very simple and portable media player using the
333 <filename>ffmpeg</filename> libraries and the SDL library.
334 </para>
335 <indexterm zone="ffmpeg ffplay">
336 <primary sortas="b-ffplay">ffplay</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="ffprobe">
342 <term><command>ffprobe</command></term>
343 <listitem>
344 <para>
345 gathers information from multimedia streams and prints it in a human
346 and machine-readable fashion.
347 </para>
348 <indexterm zone="ffmpeg ffprobe">
349 <primary sortas="b-ffprobe">ffprobe</primary>
350 </indexterm>
351 </listitem>
352 </varlistentry>
353
354 <varlistentry id="ffserver">
355 <term><command>ffserver</command></term>
356 <listitem>
357 <para>
358 is a streaming server for everything that <command>ffmpeg</command>
359 could use as input (files, streams, TV card input, webcam, etc).
360 </para>
361 <indexterm zone="ffmpeg ffserver">
362 <primary sortas="b-ffserver">ffserver</primary>
363 </indexterm>
364 </listitem>
365 </varlistentry>
366
367 <varlistentry id="qt-faststart">
368 <term><command>qt-faststart</command></term>
369 <listitem>
370 <para>
371 moves the index file to the front of quicktime (mov/mp4) videos.
372 </para>
373 <indexterm zone="ffmpeg qt-faststart">
374 <primary sortas="b-qt-faststart">qt-faststart</primary>
375 </indexterm>
376 </listitem>
377 </varlistentry>
378
379 <varlistentry id="libavcodec">
380 <term><filename class="libraryfile">libavcodec.so</filename></term>
381 <listitem>
382 <para>
383 is a library containing the <application>FFmpeg</application> codecs
384 (both encoding and decoding).
385 </para>
386 <indexterm zone="ffmpeg libavcodec">
387 <primary sortas="c-libavcodec">libavcodec.so</primary>
388 </indexterm>
389 </listitem>
390 </varlistentry>
391
392 <varlistentry id="libavdevice">
393 <term><filename class="libraryfile">libavdevice.so</filename></term>
394 <listitem>
395 <para>
396 is the <application>FFmpeg</application> device handling library.
397 </para>
398 <indexterm zone="ffmpeg libavdevice">
399 <primary sortas="c-libavdevice">libavdevice.so</primary>
400 </indexterm>
401 </listitem>
402 </varlistentry>
403
404 <varlistentry id="libavfilter">
405 <term><filename class="libraryfile">libavfilter.so</filename></term>
406 <listitem>
407 <para>
408 is a library of filters that can alter video or audio between the
409 decoder and the encoder (or output).
410 </para>
411 <indexterm zone="ffmpeg libavfilter">
412 <primary sortas="c-libavfilter">libavfilter.so</primary>
413 </indexterm>
414 </listitem>
415 </varlistentry>
416
417 <varlistentry id="libavformat">
418 <term><filename class="libraryfile">libavformat.so</filename></term>
419 <listitem>
420 <para>
421 is a library containing the file formats handling (mux and demux
422 code for several formats) used by <command>ffplay</command> as well
423 as allowing the generation of audio or video streams.
424 </para>
425 <indexterm zone="ffmpeg libavformat">
426 <primary sortas="c-libavformat">libavformat.so</primary>
427 </indexterm>
428 </listitem>
429 </varlistentry>
430
431 <varlistentry id="libavutil">
432 <term><filename class="libraryfile">libavutil.so</filename></term>
433 <listitem>
434 <para>is the <application>FFmpeg</application> utility library.</para>
435 <indexterm zone="ffmpeg libavutil">
436 <primary sortas="c-libavutil">libavutil.so</primary>
437 </indexterm>
438 </listitem>
439 </varlistentry>
440
441 <varlistentry id="libpostproc">
442 <term><filename class="libraryfile">libpostproc.so</filename></term>
443 <listitem>
444 <para>
445 is the <application>FFmpeg</application> post processing library.
446 </para>
447 <indexterm zone="ffmpeg libpostproc">
448 <primary sortas="c-libpostproc">libpostproc.so</primary>
449 </indexterm>
450 </listitem>
451 </varlistentry>
452
453 <varlistentry id="libswresample">
454 <term><filename class="libraryfile">libswresample.so</filename></term>
455 <listitem>
456 <para>
457 is the <application>FFmpeg</application> audio rescaling library,
458 it contains functions for converting audio sample formats.
459 </para>
460 <indexterm zone="ffmpeg libswresample">
461 <primary sortas="c-libswresample">libswresample.so</primary>
462 </indexterm>
463 </listitem>
464 </varlistentry>
465
466 <varlistentry id="libswscale">
467 <term><filename class="libraryfile">libswscale.so</filename></term>
468 <listitem>
469 <para>
470 is the <application>FFmpeg</application> image rescaling library.
471 </para>
472 <indexterm zone="ffmpeg libswscale">
473 <primary sortas="c-libswscale">libswscale.so</primary>
474 </indexterm>
475 </listitem>
476 </varlistentry>
477 </variablelist>
478 </sect2>
479</sect1>
Note: See TracBrowser for help on using the repository browser.