source: multimedia/videoutils/ffmpeg.xml@ d90e9cb

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 d90e9cb was d90e9cb, checked in by Ragnar Thomsen <rthomsen@…>, 12 years ago

Links to openjpeg.

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

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