source: multimedia/videoutils/ffmpeg.xml@ faec3f7

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

ffmpeg-0.10.3

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

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