FFmpeg-0.9
Introduction to FFmpeg
FFmpeg is a solution to record,
convert and stream audio and video. It is a very fast video and
audio converter and it can also acquire from a live audio/video
source. Designed to be intuitive, the command-line interface
(ffmpeg) tries to
figure out all the parameters, when possible. FFmpeg can also convert from any sample rate
to any other, and resize video on the fly with a high quality
polyphase filter. FFmpeg can use a
video4linux compatible video source and any Open Sound System audio
source.
The developers of this package do not make releases very often, so
you may wish to use a snapshot instead of this release. If you do
that, you must expect the acceptable configure switches, and the
dependencies, to change.
This package is known to build and work properly using an LFS-7.0
platform.
Package Information
FFmpeg Dependencies
Recommended
yasm-1.2.0
Optional
FAAD2-2.7,
LAME-3.99.3, libtheora-1.1.1,
libvorbis-1.3.2, libvpx-v0.9.7, X Window
System, x264 XviD-1.2.2,
AMR
narrowband (floating point), AMR wideband, FAAC-1.28, FreeType-2.4.8, GSM, liba52-0.7.4, libdc1394,
libnut (SVN checkout),
librtmp, libschroedinger,
MediaLibrary, OpenJPEG (FFmpeg includes code for it's own jpeg2000
encoder and decoder which is enabled by default), Speex-1.2rc1, SDL-1.2.14 and
texi2html (to build HTML
documentation).
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/ffmpeg
Installation of FFmpeg
Install FFmpeg by running the
following commands:
mkdir build &&
cd build &&
../configure --prefix=/usr --enable-shared --disable-static --enable-gpl &&
make
The FFmpeg source contains a tool
called qt-faststart
that can modify QuickTime formatted movies (mov or mp4) so that the
header information is located at the beginning of the file instead
of the end. This allows video players to begin playing the content
before the entire file has been downloaded. An example of where
this is useful for preparing videos before uploading them to
YouTube. If need qt-faststart, you can compile it
with gcc:
gcc ../tools/qt-faststart.c -o qt-faststart
If you have Doxygen-1.7.5 installed and wish to create the
API documentation (takes about 150 MB of space), issue the command
doxygen.
This package does not come with a working test suite.
Now, as the root
user:
make install &&
make install-man &&
mkdir /usr/share/doc/ffmpeg-0.9 &&
cp ../doc/*.txt /usr/share/doc/ffmpeg-0.9
If you used doxygen
to create the API documentation, install it by issuing the
following commands as the root
user:
mkdir /usr/share/doc/ffmpeg-0.9/api &&
cp -v doxy/* /usr/share/doc/ffmpeg-0.9/api
If you compiled qt-faststart install it as the
root
user:
cp qt-faststart /usr/bin
Command Explanations
mkdir build and
cd build: This
ensures that we compile the FFmpeg
object files in a separate directory to the source files.
--enable-shared
: This switch is needed
to build the shared libraries, otherwise only static libraries are
built and installed.
--disable-static
: This switch prevents
the static libraries from being built.
--enable-gpl
: This switch enables the
use of GPL code and permits support for postprocessing, swscale and
many other features.
--enable-<codec>
: FFmpeg comes with code to compile decoders for
almost every codec you could think of. The only reason to enable a
specific codec (and make FFmpeg
link to the prerequisite shared library installed on your system)
is to make ffmpeg compile an encoder for that codec. Encoding video
is a specialist job. If that is what you want to do with
ffmpeg, study the
output of configure
--help. Remember, the dependencies all install
their own encoders (that are often better than FFmpeg's). FFmpeg is an excellent collection of decoders.
If you just want to use FFmpeg to
watch video or listen to music (via other applications like
Gstreamer) then you will not
benefit from linking it to another library.
--disable-yasm
: use this option if
you've not installed yasm and you want what configure describes as
"a crippled build".
Configuring FFmpeg
Config Files
/etc/ffserver.conf
and ~/.ffmpeg/ffserver-config
You'll find a sample ffserver configuration file at
doc/ffserver.conf
in the source
tree.
Contents
Installed Programs:
ffmpeg, ffplay, ffprobe, ffserver and
qt-faststart
Installed Libraries:
libavcodec.so, libavdevice.so,
libavfilter.so, libavformat.so, libavutil.so, libpostproc.so,
and libswscale.so
Installed Directories:
/usr/include/libavcodec,
/usr/include/libavdevice, /usr/include/libavfilter,
/usr/include/libavformat, /usr/include/libavutil,
/usr/include/postproc, /usr/include/libswscale,
/usr/share/ffmpeg, and /usr/share/doc/ffmpeg-0.9
Short Descriptions
ffmpeg
|
is a command-line tool to convert video files, network
streams and input from a TV card to several video
formats.
|
ffplay
|
is a very simple and portable media player using the
ffmpeg libraries and the
SDL library.
|
ffprobe
|
gathers information from multimedia streams and prints it
in a human and machine-readable fashion.
|
ffserver
|
is a streaming server for everything that ffmpeg could use as
input (files, streams, TV card input, webcam, etc.).
|
qt-faststart
|
moves the index file to the front of quicktime (mov/mp4)
videos.
|
libavcodec.so
|
is a library containing the FFmpeg codecs (both encoding and
decoding).
|
libavdevice.so
|
is the FFmpeg device
handling library.
|
libavfilter.so
|
is a library of filters that can alter video or audio
between the decoder and the encoder (or output).
|
libavformat.so
|
is a library containing the file formats handling (mux
and demux code for several formats) used by ffplay as well as
allowing the generation of audio or video streams.
|
libavutil.so
|
is the FFmpeg utility
library.
|
libpostproc.so
|
is the FFmpeg post
processing library.
|
libswscale.so
|
is the FFmpeg image
rescaling library.
|
Last updated on 2011-12-29 03:35:25 +0000