%general-entities; ]> $LastChangedBy$ $Date$ FFmpeg-&ffmpeg-version; FFmpeg 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. &lfs101_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &ffmpeg-md5sum; Download size: &ffmpeg-size; Estimated disk space required: &ffmpeg-buildsize; Estimated build time: &ffmpeg-time; FFmpeg Dependencies Recommended , , , , , , , , , , and or Recommended for desktop use , , (with the corresponding driver package), and Optional , , , , (to identify and play CDs), (for kmsgrab input), , , , , , , , (or ) for PDF and PS documentation, , , , Flite, GSM, libaacplus, libbluray, libcaca, libcelt, libdc1394, libdca, libiec61883, libilbc, libmodplug, libnut (Git checkout), librtmp, libssh, OpenAL, OpenCore AMR, Schroedinger, TwoLAME, vo-aaenc, vo-amrwbenc, and ZVBI User Notes: Installation of FFmpeg Install FFmpeg by running the following commands: sed -i 's/-lflite"/-lflite -lasound"/' configure && ./configure --prefix=/usr \ --enable-gpl \ --enable-version3 \ --enable-nonfree \ --disable-static \ --enable-shared \ --disable-debug \ --enable-avresample \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libtheora \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-openssl \ --docdir=/usr/share/doc/ffmpeg-&ffmpeg-version; && make && gcc tools/qt-faststart.c -o tools/qt-faststart HTML documentation was built in the previous step. If you have installed and wish to build PDF and Postscript versions of the documentation, issue the following commands: pushd doc && for DOCNAME in `basename -s .html *.html` do texi2pdf -b $DOCNAME.texi && texi2dvi -b $DOCNAME.texi && dvips -o $DOCNAME.ps \ $DOCNAME.dvi done && popd && unset DOCNAME If you have installed and you wish to build (if --disable-doc was used) or rebuild the html documentation, issue: doxygen doc/Doxyfile The fate-suite tests include comparisons with installed files, and should not be run before the package is installed. Therefore, if you desire to run them, instructions are given further below. Now, as the root user: make install && install -v -m755 tools/qt-faststart /usr/bin && install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version; && install -v -m644 doc/*.txt /usr/share/doc/ffmpeg-&ffmpeg-version; If the PDF and Postscript documentation was built, issue the following commands, as the root user, to install them: install -v -m644 doc/*.pdf /usr/share/doc/ffmpeg-&ffmpeg-version; && install -v -m644 doc/*.ps /usr/share/doc/ffmpeg-&ffmpeg-version; If you used doxygen to manually create the API documentation, install it by issuing the following commands as the root user: install -v -m755 -d /usr/share/doc/ffmpeg-&ffmpeg-version;/api && cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-&ffmpeg-version;/api && find /usr/share/doc/ffmpeg-&ffmpeg-version;/api -type f -exec chmod -c 0644 \{} \; && find /usr/share/doc/ffmpeg-&ffmpeg-version;/api -type d -exec chmod -c 0755 \{} \; To properly test the installation you must have installed and follow the instructions for the FFmpeg Automated Testing Environment (FATE). First, about 1 GB of sample files used to run FATE are downloaded with the command: make fate-rsync SAMPLES=fate-suite/ The fate-suite directory is created and the files are downloaded there. That command actually runs an rsync command, to obtain the sample files. You may want to compress and keep this directory for testing again, in another system, or when a new version of ffmpeg is launched. Then, you unpack the sample files in the source directory, and run, again, the make fate-rsync ... command above, to sync with the repository. Now, the download size and time are drastically reduced. Estimated values in "Package Information" do not include the download SBU. Some samples may have been removed, in the new version, so, in order to be sure local and server fate samples are identical, when you use previously saved samples, run the following command: rsync -vrltLW --delete --timeout=60 --contimeout=60 \ rsync://fate-suite.ffmpeg.org/fate-suite/ fate-suite/ Next, FATE is executed, with the commands (you obtain a number of tests larger than 3700): make fate THREADS=N SAMPLES=fate-suite/ | tee ../fate.log && grep ^TEST ../fate.log | wc -l where N is an integer, N ≤ number of cores in the system. Command Explanations sed -i ... configure: This command adds the ALSA library to the Flite LDFLAGS variable and enables the discovery of Flite. find ... ;: Fixes permissions of documentation files and directories. --enable-libfreetype: Enables Freetype support. --enable-gpl: Enables the use of GPL code and permits support for postprocessing, swscale and many other features. --enable-version3: Enables the use of (L)GPL version 3 code. --enable-nonfree: Enables the use of nonfree code. Note that the resulting libraries and binaries will be unredistributable. --enable-shared: Enables building shared libraries, otherwise only static libraries are built and installed. --disable-debug: Disables building debugging symbols into the programs and libraries. --enable-avresample: Enables to be compiled. --enable-libass: Enables ASS/SSA subtitle format rendering via libass. : Use this switch if is installed to build the kmsgrab input module which is useful for screen capturing or streaming. --enable-libfdk-aac: Enables currently the highest-quality AAC audio encoding via libfdk-aac. --enable-libmp3lame: Enables MP3 audio encoding via libmp3lame. --enable-libvorbis --enable-libtheora: Enables Theora video encoding via libvorbis and libtheora. --enable-libvorbis --enable-libvpx: Enables WebM encoding via libvorbis and libvpx. --enable-libx264: Enables high-quality H.264/MPEG-4 AVC encoding via libx264. --enable-libx265: Enables high-quality H.265/HEVC encoding via libx265. --enable-openssl: Enables HTTPS protocol for network streams. : Use this option instead of --enable-openssl, if you want to use GnuTLS instead of OpenSSL for HTTPS protocol. : Disables building html documentation. This is only needed if is installed and you do not want to build the html documentation. : Enables support for Pulseaudio for audio output. gcc tools/qt-faststart.c -o tools/qt-faststart: This builds the qt-faststart program which 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 the movie file to begin playing before the entire file has been downloaded. Support for most of the dependency packages requires using options passed to the configure script. View the output from ./configure --help for complete information about enabling dependency packages. Contents Installed Programs Installed Libraries Installed Directories ffmpeg, ffplay, ffprobe, and qt-faststart libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavutil.so, libavresample.so, libpostproc.so, libswresample.so, and libswscale.so /usr/include/libav{codec,device,filter,format,resample,util}, /usr/include/libpostproc, /usr/include/libsw{resample,scale}, /usr/share/doc/ffmpeg-&ffmpeg-version;, and /usr/share/ffmpeg Short Descriptions ffmpeg is a command-line tool to convert video files, network streams and input from a TV card to several video formats ffmpeg ffplay is a very simple and portable media player using the ffmpeg libraries and the SDL library ffplay ffprobe gathers information from multimedia streams and prints it in a human and machine-readable fashion ffprobe qt-faststart moves the index file to the front of quicktime (mov/mp4) videos qt-faststart libavcodec.so is a library containing the FFmpeg codecs (both encoding and decoding) libavcodec.so libavdevice.so is the FFmpeg device handling library libavdevice.so libavfilter.so is a library of filters that can alter video or audio between the decoder and the encoder (or output) libavfilter.so 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 libavformat.so libavresample.so is a library containing functions for resampling audio and video. libavresample libavutil.so is the FFmpeg utility library libavutil.so libpostproc.so is the FFmpeg post processing library libpostproc.so libswresample.so is the FFmpeg audio rescaling library, it contains functions for converting audio sample formats libswresample.so libswscale.so is the FFmpeg image rescaling library libswscale.so