source: multimedia/videoutils/ffmpeg.xml@ fcd201bd

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

Update to ffmpeg-0.11.2

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

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