X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=dependencies%2Fffmpeg%2Fdoc%2Fgeneral.html;h=1ebcf042bb5442478eac5a6fec3dfabd3bb195d0;hb=e45a187f08dad48217884881c34ddbaf74b2c216;hp=5b9ee34b1425ae7a94d1a1601a2d5471c8d49dcf;hpb=8187cd6f479fd703bfae4249584a56e05ca027e5;p=casparcg diff --git a/dependencies/ffmpeg/doc/general.html b/dependencies/ffmpeg/doc/general.html index 5b9ee34b1..1ebcf042b 100644 --- a/dependencies/ffmpeg/doc/general.html +++ b/dependencies/ffmpeg/doc/general.html @@ -1,6 +1,7 @@ - + - +
-FFmpeg can be hooked up with a number of external libraries to add support
for more formats. None of them are used by default, their use has to be
-explicitly requested by passing the appropriate flags to ‘./configure’.
+explicitly requested by passing the appropriate flags to
+./configure
.
+
FFmpeg can use the OpenJPEG libraries for encoding/decoding J2K videos. Go to
+http://www.openjpeg.org/ to get the libraries and follow the installation
+instructions. To enable using OpenJPEG in FFmpeg, pass --enable-libopenjpeg
to
+‘./configure’.
Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer +libraries provide encoders for a number of audio codecs. +
+OpenCORE and VisualOn libraries are under the Apache License 2.0
+(see http://www.apache.org/licenses/LICENSE-2.0 for details), which is
+incompatible to the LGPL version 2.1 and GPL version 2. You have to
+upgrade FFmpeg’s license to LGPL version 3 (or if you have enabled
+GPL components, GPL version 3) by passing --enable-version3
to configure in
+order to use it.
+
The Fraunhofer AAC library is licensed under a license incompatible to the GPL
+and is not known to be compatible to the LGPL. Therefore, you have to pass
+--enable-nonfree
to configure to use it.
+
FFmpeg can make use of the OpenCORE libraries for AMR-NB decoding/encoding and AMR-WB decoding.
-Go to http://sourceforge.net/projects/opencore-amr/ and follow the instructions for
-installing the libraries. Then pass --enable-libopencore-amrnb
and/or
---enable-libopencore-amrwb
to configure to enable the libraries.
+
Go to http://sourceforge.net/projects/opencore-amr/ and follow the
+instructions for installing the libraries.
+Then pass --enable-libopencore-amrnb
and/or
+--enable-libopencore-amrwb
to configure to enable them.
Note that OpenCORE is under the Apache License 2.0 (see -http://www.apache.org/licenses/LICENSE-2.0 for details), which is -incompatible with the LGPL version 2.1 and GPL version 2. You have to -upgrade FFmpeg’s license to LGPL version 3 (or if you have enabled -GPL components, GPL version 3) to use it. + +
FFmpeg can make use of the VisualOn AACenc library for AAC encoding. +
+Go to http://sourceforge.net/projects/opencore-amr/ and follow the
+instructions for installing the library.
+Then pass --enable-libvo-aacenc
to configure to enable it.
+
FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB encoding. +
+Go to http://sourceforge.net/projects/opencore-amr/ and follow the
+instructions for installing the library.
+Then pass --enable-libvo-amrwbenc
to configure to enable it.
FFmpeg can make use of the Fraunhofer AAC library for AAC encoding. +
+Go to http://sourceforge.net/projects/opencore-amr/ and follow the
+instructions for installing the library.
+Then pass --enable-libfdk-aac
to configure to enable it.
+
FFmpeg can make use of the LAME library for MP3 encoding. +
+Go to http://lame.sourceforge.net/ and follow the
+instructions for installing the library.
+Then pass --enable-libmp3lame
to configure to enable it.
+
FFmpeg can make use of the TwoLAME library for MP2 encoding. +
+Go to http://www.twolame.org/ and follow the
+instructions for installing the library.
+Then pass --enable-libtwolame
to configure to enable it.
+
FFmpeg can make use of the libvpx library for VP8/VP9 encoding. +
+Go to http://www.webmproject.org/ and follow the instructions for
+installing the library. Then pass --enable-libvpx
to configure to
+enable it.
+
FFmpeg can make use of the libwavpack library for WavPack encoding. +
+Go to http://www.wavpack.com/ and follow the instructions for
+installing the library. Then pass --enable-libwavpack
to configure to
+enable it.
+
FFmpeg can make use of the x264 library for H.264 encoding. +
+Go to http://www.videolan.org/developers/x264.html and follow the
+instructions for installing the library. Then pass --enable-libx264
to
+configure to enable it.
+
x264 is under the GNU Public License Version 2 or later +(see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html for +details), you must upgrade FFmpeg’s license to GPL in order to use it. +
iLBC is a narrowband speech codec that has been made freely available +by Google as part of the WebRTC project. libilbc is a packaging friendly +copy of the iLBC codec. FFmpeg can make use of the libilbc library for +iLBC encoding and decoding. +
+Go to https://github.com/dekkers/libilbc and follow the instructions for
+installing the library. Then pass --enable-libilbc
to configure to
+enable it.
+
libzvbi is a VBI decoding library which can be used by FFmpeg to decode DVB +teletext pages and DVB teletext subtitles. +
+Go to http://sourceforge.net/projects/zapping/ and follow the instructions for
+installing the library. Then pass --enable-libzvbi
to configure to
+enable it.
+
libzvbi is licensed under the GNU General Public License Version 2 or later +(see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html for details), +you must upgrade FFmpeg’s license to GPL in order to use it. +
You can use the -formats
and -codecs
options to have an exhaustive list.
Name | Encoding | Decoding | Comments |
.Y.U.V | X | X | one raw file per component |
animated GIF | X | X | Only uncompressed GIFs are generated. |
animated GIF | X | X | |
BMP | X | X | Microsoft BMP image |
PIX | X | PIX is an image format used in the Argonaut BRender engine. | |
DPX | X | X | Digital Picture Exchange |
EXR | X | OpenEXR | |
JPEG | X | X | Progressive JPEG is not supported. |
JPEG 2000 | X | X | |
JPEG-LS | X | X | |
PGM | X | X | Portable GrayMap image |
PGMYUV | X | X | PGM with U and V components in YUV 4:2:0 |
PIC | X | Pictor/PC Paint | |
PNG | X | X | 2/4 bpp not supported yet |
PNG | X | X | |
PPM | X | X | Portable PixelMap image |
PTX | X | V.Flash PTX format | |
SGI | X | X | SGI RGB image format |
Sun Rasterfile | X | Sun RAS image format | |
Sun Rasterfile | X | X | Sun RAS image format |
TIFF | X | X | YUV, JPEG and some extension is not supported yet. |
Truevision Targa | X | X | Targa (.TGA) image format |
WebP | X | WebP image format | |
XBM | X | X | X BitMap image format |
XFace | X | X | X-Face image format |
XWD | X | X | X Window Dump image format |
X
means that encoding (resp. decoding) is supported.
@@ -342,13 +488,14 @@ following image formats are supported:
Name | Encoding | Decoding | Comments |
8SVX audio | X | ||
8SVX exponential | X | ||
8SVX fibonacci | X | ||
AAC+ | E | X | encoding supported through external library libaacplus |
AAC | E | X | encoding supported through external library libfaac and libvo-aacenc |
AC-3 | IX | X | |
ADPCM 4X Movie | X | ||
ADPCM IMA WAV | X | X | |
ADPCM IMA Westwood | X | ||
ADPCM ISS IMA | X | Used in FunCom games. | |
ADPCM IMA Dialogic | X | ||
ADPCM IMA Duck DK3 | X | Used in some Sega Saturn console games. | |
ADPCM IMA Duck DK4 | X | Used in some Sega Saturn console games. | |
ADPCM IMA Radical | X | ||
ADPCM Microsoft | X | X | |
ADPCM MS IMA | X | X | |
ADPCM Nintendo Gamecube AFC | X | ||
ADPCM Nintendo Gamecube DTK | X | ||
ADPCM Nintendo Gamecube THP | X | ||
ADPCM QT IMA | X | X | |
ADPCM SEGA CRI ADX | X | X | Used in Sega Dreamcast games. |
ADPCM Shockwave Flash | X | X | |
ADPCM SMJPEG IMA | X | Used in certain Loki game ports. | |
ADPCM Sound Blaster Pro 2-bit | X | ||
ADPCM Sound Blaster Pro 2.6-bit | X | ||
ADPCM Sound Blaster Pro 4-bit | X | ||
ADPCM Yamaha | X | X | |
AMR-NB | E | X | encoding supported through external library libopencore-amrnb |
AMR-WB | E | X | encoding supported through external library libvo-amrwbenc |
Amazing Studio PAF Audio | X | ||
Apple lossless audio | X | X | QuickTime fourcc ’alac’ |
Atrac 1 | X | ||
Atrac 3 | X | ||
ATRAC1 | X | ||
ATRAC3 | X | ||
Bink Audio | X | Used in Bink and Smacker files in many games. | |
CELT (Opus) | E | decoding supported through external library libcelt | |
CELT | E | decoding supported through external library libcelt | |
Delphine Software International CIN audio | X | Codec used in Delphine Software International games. | |
Discworld II BMV Audio | X | ||
COOK | X | All versions except 5.1 are supported. | |
DCA (DTS Coherent Acoustics) | X | X | |
DPCM id RoQ | X | X | Used in Quake III, Jedi Knight 2, other computer games. |
DPCM id RoQ | X | X | Used in Quake III, Jedi Knight 2 and other computer games. |
DPCM Interplay | X | Used in various Interplay computer games. | |
DPCM Sierra Online | X | Used in Sierra Online game audio files. | |
DPCM Sol | X | ||
DSP Group TrueSpeech | X | ||
DV audio | X | ||
Enhanced AC-3 | X | X | |
EVRC (Enhanced Variable Rate Codec) | X | ||
FLAC (Free Lossless Audio Codec) | X | IX | |
G.723.1 | X | X | |
G.729 | X | ||
GSM | E | X | encoding supported through external library libgsm |
GSM Microsoft variant | E | X | encoding supported through external library libgsm |
IAC (Indeo Audio Coder) | X | ||
iLBC (Internet Low Bitrate Codec) | E | E | encoding and decoding supported through external library libilbc |
IMC (Intel Music Coder) | X | ||
MACE (Macintosh Audio Compression/Expansion) 3:1 | X | ||
MACE (Macintosh Audio Compression/Expansion) 6:1 | X | ||
MLP (Meridian Lossless Packing) | X | Used in DVD-Audio discs. | |
Monkey’s Audio | X | Only versions 3.97-3.99 are supported. | |
Monkey’s Audio | X | ||
MP1 (MPEG audio layer 1) | IX | ||
MP2 (MPEG audio layer 2) | IX | IX | |
MP2 (MPEG audio layer 2) | IX | IX | libtwolame can be used alternatively for encoding. |
MP3 (MPEG audio layer 3) | E | IX | encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported |
MPEG-4 Audio Lossless Coding (ALS) | X | ||
Musepack SV7 | X | ||
Musepack SV8 | X | ||
Nellymoser Asao | X | X | |
Opus | E | E | supported through external library libopus |
PCM A-law | X | X | |
PCM mu-law | X | X | |
PCM 16-bit little-endian planar | X | ||
PCM signed 8-bit planar | X | X | |
PCM signed 16-bit big-endian planar | X | X | |
PCM signed 16-bit little-endian planar | X | X | |
PCM signed 24-bit little-endian planar | X | X | |
PCM signed 32-bit little-endian planar | X | X | |
PCM 32-bit floating point big-endian | X | X | |
PCM 32-bit floating point little-endian | X | X | |
PCM 64-bit floating point big-endian | X | X | |
PCM unsigned 24-bit little-endian | X | X | |
PCM unsigned 32-bit big-endian | X | X | |
PCM unsigned 32-bit little-endian | X | X | |
PCM Zork | X | X | |
PCM Zork | X | ||
QCELP / PureVoice | X | ||
QDesign Music Codec 2 | X | There are still some distortions. | |
RealAudio 1.0 (14.4K) | X | X | Real 14400 bit/s codec |
RealAudio 2.0 (28.8K) | X | Real 28800 bit/s codec | |
RealAudio 3.0 (dnet) | IX | X | Real low bitrate AC-3 codec |
RealAudio Lossless | X | ||
RealAudio SIPR / ACELP.NET | X | ||
Shorten | X | ||
Sierra VMD audio | X | Used in Sierra VMD files. | |
Smacker audio | X | ||
SMPTE 302M AES3 audio | X | ||
SMPTE 302M AES3 audio | X | X | |
Sonic | X | X | experimental codec |
Sonic lossless | X | X | experimental codec |
Speex | E | supported through external library libspeex | |
True Audio (TTA) | X | ||
Speex | E | E | supported through external library libspeex |
TAK (Tom’s lossless Audio Kompressor) | X | ||
True Audio (TTA) | X | X | |
TrueHD | X | Used in HD-DVD and Blu-Ray discs. | |
TwinVQ (VQF flavor) | X | ||
VIMA | X | Used in LucasArts SMUSH animations. | |
Vorbis | E | X | A native but very primitive encoder exists. |
WavPack | X | ||
Voxware MetaSound | X | ||
WavPack | X | X | |
Westwood Audio (SND1) | X | ||
Windows Media Audio 1 | X | X | |
Windows Media Audio 2 | X | X | |
Windows Media Audio Lossless | X | ||
Windows Media Audio Pro | X | ||
Windows Media Audio Voice | X |
Name | Muxing | Demuxing | Encoding | Decoding |
SSA/ASS | X | X | X | X |
3GPP Timed Text | X | X | ||
AQTitle | X | X | ||
DVB | X | X | X | X |
DVB teletext | X | E | ||
DVD | X | X | X | X |
MicroDVD | X | X | ||
JACOsub | X | X | X | |
MicroDVD | X | X | X | |
MPL2 | X | X | ||
MPsub (MPlayer) | X | X | ||
PGS | X | |||
PJS (Phoenix) | X | X | ||
RealText | X | X | ||
SAMI | X | X | ||
SSA/ASS | X | X | X | X |
SubRip (SRT) | X | X | X | X |
SubViewer v1 | X | X | ||
SubViewer | X | X | ||
TED Talks captions | X | X | ||
VobSub (IDX+SUB) | X | X | ||
VPlayer | X | X | ||
WebVTT | X | X | X | |
XSUB | X | X |
X
means that the feature is supported.
E
means that support is provided through an external library.
+
Name | Support |
Apple HTTP Live Streaming | X |
file | X |
Gopher | X |
HLS | X |
HTTP | X |
MMS | X |
HTTPS | X |
MMSH | X |
MMST | X |
pipe | X |
RTMP | X |
RTMPE | X |
RTMPS | X |
RTMPT | X |
RTMPTE | X |
RTMPTS | X |
RTP | X |
SCTP | X |
TCP | X |
TLS | X |
UDP | X |
X
means that the protocol is supported.
E
means that support is provided through an external library.
+
X
means that input/output is supported.
Using a cross-compiler is preferred for various reasons. -
- -For information about compiling FFmpeg on OS/2 see -http://www.edm2.com/index.php/FFmpeg. -
- -Some parts of FFmpeg cannot be built with version 2.15 of the GNU -assembler which is still provided by a few AMD64 distributions. To -make sure your compiler really uses the required version of gas -after a binutils upgrade, run: -
-$(gcc -print-prog-name=as) --version - |
If not, then you should install a different compiler that has no
-hard-coded path to gas. In the worst case pass --disable-asm
-to configure.
-
BSD make will not build FFmpeg, you need to install and use GNU Make -(‘gmake’). -
- -GNU Make is required to build FFmpeg, so you have to invoke (‘gmake’),
-standard Solaris Make will not work. When building with a non-c99 front-end
-(gcc, generic suncc) add either --extra-libs=/usr/lib/values-xpg6.o
-or --extra-libs=/usr/lib/64/values-xpg6.o
to the configure options
-since the libc is not c99-compliant by default. The probes performed by
-configure may raise an exception leading to the death of configure itself
-due to a bug in the system shell. Simply invoke a different shell such as
-bash directly to work around this:
-
bash ./configure - |
MacOS X on PowerPC or ARM (iPhone) requires a preprocessor from -http://github.com/yuvi/gas-preprocessor to build the optimized -assembler functions. Just download the Perl script and put it somewhere -in your PATH, FFmpeg’s configure will pick it up automatically. -
- -To get help and instructions for building FFmpeg under Windows, check out -the FFmpeg Windows Help Forum at -http://ffmpeg.arrozcru.org/. -
- -FFmpeg can be built to run natively on Windows using the MinGW tools. Install -the latest versions of MSYS and MinGW from http://www.mingw.org/. -You can find detailed installation instructions in the download -section and the FAQ. -
-FFmpeg does not build out-of-the-box with the packages the automated MinGW -installer provides. It also requires coreutils to be installed and many other -packages updated to the latest version. The minimum version for some packages -are listed below: -
-FFmpeg automatically passes -fno-common
to the compiler to work around
-a GCC bug (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216).
-
Notes: -
-make -r
instead of plain make
. This
-speed up is close to non-existent for normal one-off builds and is only
-noticeable when running make for a second time (for example in
-make install
).
-
-./configure --enable-shared
when configuring FFmpeg,
-you can build the FFmpeg libraries (e.g. libavutil, libavcodec,
-libavformat) as DLLs.
-
-As stated in the FAQ, FFmpeg will not compile under MSVC++. However, if you -want to use the libav* libraries in your own applications, you can still -compile those applications using MSVC++. But the libav* libraries you link -to must be built with MinGW. However, you will not be able to debug -inside the libav* libraries, since MSVC++ does not recognize the debug -symbols generated by GCC. -We strongly recommend you to move over from MSVC++ to MinGW tools. -
-This description of how to use the FFmpeg libraries with MSVC++ is based on -Microsoft Visual C++ 2005 Express Edition. If you have a different version, -you might have to modify the procedures slightly. -
- -Assuming you have just built and installed FFmpeg in ‘/usr/local’. -
-inline
keyword used by
-FFmpeg, so you must add this line before #include
ing libav*:
-#define inline _inline - |
This is how to create DLL and LIB files that are compatible with MSVC++: -
-call "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat" - |
Alternatively, you may start the ‘Visual Studio 2005 Command Prompt’, -and run ‘c:\msys\1.0\msys.bat’ from there. -
-lib.exe
. If you get a help message
-from ‘Microsoft (R) Library Manager’, this means your environment
-variables are set up correctly, the ‘Microsoft (R) Library Manager’
-is on the path and will be used by FFmpeg to create
-MSVC++-compatible import libraries.
-
-./configure --enable-shared -make -make install - |
Your install path (‘/usr/local/’ by default) should now have the -necessary DLL and LIB files under the ‘bin’ directory. -
-Alternatively, build the libraries with a cross compiler, according to -the instructions below in Cross compilation for Windows with Linux. -
-To use those files with MSVC++, do the same as you would do with -the static libraries, as described above. But in Step 4, -you should only need to add the directory where the LIB files are installed -(i.e. ‘c:\msys\usr\local\bin’). This is not a typo, the LIB files are -installed in the ‘bin’ directory. And instead of adding the static -libraries (‘libxxx.a’ files) you should add the MSVC import libraries -(‘avcodec.lib’, ‘avformat.lib’, and -‘avutil.lib’). Note that you should not use the GCC import -libraries (‘libxxx.dll.a’ files), as these will give you undefined -reference errors. There should be no need for ‘libmingwex.a’, -‘libgcc.a’, and ‘wsock32.lib’, nor any other external library -statically linked into the DLLs. -
-FFmpeg headers do not declare global data for Windows DLLs through the usual -dllexport/dllimport interface. Such data will be exported properly while -building, but to use them in your MSVC++ code you will have to edit the -appropriate headers and mark the data as dllimport. For example, in -libavutil/pixdesc.h you should have: -
extern __declspec(dllimport) const AVPixFmtDescriptor av_pix_fmt_descriptors[]; - |
Note that using import libraries created by dlltool requires
-the linker optimization option to be set to
-"References: Keep Unreferenced Data (/OPT:NOREF
)", otherwise
-the resulting binaries will fail during runtime. This isn’t
-required when using import libraries generated by lib.exe.
-This issue is reported upstream at
-http://sourceware.org/bugzilla/show_bug.cgi?id=12633.
-
To create import libraries that work with the /OPT:REF
option
-(which is enabled by default in Release mode), follow these steps:
-
Alternatively, in a normal command line prompt, call ‘vcvars32.bat’ -which sets up the environment variables for the Visual C++ tools -(the standard location for this file is -‘C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat’). -
-lib /machine:i386 /def:..\lib\avcodec-53.def /out:avcodec.lib -lib /machine:i386 /def:..\lib\avdevice-53.def /out:avdevice.lib -lib /machine:i386 /def:..\lib\avfilter-2.def /out:avfilter.lib -lib /machine:i386 /def:..\lib\avformat-53.def /out:avformat.lib -lib /machine:i386 /def:..\lib\avutil-51.def /out:avutil.lib -lib /machine:i386 /def:..\lib\swscale-2.def /out:swscale.lib - |
You must use the MinGW cross compilation tools available at -http://www.mingw.org/. -
-Then configure FFmpeg with the following options: -
./configure --target-os=mingw32 --cross-prefix=i386-mingw32msvc- - |
(you can change the cross-prefix according to the prefix chosen for the -MinGW tools). -
-Then you can easily test FFmpeg with Wine. -
- -Please use Cygwin 1.7.x as the obsolete 1.5.x Cygwin versions lack -llrint() in its C library. -
-Install your Cygwin with all the "Base" packages, plus the -following "Devel" ones: -
binutils, gcc4-core, make, git, mingw-runtime, texi2html - |
And the following "Utils" one: -
diffutils - |
Then run -
-./configure - |
to make a static build. -
-The current gcc4-core
package is buggy and needs this flag to build
-shared libraries:
-
./configure --enable-shared --disable-static --extra-cflags=-fno-reorder-functions - |
If you want to build FFmpeg with additional libraries, download Cygwin -"Devel" packages for Ogg and Vorbis from any Cygwin packages repository: -
libogg-devel, libvorbis-devel - |
These library packages are only available from -Cygwin Ports: -
-yasm, libSDL-devel, libdirac-devel, libfaac-devel, libgsm-devel, -libmp3lame-devel, libschroedinger1.0-devel, speex-devel, libtheora-devel, -libxvidcore-devel - |
The recommendation for libnut and x264 is to build them from source by -yourself, as they evolve too quickly for Cygwin Ports to be up to date. -
-Cygwin 1.7.x has IPv6 support. You can add IPv6 to Cygwin 1.5.x by means
-of the libgetaddrinfo-devel
package, available at Cygwin Ports.
-
With Cygwin you can create Windows binaries that do not need the cygwin1.dll. -
-Just install your Cygwin as explained before, plus these additional -"Devel" packages: -
gcc-mingw-core, mingw-runtime, mingw-zlib - |
and add some special flags to your configure invocation. -
-For a static build run -
./configure --target-os=mingw32 --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin - |
and for a build with shared libraries -
./configure --target-os=mingw32 --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin - |
-
- This document was generated by Kyle Schwarz on September 2, 2011 using texi2html 1.82.
-
-
+
Codec/format | Read | Write |
AVI | X | X |
DV | X | X |
GXF | X | X |
MOV | X | X |
MPEG1/2 | X | X |
MXF | X | X |