Ignore:
Timestamp:
05/10/2012 04:52:26 PM (12 years ago)
Author:
Andrew Benton <andy@…>
Branches:
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
Children:
95791810
Parents:
4067d492
Message:

ffmpeg-0.10.3

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • multimedia/videoutils/ffmpeg.xml

    r4067d492 rfaec3f7  
    55  %general-entities;
    66
    7   <!ENTITY ffmpeg-download-http "http://ffmpeg.org/releases/ffmpeg-&ffmpeg-version;.tar.bz2">
     7  <!ENTITY ffmpeg-download-http
     8    "http://ffmpeg.org/releases/ffmpeg-&ffmpeg-version;.tar.bz2">
    89  <!ENTITY ffmpeg-download-ftp  " ">
    9   <!ENTITY ffmpeg-md5sum        "de1bd5fc4bbf3ef730a5361ee596fedd">
     10  <!ENTITY ffmpeg-md5sum        "775d184933f71ff44a2fff4968e78b2b">
    1011  <!ENTITY ffmpeg-size          "5.6 MB">
    11   <!ENTITY ffmpeg-buildsize     "209 MB">
    12   <!ENTITY ffmpeg-time          "3.2 SBU">
     12  <!ENTITY ffmpeg-buildsize     "244 MB">
     13  <!ENTITY ffmpeg-time          "3.7 SBU">
    1314]>
    1415
     
    3031    <title>Introduction to FFmpeg</title>
    3132
    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>
     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>
    4144
    4245    &lfs71_checked;
     
    6770
    6871    <bridgehead renderas="sect4">Recommended</bridgehead>
    69     <para role="recommended">
    70       <xref linkend="yasm"/>
    71     </para>
     72    <para role="recommended"><xref linkend="yasm"/></para>
    7273
    7374    <bridgehead renderas="sect4">Optional</bridgehead>
     
    103104      <ulink url="http://sourceforge.net/projects/libdc1394/">libdc1394</ulink>,
    104105      <ulink url="http://linuxtv.org/downloads/v4l-utils/">libv4l2</ulink>,
    105         <xref linkend="openjpeg"/>
     106      <xref linkend="openjpeg"/>
    106107        (<application>FFmpeg</application> includes code for it's own jpeg2000
    107108        encoder and decoder which is enabled by default),
     
    113114        (to build HTML documentation).</para>
    114115
    115     <para condition="html" role="usernotes">User Notes:
    116     <ulink url="&blfs-wiki;/ffmpeg"/></para>
    117 
     116    <para condition="html" role="usernotes">
     117      User Notes: <ulink url="&blfs-wiki;/ffmpeg"/>
     118    </para>
    118119  </sect2>
    119120
     
    121122    <title>Installation of FFmpeg</title>
    122123
    123     <para>Install <application>FFmpeg</application> by running the following
    124     commands:</para>
     124    <para>
     125      Install <application>FFmpeg</application> by running the following
     126      commands:
     127    </para>
    125128
    126129<screen><userinput>mkdir build &amp;&amp;
     
    129132make</userinput></screen>
    130133
    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>
     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>
    138144
    139145<screen><userinput>gcc ../tools/qt-faststart.c -o qt-faststart</userinput></screen>
    140146
    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>
     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>
    144152
    145153    <para>This package does not come with a test suite.</para>
     
    152160cp ../doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version;</userinput></screen>
    153161
    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>
     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>
    157167
    158168<screen role="root"><userinput>mkdir /usr/share/doc/ffmpeg-&ffmpeg-version;/api &amp;&amp;
    159169cp -v doxy/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api</userinput></screen>
    160170
    161     <para>If you compiled <command>qt-faststart</command> install it as the
    162     <systemitem class="username">root</systemitem> user:</para>
     171    <para>
     172      If you compiled <command>qt-faststart</command> install it as the
     173      <systemitem class="username">root</systemitem> user:
     174    </para>
    163175
    164176<screen role="root"><userinput>cp qt-faststart /usr/bin</userinput></screen>
    165 
    166177  </sect2>
    167178
     
    169180    <title>Command Explanations</title>
    170181
    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>
     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>
    174187   
    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 
     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>
    206225  </sect2>
    207226
     
    224243      </indexterm>
    225244
    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 
     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>
    229249    </sect3>
    230 
    231250  </sect2>
    232251
     
    240259
    241260      <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>
     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>
    249288      </seglistitem>
    250289    </segmentedlist>
     
    258297        <term><command>ffmpeg</command></term>
    259298        <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>
     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>
    262303          <indexterm zone="ffmpeg ffmpeg-prog">
    263304            <primary sortas="b-ffmpeg">ffmpeg</primary>
     
    269310        <term><command>ffplay</command></term>
    270311        <listitem>
    271           <para>is a very simple and portable media player using the
    272           <filename>ffmpeg</filename> libraries and the SDL library.</para>
     312          <para>
     313            is a very simple and portable media player using the
     314            <filename>ffmpeg</filename> libraries and the SDL library.
     315          </para>
    273316          <indexterm zone="ffmpeg ffplay">
    274317            <primary sortas="b-ffplay">ffplay</primary>
     
    280323        <term><command>ffprobe</command></term>
    281324        <listitem>
    282           <para>gathers information from multimedia streams and prints it in
    283           a human and machine-readable fashion.</para>
     325          <para>
     326            gathers information from multimedia streams and prints it in a human
     327            and machine-readable fashion.
     328          </para>
    284329          <indexterm zone="ffmpeg ffprobe">
    285330            <primary sortas="b-ffprobe">ffprobe</primary>
     
    291336        <term><command>ffserver</command></term>
    292337        <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>
     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>
    296342          <indexterm zone="ffmpeg ffserver">
    297343            <primary sortas="b-ffserver">ffserver</primary>
     
    303349        <term><command>qt-faststart</command></term>
    304350        <listitem>
    305           <para>moves the index file to the front of quicktime (mov/mp4)
    306           videos.</para>
     351          <para>
     352            moves the index file to the front of quicktime (mov/mp4) videos.
     353          </para>
    307354          <indexterm zone="ffmpeg qt-faststart">
    308355            <primary sortas="b-qt-faststart">qt-faststart</primary>
     
    314361        <term><filename class="libraryfile">libavcodec.so</filename></term>
    315362        <listitem>
    316           <para>is a library containing the <application>FFmpeg</application>
    317           codecs (both encoding and decoding).</para>
     363          <para>
     364            is a library containing the <application>FFmpeg</application> codecs
     365            (both encoding and decoding).
     366          </para>
    318367          <indexterm zone="ffmpeg libavcodec">
    319368            <primary sortas="c-libavcodec">libavcodec.so</primary>
     
    325374        <term><filename class="libraryfile">libavdevice.so</filename></term>
    326375        <listitem>
    327           <para>is the <application>FFmpeg</application> device handling
    328           library.</para>
     376          <para>
     377            is the <application>FFmpeg</application> device handling library.
     378          </para>
    329379          <indexterm zone="ffmpeg libavdevice">
    330380            <primary sortas="c-libavdevice">libavdevice.so</primary>
     
    336386        <term><filename class="libraryfile">libavfilter.so</filename></term>
    337387        <listitem>
    338           <para>is a library of filters that can alter video or audio between
    339           the decoder and the encoder (or output).</para>
     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>
    340392          <indexterm zone="ffmpeg libavfilter">
    341393            <primary sortas="c-libavfilter">libavfilter.so</primary>
     
    347399        <term><filename class="libraryfile">libavformat.so</filename></term>
    348400        <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>
     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>
    352406          <indexterm zone="ffmpeg libavformat">
    353407            <primary sortas="c-libavformat">libavformat.so</primary>
     
    366420      </varlistentry>
    367421
    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)  -->
    375422      <varlistentry id="libpostproc">
    376423        <term><filename class="libraryfile">libpostproc.so</filename></term>
    377424        <listitem>
    378           <para>is the <application>FFmpeg</application> post processing
    379           library.</para>
     425          <para>
     426            is the <application>FFmpeg</application> post processing library.
     427          </para>
    380428          <indexterm zone="ffmpeg libpostproc">
    381429            <primary sortas="c-libpostproc">libpostproc.so</primary>
     
    387435        <term><filename class="libraryfile">libswscale.so</filename></term>
    388436        <listitem>
    389           <para>is the <application>FFmpeg</application> image rescaling
    390           library.</para>
     437          <para>
     438            is the <application>FFmpeg</application> image rescaling library.
     439          </para>
    391440          <indexterm zone="ffmpeg libswscale">
    392441            <primary sortas="c-libswscale">libswscale.so</primary>
Note: See TracChangeset for help on using the changeset viewer.