source: multimedia/videoutils/ffmpeg.xml@ f1e103a

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 f1e103a was f1e103a, checked in by Randy McMurchy <randy@…>, 13 years ago

Added new package TeX Live-20100722

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

  • Property mode set to 100644
File size: 15.7 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 "4f5d732d25eedfb072251b5314ba2093">
10 <!ENTITY ffmpeg-size "3.5 MB">
11 <!ENTITY ffmpeg-buildsize "328 MB (built with recommended dependencies)">
12 <!ENTITY ffmpeg-time "2.1 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 can
34 also acquire from a live audio/video source. Designed to be intuitive, the
35 command-line interface (<command>ffmpeg</command>) tries to figure out all the
36 parameters, when possible. <application>FFmpeg</application> can also convert
37 from any sample rate to any other, and resize video on the fly with a high
38 quality polyphase filter. <application>FFmpeg</application> can use a
39 video4linux compatible video source and any Open Sound System audio
40 source.</para>
41 <para>The developers of this package do not make releases very often, so you
42 may wish to use a snapshot instead of this release. If you do that, you must
43 expect the acceptable <command>configure</command> switches, and the
44 dependencies, to change.</para>
45
46 &lfs67_checked;
47
48 <bridgehead renderas="sect3">Package Information</bridgehead>
49 <itemizedlist spacing="compact">
50 <listitem>
51 <para>Download (HTTP): <ulink url="&ffmpeg-download-http;"/></para>
52 </listitem>
53 <listitem>
54 <para>Download (FTP): <ulink url="&ffmpeg-download-ftp;"/></para>
55 </listitem>
56 <listitem>
57 <para>Download MD5 sum: &ffmpeg-md5sum;</para>
58 </listitem>
59 <listitem>
60 <para>Download size: &ffmpeg-size;</para>
61 </listitem>
62 <listitem>
63 <para>Estimated disk space required: &ffmpeg-buildsize;</para>
64 </listitem>
65 <listitem>
66 <para>Estimated build time: &ffmpeg-time;</para>
67 </listitem>
68 </itemizedlist>
69
70 <!-- <bridgehead renderas="sect3">Additional Downloads</bridgehead>
71 <itemizedlist spacing="compact">
72 <listitem>
73 <para>Required patch: <ulink
74 url="&patch-root;/ffmpeg-&ffmpeg-version;-gcc4-1.patch"/></para>
75 </listitem>
76 <listitem>
77 <para>Required patch: <ulink
78 url="&patch-root;/ffmpeg-&ffmpeg-version;-amr_fixes-1.patch"/></para>
79 </listitem>
80 </itemizedlist> -->
81
82 <bridgehead renderas="sect3">FFmpeg Dependencies</bridgehead>
83
84 <bridgehead renderas="sect4">Recommended</bridgehead>
85 <para role="recommended">
86 <xref linkend="faad2"/>,
87 <xref linkend="lame"/>,
88 <xref linkend="libtheora"/>,
89 <xref linkend="libvorbis"/>,
90 <xref linkend="libvpx"/>,
91 <xref linkend="x-window-system"/>,
92 <ulink url="http://www.videolan.org/developers/x264.html">x264</ulink>
93 (tested with the 20100615-2245 snapshot : x264 needs
94 <ulink url="http://www.tortall.net/projects/yasm/">yasm</ulink> unless you
95 configure it with <literal>--disable-asm</literal>),
96 <xref linkend="xvid"/></para>
97
98 <bridgehead renderas="sect4">Optional</bridgehead>
99 <para role="optional">
100 <ulink url="http://www.penguin.cz/~utx/amr">AMR narrowband (floating point)</ulink>,
101 <ulink url="http://www.penguin.cz/~utx/amr">AMR wideband</ulink>,
102 <xref linkend="faac"/>,
103 <xref linkend="freetype2"/>,
104 <ulink url="http://kbs.cs.tu-berlin.de/~jutta/gsm/">GSM</ulink>,
105 <xref linkend="imlib2"/>,
106 <xref linkend="liba52"/>,
107 <ulink url="http://sourceforge.net/projects/libdc1394">libdc1394</ulink>,
108 <ulink url="http://svn.mplayerhq.hu/nut/src/trunk/">libnut</ulink> (SVN checkout),
109 <ulink url="http://sourceforge.net/projects/librtmp">librtmp</ulink>,
110 <ulink url="http://diracvideo.org/">libschroedinger</ulink>,
111 <ulink url="http://medialibrary.sourceforge.net/">MediaLibrary</ulink>,
112 <ulink url="http://www.openjpeg.org">OpenJPEG</ulink>,
113 <xref linkend="sdl"/>,
114 <xref linkend="speex"/>,
115 <ulink url="http://www.tortall.net/projects/yasm/">yasm</ulink>, and
116 <xref linkend="tetex"/> or
117 <ulink url="http://www.nongnu.org/texi2html">texi2html</ulink>
118 (to build HTML documentation)</para>
119
120 <para condition="html" role="usernotes">User Notes:
121 <ulink url="&blfs-wiki;/ffmpeg"/></para>
122
123 </sect2>
124
125 <sect2 role="installation">
126 <title>Installation of FFmpeg</title>
127
128 <para>Install <application>FFmpeg</application> by running the following
129 commands:</para>
130
131<screen><userinput>sed -i 's/-number//' Makefile &amp;&amp;
132./configure --prefix=/usr --enable-shared \
133 --enable-pthreads --enable-gpl \
134 --enable-swscale --enable-postproc \
135 --enable-libfaad --enable-libmp3lame \
136 --enable-libtheora --enable-libvorbis \
137 --enable-libvpx --enable-libx264 \
138 --enable-libxvid &amp;&amp;
139make</userinput></screen>
140
141 <para>If you have <application>teTeX</application> or
142 <application>texi2html</application> installed, the HTML
143 documentation was built during the <command>make</command> process. If you
144 wish to create additional formats of the documentation, you must have
145 <application>teTeX</application> or <xref linkend="texlive"/> installed,
146 and issue the following commands:</para>
147
148<screen><userinput>cd doc &amp;&amp;
149for DOCNAME in faq ffmpeg-doc ffplay-doc ffprobe-doc ffserver-doc general libavfilter; do
150 texi2dvi -b -p $DOCNAME.texi
151 texi2dvi -b $DOCNAME.texi
152 dvips -o $DOCNAME.ps $DOCNAME.dvi
153 if [ $DOCNAME = ffserver-doc ] || [ $DOCNAME = ffplay-doc ] || [ $DOCNAME = ffprobe-doc ]; then \
154 continue
155 fi
156 makeinfo --plaintext --force -o $DOCNAME.txt $DOCNAME.texi
157done &amp;&amp;
158cd .. &amp;&amp;
159unset DOCNAME</userinput></screen>
160
161 <para>If you have <xref linkend="doxygen"/> installed and wish to create
162 the API documentation (takes about 150 MB of space), issue
163 <command>doxygen</command>.</para>
164
165 <para>If you wish to run the tests, issue: <command>make check</command> -
166 that will take about 0.9 SBU and use another 365 MB of space.</para>
167
168 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
169
170<screen role="root"><userinput>make install &amp;&amp;
171install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
172install -v -m644 doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version; &amp;&amp;
173texi2html --version >/dev/null 2>&amp;1 || make install-man</userinput></screen>
174
175 <para>If you created additional formats of the documentation,
176 install it by issuing the following commands as the
177 <systemitem class="username">root</systemitem> user:</para>
178
179<screen role="root"><userinput>install -v -m644 doc/*.{html,dvi,pdf,ps} \
180 /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
181
182 <para>If you created the API documentation, install it by issuing the
183 following commands as the
184 <systemitem class="username">root</systemitem> user:</para>
185
186<screen role="root"><userinput>install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
187cp -v doxy/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
188
189 </sect2>
190
191 <sect2 role="commands">
192 <title>Command Explanations</title>
193
194 <para><parameter>sed -i 's/-number//' Makefile</parameter>: Recent versions
195 of gnu <command>texi2html</command> error out because
196 <command>-number</command> is now ambiguous (for number-footnote or
197 number-sections). Neither choice makes any difference to what is created
198 here, and the same is true with older versions of
199 <command>texi2html</command>, e.g. from application
200 <application>teTeX</application>.</para>
201
202 <para><parameter>--enable-shared</parameter>: This switch is needed to
203 build the shared libraries, otherwise only static libraries are built
204 and installed.</para>
205
206 <para><parameter>--enable-pthreads</parameter>: This switch enables the
207 build to link against the Posix threads library.</para>
208
209 <para><parameter>--enable-gpl</parameter>: This switch enables the
210 use of GPL code and permits support for postprocessing, swscale, liba54,
211 xvid, x264, libfaad2 and x11grab to be selected.</para>
212
213 <para><parameter>--enable-swscale</parameter>: This switch causes libswscale
214 to be built.</para>
215
216 <para><parameter>--enable-postprocessing</parameter>: This switch causes
217 libpostproc to be built.</para>
218
219 <para><option>--enable-<replaceable>&lt;codec&gt;</replaceable></option>: Review
220 the available options and codecs using the
221 <command>./configure --help</command> command. You must explicitly enable
222 each optional codec. If you have not installed some of the recommended
223 dependencies, do not enable those you have omitted.</para>
224
225 <para><option>--disable-ffplay</option>: Only installs the server part.
226 Use this option if <application>X</application> is not installed.</para>
227
228 <para><option>--disable-static</option>: This switch prevents the static
229 libraries from being built.</para>
230
231 <para><command>if [ $DOCNAME = ffserver-doc ] ...</command> These three
232 .texi files are rejected by <command>makeinfo</command> because of syntax
233 errors.</para>
234
235 </sect2>
236
237 <sect2 role="configuration">
238 <title>Configuring FFmpeg</title>
239
240 <sect3 id="ffmpeg-config">
241 <title>Config Files</title>
242
243 <para><filename>/etc/ffserver.conf</filename> and
244 <filename>~/.ffmpeg/ffserver-config</filename></para>
245
246 <indexterm zone="ffmpeg ffmpeg-config">
247 <primary 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>You'll find a sample ffserver configuration file at
255 <ulink url="http://ffmpeg.sourceforge.net/sample.html"/> (also
256 <filename>doc/ffserver.conf</filename> in the source tree).</para>
257
258 </sect3>
259
260 </sect2>
261
262 <sect2 role="content">
263 <title>Contents</title>
264
265 <segmentedlist>
266 <segtitle>Installed Programs</segtitle>
267 <segtitle>Installed Libraries</segtitle>
268 <segtitle>Installed Directories</segtitle>
269
270 <seglistitem>
271 <seg>ffmpeg, ffplay, ffprobe, and ffserver</seg>
272 <seg>libavcodec.{so,a}, libavdevice.{so,a}, libavformat.{so,a},
273 libavutil.{so,a}, libpostproc.{so,a}, and libswscale.{so,a}</seg>
274 <seg>/usr/include/libavcodec, /usr/include/libavdevice,
275 /usr/include/libavformat, /usr/include/libavutil, /usr/include/postproc,
276 /usr/include/libswscale, /usr/share/ffmpeg, and
277 /usr/share/doc/ffmpeg-&ffmpeg-version;</seg>
278 </seglistitem>
279 </segmentedlist>
280
281 <variablelist>
282 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
283 <?dbfo list-presentation="list"?>
284 <?dbhtml list-presentation="table"?>
285
286 <varlistentry id="ffmpeg-prog">
287 <term><command>ffmpeg</command></term>
288 <listitem>
289 <para>is a command-line tool to convert video files, network streams
290 and input from a TV card to several video formats.</para>
291 <indexterm zone="ffmpeg ffmpeg-prog">
292 <primary sortas="b-ffmpeg">ffmpeg</primary>
293 </indexterm>
294 </listitem>
295 </varlistentry>
296
297 <varlistentry id="ffplay">
298 <term><command>ffplay</command></term>
299 <listitem>
300 <para>is a very simple and portable media player using the
301 <filename>ffmpeg</filename> libraries and the SDL library.</para>
302 <indexterm zone="ffmpeg ffplay">
303 <primary sortas="b-ffplay">ffplay</primary>
304 </indexterm>
305 </listitem>
306 </varlistentry>
307
308 <varlistentry id="ffserver">
309 <term><command>ffserver</command></term>
310 <listitem>
311 <para>is a streaming server for everything that <command>ffmpeg</command>
312 could use as input (files, streams, TV card input, webcam, etc.).</para>
313 <indexterm zone="ffmpeg ffserver">
314 <primary sortas="b-ffserver">ffserver</primary>
315 </indexterm>
316 </listitem>
317 </varlistentry>
318
319 <varlistentry id="libavcodec">
320 <term><filename class='libraryfile'>libavcodec.{so,a}</filename></term>
321 <listitem>
322 <para>is a library containing the <application>FFmpeg</application>
323 codecs (both encoding and decoding).</para>
324 <indexterm zone="ffmpeg libavcodec">
325 <primary sortas="c-libavcodec">libavcodec.{so,a}</primary>
326 </indexterm>
327 </listitem>
328 </varlistentry>
329
330 <varlistentry id="libavdevice">
331 <term><filename class='libraryfile'>libavdevice.{so,a}</filename></term>
332 <listitem>
333 <para>is the <application>FFmpeg</application> device handling
334 library.</para>
335 <indexterm zone="ffmpeg libavdevice">
336 <primary sortas="c-libavdevice">libavdevice.{so,a}</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="libavformat">
342 <term><filename class='libraryfile'>libavformat.{so,a}</filename></term>
343 <listitem>
344 <para>is a library containing the file formats handling (mux and demux code
345 for several formats) used by <command>ffplay</command> as well as
346 allowing the generation of audio or video streams.</para>
347 <indexterm zone="ffmpeg libavformat">
348 <primary sortas="c-libavformat">libavformat.{so,a}</primary>
349 </indexterm>
350 </listitem>
351 </varlistentry>
352
353 <varlistentry id="libavutil">
354 <term><filename class='libraryfile'>libavutil.{so,a}</filename></term>
355 <listitem>
356 <para>is the <application>FFmpeg</application> utility library.</para>
357 <indexterm zone="ffmpeg libavutil">
358 <primary sortas="c-libavutil">libavutil.{so,a}</primary>
359 </indexterm>
360 </listitem>
361 </varlistentry>
362
363 <!-- Both mplayer and ffmpeg now create libpostproc. The validation
364 for the book is not impressed by that, and it falls apart without giving
365 any useful information if the id is changed to "libpostproc (from ffmpeg)"
366 or any other variant using spaces or parenthesis or square brackets, so
367 try this variant : mmm, bizarrely, it accepts this but drops everything from
368 the first hyphen, so that in longindex.html it looks just right (one library,
369 two packages) -->
370 <varlistentry id="libpostproc-from-ffmpeg">
371 <term><filename class='libraryfile'>libpostproc.{so,a}</filename></term>
372 <listitem>
373 <para>is the <application>FFmpeg</application> post processing
374 library.</para>
375 <indexterm zone="ffmpeg libpostproc">
376 <primary sortas="c-libpostproc">libpostproc.{so,a}</primary>
377 </indexterm>
378 </listitem>
379 </varlistentry>
380
381 <varlistentry id="libswscale">
382 <term><filename class='libraryfile'>libswscale.{so,a}</filename></term>
383 <listitem>
384 <para>is the <application>FFmpeg</application> image rescaling
385 library.</para>
386 <indexterm zone="ffmpeg libswscale">
387 <primary sortas="c-libswscale">libswscale.{so,a}</primary>
388 </indexterm>
389 </listitem>
390 </varlistentry>
391
392 </variablelist>
393
394 </sect2>
395
396</sect1>
Note: See TracBrowser for help on using the repository browser.