source: multimedia/videoutils/ffmpeg.xml@ 77b4c621

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 77b4c621 was 77b4c621, checked in by Andrew Benton <andy@…>, 12 years ago

xine-lib needs --disable-vcd without VCDImager installed

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

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