source: multimedia/videoutils/ffmpeg.xml@ b53c153

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 12.2 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 gimp3 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/for-12.3 xry111/intltool xry111/llvm18 xry111/soup3 xry111/spidermonkey128 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since b53c153 was b53c153, checked in by Krejzi <krejzi@…>, 12 years ago

Some more LFS 7.2 checked.

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

  • Property mode set to 100644
File size: 17.1 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 "ff8cb914f657e164dd60ea1008b555a8">
11 <!ENTITY ffmpeg-size "5.8 MB">
12 <!ENTITY ffmpeg-buildsize "256 MB">
13 <!ENTITY ffmpeg-time "3.9 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 --enable-gpl \
142 --enable-shared --disable-static &amp;&amp;
143make</userinput></screen>
144
145 <para>To convert the docs to html use the following commands:</para>
146
147<screen><userinput>cd doc &amp;&amp;
148sed -i '/@top/d;/ignore$/d' *.texi &amp;&amp;
149sed -i '/@include avoptions/d' avtools-common-opts.texi &amp;&amp;
150for DOC in *.texi
151do makeinfo --html --no-split -o ${DOC%texi}html ${DOC}
152done &amp;&amp;
153cd ..</userinput></screen>
154
155 <para>
156 If you have <xref linkend="doxygen"/> installed and wish to create the API
157 documentation (takes about 150 MB of space), issue the command
158 <command>doxygen</command>.
159 </para>
160
161 <para>This package does not come with a test suite.</para>
162
163 <para>Now, as the <systemitem class="username">root</systemitem>
164 user:</para>
165
166<screen role="root"><userinput>make install &amp;&amp;
167make install-man &amp;&amp;
168mkdir /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
169cp doc/*.html doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
170
171 <para>
172 The <application>FFmpeg</application> source contains a tool called
173 <command>qt-faststart</command> that can modify QuickTime formatted movies
174 (mov or mp4) so that the header information is located at the beginning of
175 the file instead of the end. This allows video players to begin playing
176 the content before the entire file has been downloaded. An example of
177 where this is useful for preparing videos before uploading them to
178 YouTube. If need <command>qt-faststart</command>, you can compile it with
179 gcc. As the <systemitem class="username">root</systemitem> user:
180 </para>
181
182<screen><userinput>gcc tools/qt-faststart.c -o /usr/bin/qt-faststart</userinput></screen>
183
184 <para>
185 If you used <command>doxygen</command> to create the API documentation,
186 install it by issuing the following commands as the
187 <systemitem class="username">root</systemitem> user:
188 </para>
189
190<screen role="root"><userinput>mkdir /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
191cp -v doxy/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
192 </sect2>
193
194 <sect2 role="commands">
195 <title>Command Explanations</title>
196
197 <para>
198 <option>--enable-gpl</option>: This switch enables the use of GPL code and
199 permits support for postprocessing, swscale and many other features.
200 </para>
201
202 <para>
203 <option>--enable-shared</option>: This switch is needed to build the
204 shared libraries, otherwise only static libraries are built and installed.
205 </para>
206
207 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
208 href="../../xincludes/static-libraries.xml"/>
209
210 <para>
211 <option>--enable-<replaceable>&lt;codec&gt;</replaceable></option>:
212 <application>FFmpeg</application> comes with code to compile decoders for
213 almost every codec you could think of. The only reason to enable a
214 specific codec (and make <application>FFmpeg</application> link to the
215 prerequisite shared library installed on your system) is to make ffmpeg
216 compile an <emphasis>encoder</emphasis> for that codec.
217 <application>FFmpeg</application> is an excellent collection of decoders.
218 If you just want to use <application>FFmpeg</application> to watch video
219 or listen to music (via other applications like
220 <application>Gstreamer</application> or Xine) then you will not benefit
221 from linking FFmpeg to another library.
222 </para>
223
224 <para>
225 <command>sed -i '/@top/d;/ignore$/d' *.texi</command> and
226 <command>sed -i '/@include avoptions/d' avtools-common-opts.texi</command>:
227 these seds work around problems with the .texi files.
228 </para>
229
230 <para>
231 <command>makeinfo --html --no-split -o ${DOC%texi}html ${DOC}</command>:
232 this converts the .texi files into html.
233 </para>
234 </sect2>
235
236 <sect2 role="configuration">
237 <title>Configuring FFmpeg</title>
238
239 <sect3 id="ffmpeg-config">
240 <title>Config Files</title>
241
242 <para><filename>/etc/ffserver.conf</filename> and
243 <filename>~/.ffmpeg/ffserver-config</filename></para>
244
245 <indexterm zone="ffmpeg ffmpeg-config">
246 <primary
247 sortas="e-AA.ffmpeg-ffserver-config">~/.ffmpeg/ffserver-config</primary>
248 </indexterm>
249
250 <indexterm zone="ffmpeg ffmpeg-config">
251 <primary sortas="e-etc-ffserver.conf">/etc/ffserver.conf</primary>
252 </indexterm>
253
254 <para>
255 You'll find a sample <command>ffserver</command> configuration file at
256 <filename>doc/ffserver.conf</filename> in the source tree.
257 </para>
258 </sect3>
259 </sect2>
260
261 <sect2 role="content">
262 <title>Contents</title>
263
264 <segmentedlist>
265 <segtitle>Installed Programs</segtitle>
266 <segtitle>Installed Libraries</segtitle>
267 <segtitle>Installed Directories</segtitle>
268
269 <seglistitem>
270 <seg>
271 ffmpeg,
272 ffplay,
273 ffprobe,
274 ffserver and
275 qt-faststart
276 </seg>
277 <seg>
278 libavcodec.so,
279 libavdevice.so,
280 libavfilter.so,
281 libavformat.so,
282 libavutil.so,
283 libpostproc.so,
284 libswresample and
285 libswscale.so
286 </seg>
287 <seg>
288 /usr/include/libavcodec,
289 /usr/include/libavdevice,
290 /usr/include/libavfilter,
291 /usr/include/libavformat,
292 /usr/include/libavutil,
293 /usr/include/libpostproc,
294 /usr/include/libswresample
295 /usr/include/libswscale,
296 /usr/share/ffmpeg and
297 /usr/share/doc/ffmpeg-&ffmpeg-version;
298 </seg>
299 </seglistitem>
300 </segmentedlist>
301
302 <variablelist>
303 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
304 <?dbfo list-presentation="list"?>
305 <?dbhtml list-presentation="table"?>
306
307 <varlistentry id="ffmpeg-prog">
308 <term><command>ffmpeg</command></term>
309 <listitem>
310 <para>
311 is a command-line tool to convert video files, network streams and
312 input from a TV card to several video formats.
313 </para>
314 <indexterm zone="ffmpeg ffmpeg-prog">
315 <primary sortas="b-ffmpeg">ffmpeg</primary>
316 </indexterm>
317 </listitem>
318 </varlistentry>
319
320 <varlistentry id="ffplay">
321 <term><command>ffplay</command></term>
322 <listitem>
323 <para>
324 is a very simple and portable media player using the
325 <filename>ffmpeg</filename> libraries and the SDL library.
326 </para>
327 <indexterm zone="ffmpeg ffplay">
328 <primary sortas="b-ffplay">ffplay</primary>
329 </indexterm>
330 </listitem>
331 </varlistentry>
332
333 <varlistentry id="ffprobe">
334 <term><command>ffprobe</command></term>
335 <listitem>
336 <para>
337 gathers information from multimedia streams and prints it in a human
338 and machine-readable fashion.
339 </para>
340 <indexterm zone="ffmpeg ffprobe">
341 <primary sortas="b-ffprobe">ffprobe</primary>
342 </indexterm>
343 </listitem>
344 </varlistentry>
345
346 <varlistentry id="ffserver">
347 <term><command>ffserver</command></term>
348 <listitem>
349 <para>
350 is a streaming server for everything that <command>ffmpeg</command>
351 could use as input (files, streams, TV card input, webcam, etc).
352 </para>
353 <indexterm zone="ffmpeg ffserver">
354 <primary sortas="b-ffserver">ffserver</primary>
355 </indexterm>
356 </listitem>
357 </varlistentry>
358
359 <varlistentry id="qt-faststart">
360 <term><command>qt-faststart</command></term>
361 <listitem>
362 <para>
363 moves the index file to the front of quicktime (mov/mp4) videos.
364 </para>
365 <indexterm zone="ffmpeg qt-faststart">
366 <primary sortas="b-qt-faststart">qt-faststart</primary>
367 </indexterm>
368 </listitem>
369 </varlistentry>
370
371 <varlistentry id="libavcodec">
372 <term><filename class="libraryfile">libavcodec.so</filename></term>
373 <listitem>
374 <para>
375 is a library containing the <application>FFmpeg</application> codecs
376 (both encoding and decoding).
377 </para>
378 <indexterm zone="ffmpeg libavcodec">
379 <primary sortas="c-libavcodec">libavcodec.so</primary>
380 </indexterm>
381 </listitem>
382 </varlistentry>
383
384 <varlistentry id="libavdevice">
385 <term><filename class="libraryfile">libavdevice.so</filename></term>
386 <listitem>
387 <para>
388 is the <application>FFmpeg</application> device handling library.
389 </para>
390 <indexterm zone="ffmpeg libavdevice">
391 <primary sortas="c-libavdevice">libavdevice.so</primary>
392 </indexterm>
393 </listitem>
394 </varlistentry>
395
396 <varlistentry id="libavfilter">
397 <term><filename class="libraryfile">libavfilter.so</filename></term>
398 <listitem>
399 <para>
400 is a library of filters that can alter video or audio between the
401 decoder and the encoder (or output).
402 </para>
403 <indexterm zone="ffmpeg libavfilter">
404 <primary sortas="c-libavfilter">libavfilter.so</primary>
405 </indexterm>
406 </listitem>
407 </varlistentry>
408
409 <varlistentry id="libavformat">
410 <term><filename class="libraryfile">libavformat.so</filename></term>
411 <listitem>
412 <para>
413 is a library containing the file formats handling (mux and demux
414 code for several formats) used by <command>ffplay</command> as well
415 as allowing the generation of audio or video streams.
416 </para>
417 <indexterm zone="ffmpeg libavformat">
418 <primary sortas="c-libavformat">libavformat.so</primary>
419 </indexterm>
420 </listitem>
421 </varlistentry>
422
423 <varlistentry id="libavutil">
424 <term><filename class="libraryfile">libavutil.so</filename></term>
425 <listitem>
426 <para>is the <application>FFmpeg</application> utility library.</para>
427 <indexterm zone="ffmpeg libavutil">
428 <primary sortas="c-libavutil">libavutil.so</primary>
429 </indexterm>
430 </listitem>
431 </varlistentry>
432
433 <varlistentry id="libpostproc">
434 <term><filename class="libraryfile">libpostproc.so</filename></term>
435 <listitem>
436 <para>
437 is the <application>FFmpeg</application> post processing library.
438 </para>
439 <indexterm zone="ffmpeg libpostproc">
440 <primary sortas="c-libpostproc">libpostproc.so</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
444
445 <varlistentry id="libswresample">
446 <term><filename class="libraryfile">libswresample.so</filename></term>
447 <listitem>
448 <para>
449 is the <application>FFmpeg</application> audio rescaling library,
450 it contains functions for converting audio sample formats.
451 </para>
452 <indexterm zone="ffmpeg libswresample">
453 <primary sortas="c-libswresample">libswresample.so</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
458 <varlistentry id="libswscale">
459 <term><filename class="libraryfile">libswscale.so</filename></term>
460 <listitem>
461 <para>
462 is the <application>FFmpeg</application> image rescaling library.
463 </para>
464 <indexterm zone="ffmpeg libswscale">
465 <primary sortas="c-libswscale">libswscale.so</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>
469 </variablelist>
470 </sect2>
471</sect1>
Note: See TracBrowser for help on using the repository browser.