source: multimedia/videoutils/ffmpeg.xml@ f4b5ef9

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

tweaked the description of qt-faststart
thanks to Jeremy Huntwork

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

  • Property mode set to 100644
File size: 15.8 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 "http://ffmpeg.org/releases/ffmpeg-&ffmpeg-version;.tar.bz2">
8 <!ENTITY ffmpeg-download-ftp " ">
9 <!ENTITY ffmpeg-md5sum "b4ef1fa6506750569fdb64a0f0a646a8">
10 <!ENTITY ffmpeg-size "4.3 MB">
11 <!ENTITY ffmpeg-buildsize "178 MB (built with recommended dependency)">
12 <!ENTITY ffmpeg-time "2.5 SBU">
13]>
14
15<sect1 id="ffmpeg" xreflabel="FFmpeg-&ffmpeg-version;">
16 <?dbhtml filename="ffmpeg.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>FFmpeg-&ffmpeg-version;</title>
24
25 <indexterm zone="ffmpeg">
26 <primary sortas="a-FFmpeg">FFmpeg</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to FFmpeg</title>
31
32 <para><application>FFmpeg</application> is a solution to record, convert and
33 stream audio and video. It is a very fast video and audio converter and it
34 can also acquire from a live audio/video source. Designed to be intuitive,
35 the command-line interface (<command>ffmpeg</command>) tries to figure out
36 all the parameters, when possible. <application>FFmpeg</application> can
37 also convert from any sample rate to any other, and resize video on the fly
38 with a high quality polyphase filter. <application>FFmpeg</application> can
39 use a video4linux compatible video source and any Open Sound System audio
40 source.</para>
41
42 <para>The developers of this package do not make releases very often, so you
43 may wish to use a snapshot instead of this release. If you do that, you
44 must expect the acceptable <command>configure</command> switches, and the
45 dependencies, to change.</para>
46
47 &lfs70_checked;
48
49 <bridgehead renderas="sect3">Package Information</bridgehead>
50 <itemizedlist spacing="compact">
51 <listitem>
52 <para>Download (HTTP): <ulink url="&ffmpeg-download-http;"/></para>
53 </listitem>
54 <listitem>
55 <para>Download (FTP): <ulink url="&ffmpeg-download-ftp;"/></para>
56 </listitem>
57 <listitem>
58 <para>Download MD5 sum: &ffmpeg-md5sum;</para>
59 </listitem>
60 <listitem>
61 <para>Download size: &ffmpeg-size;</para>
62 </listitem>
63 <listitem>
64 <para>Estimated disk space required: &ffmpeg-buildsize;</para>
65 </listitem>
66 <listitem>
67 <para>Estimated build time: &ffmpeg-time;</para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">FFmpeg Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Recommended</bridgehead>
74 <para role="recommended"><xref linkend="yasm"/></para>
75
76 <bridgehead renderas="sect4">Optional</bridgehead>
77 <para role="optional"><xref linkend="faad2"/>, <xref linkend="lame"/>,
78 <xref linkend="libtheora"/>, <xref linkend="libvorbis"/>,
79 <xref linkend="libvpx"/>, <xref linkend="x-window-system"/>,
80 <ulink url="http://www.videolan.org/developers/x264.html">x264</ulink>
81 (x264 needs <ulink url="http://www.tortall.net/projects/yasm/">yasm</ulink>
82 unless you configure it with <literal>--disable-asm</literal>),
83 <xref linkend="xvid"/>,
84 <ulink url="http://www.penguin.cz/~utx/amr">AMR narrowband
85 (floating point)</ulink>,
86 <ulink url="http://www.penguin.cz/~utx/amr">AMR wideband</ulink>,
87 <xref linkend="faac"/>, <xref linkend="freetype2"/>,
88 <ulink url="http://libgsm.sourcearchive.com/">GSM</ulink>,
89 <xref linkend="liba52"/>,
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://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 url="http://www.openjpeg.org">OpenJPEG</ulink>
97 (<application>FFmpeg</application> includes code for it's own jpeg2000
98 encoder and decoder which is enabled by default), <xref linkend="speex"/>,
99 <!-- <xref linkend="tetex"/>, --> <xref linkend="sdl"/> and
100 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink>
101 (to build HTML documentation).</para>
102
103 <para condition="html" role="usernotes">User Notes:
104 <ulink url="&blfs-wiki;/ffmpeg"/></para>
105
106 </sect2>
107
108 <sect2 role="installation">
109 <title>Installation of FFmpeg</title>
110
111 <para>Install <application>FFmpeg</application> by running the following
112 commands:</para>
113
114<screen><userinput>mkdir build &amp;&amp;
115cd build &amp;&amp;
116../configure --prefix=/usr --enable-shared --disable-static --enable-gpl &amp;&amp;
117make</userinput></screen>
118
119 <para>The Ffmpeg source contains a tool called
120 <command>qt-faststart</command> that can modify QuickTime formatted movies
121 (mov or mp4) so that the header information is located at the beginning of
122 the file instead of the end. This allows video players to begin playing the
123 content before the entire file has been downloaded. An example of where
124 this is useful for preparing videos before uploading them to YouTube. If
125 need <command>qt-faststart</command>, you can compile it with gcc:</para>
126
127<screen><userinput>gcc ../tools/qt-faststart.c -o qt-faststart</userinput></screen>
128
129 <para>If you have <xref linkend="doxygen"/> installed and wish to create
130 the API documentation (takes about 150 MB of space), issue the command
131 <command>doxygen</command>.</para>
132
133 <para>This package does not come with a working test suite.</para>
134
135 <!-- make check is currently b0rken -->
136
137 <para>Now, as the <systemitem class="username">root</systemitem>
138 user:</para>
139
140<screen role="root"><userinput>make install &amp;&amp;
141make install-man &amp;&amp;
142mkdir /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
143cp ../doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
144texi2html --version &amp;&gt; /dev/null &amp;&amp;
145cp doc/*.html /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
146
147 <para>If you used <command>doxygen</command> to create the API
148 documentation, install it by issuing the following commands as the
149 <systemitem class="username">root</systemitem> user:</para>
150
151<screen role="root"><userinput>mkdir /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
152cp -v doxy/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
153
154 <para>If you compiled <command>qt-faststart</command> install it as the
155 <systemitem class="username">root</systemitem> user:</para>
156
157<screen role="root"><userinput>cp qt-faststart /usr/bin</userinput></screen>
158
159 </sect2>
160
161 <sect2 role="commands">
162 <title>Command Explanations</title>
163
164 <para><command>mkdir build</command> and <command>cd build</command>:
165 This ensures that we compile the <application>FFmpeg</application> object
166 files in a separate directory to the source files.</para>
167
168 <para><option>--enable-shared</option>: This switch is needed to
169 build the shared libraries, otherwise only static libraries are built
170 and installed.</para>
171
172 <para><option>--disable-static</option>: This switch prevents the static
173 libraries from being built.</para>
174
175 <para><option>--enable-gpl</option>: This switch enables the
176 use of GPL code and permits support for postprocessing, swscale and many
177 other features.</para>
178
179 <para><option>--enable-<replaceable>&lt;codec&gt;</replaceable></option>:
180 <application>FFmpeg</application> comes with code to compile decoders for
181 almost every codec you could think of. The only reason to enable a specific
182 codec (and make <application>FFmpeg</application> link to the prerequisite
183 shared library installed on your system) is to make ffmpeg compile an
184 <emphasis>encoder</emphasis> for that codec. Encoding video is a
185 specialist job. If that is what you want to do with
186 <command>ffmpeg</command>, study the output of <command>configure
187 --help</command>. Remember, the dependencies all install their own encoders
188 (that are often better than <application>FFmpeg</application>'s).
189 <application>FFmpeg</application> is an excellent collection of decoders.
190 If you just want to use <application>FFmpeg</application> to watch video or
191 listen to music (via other applications like
192 <application>Gstreamer</application>) then you will not benefit from
193 linking it to another library.</para>
194
195 <para><option>--disable-yasm</option>: use this option if you've not
196 installed yasm and you want what configure describes as "a crippled
197 build".</para>
198
199 </sect2>
200
201 <sect2 role="configuration">
202 <title>Configuring FFmpeg</title>
203
204 <sect3 id="ffmpeg-config">
205 <title>Config Files</title>
206
207 <para><filename>/etc/ffserver.conf</filename> and
208 <filename>~/.ffmpeg/ffserver-config</filename></para>
209
210 <indexterm zone="ffmpeg ffmpeg-config">
211 <primary sortas="e-AA.ffmpeg-ffserver-config">~/.ffmpeg/ffserver-config</primary>
212 </indexterm>
213
214 <indexterm zone="ffmpeg ffmpeg-config">
215 <primary sortas="e-etc-ffserver.conf">/etc/ffserver.conf</primary>
216 </indexterm>
217
218 <para>You'll find a sample <command>ffserver</command> configuration file
219 at <filename>doc/ffserver.conf</filename> in the source tree.</para>
220
221 </sect3>
222
223 </sect2>
224
225 <sect2 role="content">
226 <title>Contents</title>
227
228 <segmentedlist>
229 <segtitle>Installed Programs</segtitle>
230 <segtitle>Installed Libraries</segtitle>
231 <segtitle>Installed Directories</segtitle>
232
233 <seglistitem>
234 <seg>ffmpeg, ffplay, ffprobe, ffserver and qt-faststart</seg>
235 <seg>libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so,
236 libavutil.so, libpostproc.so, and libswscale.so</seg>
237 <seg>/usr/include/libavcodec, /usr/include/libavdevice,
238 /usr/include/libavfilter, /usr/include/libavformat,
239 /usr/include/libavutil, /usr/include/postproc, /usr/include/libswscale,
240 /usr/share/ffmpeg, and /usr/share/doc/ffmpeg-&ffmpeg-version;</seg>
241 </seglistitem>
242 </segmentedlist>
243
244 <variablelist>
245 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
246 <?dbfo list-presentation="list"?>
247 <?dbhtml list-presentation="table"?>
248
249 <varlistentry id="ffmpeg-prog">
250 <term><command>ffmpeg</command></term>
251 <listitem>
252 <para>is a command-line tool to convert video files, network streams
253 and input from a TV card to several video formats.</para>
254 <indexterm zone="ffmpeg ffmpeg-prog">
255 <primary sortas="b-ffmpeg">ffmpeg</primary>
256 </indexterm>
257 </listitem>
258 </varlistentry>
259
260 <varlistentry id="ffplay">
261 <term><command>ffplay</command></term>
262 <listitem>
263 <para>is a very simple and portable media player using the
264 <filename>ffmpeg</filename> libraries and the SDL library.</para>
265 <indexterm zone="ffmpeg ffplay">
266 <primary sortas="b-ffplay">ffplay</primary>
267 </indexterm>
268 </listitem>
269 </varlistentry>
270
271 <varlistentry id="ffprobe">
272 <term><command>ffprobe</command></term>
273 <listitem>
274 <para>gathers information from multimedia streams and prints it in
275 a human and machine-readable fashion.</para>
276 <indexterm zone="ffmpeg ffprobe">
277 <primary sortas="b-ffprobe">ffprobe</primary>
278 </indexterm>
279 </listitem>
280 </varlistentry>
281
282 <varlistentry id="ffserver">
283 <term><command>ffserver</command></term>
284 <listitem>
285 <para>is a streaming server for everything that <command>ffmpeg</command>
286 could use as input (files, streams, TV card input, webcam, etc.).</para>
287 <indexterm zone="ffmpeg ffserver">
288 <primary sortas="b-ffserver">ffserver</primary>
289 </indexterm>
290 </listitem>
291 </varlistentry>
292
293 <varlistentry id="qt-faststart">
294 <term><command>qt-faststart</command></term>
295 <listitem>
296 <para>moves the index file to the front of quicktime (mov/mp4)
297 videos.</para>
298 <indexterm zone="ffmpeg qt-faststart">
299 <primary sortas="b-qt-faststart">qt-faststart</primary>
300 </indexterm>
301 </listitem>
302 </varlistentry>
303
304 <varlistentry id="libavcodec">
305 <term><filename class='libraryfile'>libavcodec.so</filename></term>
306 <listitem>
307 <para>is a library containing the <application>FFmpeg</application>
308 codecs (both encoding and decoding).</para>
309 <indexterm zone="ffmpeg libavcodec">
310 <primary sortas="c-libavcodec">libavcodec.so</primary>
311 </indexterm>
312 </listitem>
313 </varlistentry>
314
315 <varlistentry id="libavdevice">
316 <term><filename class='libraryfile'>libavdevice.so</filename></term>
317 <listitem>
318 <para>is the <application>FFmpeg</application> device handling
319 library.</para>
320 <indexterm zone="ffmpeg libavdevice">
321 <primary sortas="c-libavdevice">libavdevice.so</primary>
322 </indexterm>
323 </listitem>
324 </varlistentry>
325
326 <varlistentry id="libavfilter">
327 <term><filename class='libraryfile'>libavfilter.so</filename></term>
328 <listitem>
329 <para>is a library of filters that can alter video or audio between
330 the decoder and the encoder (or output).</para>
331 <indexterm zone="ffmpeg libavfilter">
332 <primary sortas="c-libavfilter">libavfilter.so</primary>
333 </indexterm>
334 </listitem>
335 </varlistentry>
336
337 <varlistentry id="libavformat">
338 <term><filename class='libraryfile'>libavformat.so</filename></term>
339 <listitem>
340 <para>is a library containing the file formats handling (mux and demux code
341 for several formats) used by <command>ffplay</command> as well as
342 allowing the generation of audio or video streams.</para>
343 <indexterm zone="ffmpeg libavformat">
344 <primary sortas="c-libavformat">libavformat.so</primary>
345 </indexterm>
346 </listitem>
347 </varlistentry>
348
349 <varlistentry id="libavutil">
350 <term><filename class='libraryfile'>libavutil.so</filename></term>
351 <listitem>
352 <para>is the <application>FFmpeg</application> utility library.</para>
353 <indexterm zone="ffmpeg libavutil">
354 <primary sortas="c-libavutil">libavutil.so</primary>
355 </indexterm>
356 </listitem>
357 </varlistentry>
358
359 <!-- Both mplayer and ffmpeg now create libpostproc. The validation
360 for the book is not impressed by that, and it falls apart without giving
361 any useful information if the id is changed to "libpostproc (from ffmpeg)"
362 or any other variant using spaces or parenthesis or square brackets, so
363 try this variant : mmm, bizarrely, it accepts this but drops everything from
364 the first hyphen, so that in longindex.html it looks just right (one library,
365 two packages) -->
366 <varlistentry id="libpostproc-from-ffmpeg">
367 <term><filename class='libraryfile'>libpostproc.so</filename></term>
368 <listitem>
369 <para>is the <application>FFmpeg</application> post processing
370 library.</para>
371 <indexterm zone="ffmpeg libpostproc">
372 <primary sortas="c-libpostproc">libpostproc.so</primary>
373 </indexterm>
374 </listitem>
375 </varlistentry>
376
377 <varlistentry id="libswscale">
378 <term><filename class='libraryfile'>libswscale.so</filename></term>
379 <listitem>
380 <para>is the <application>FFmpeg</application> image rescaling
381 library.</para>
382 <indexterm zone="ffmpeg libswscale">
383 <primary sortas="c-libswscale">libswscale.so</primary>
384 </indexterm>
385 </listitem>
386 </varlistentry>
387
388 </variablelist>
389
390 </sect2>
391
392</sect1>
Note: See TracBrowser for help on using the repository browser.