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 @@ - + - + -General Documentation +FFmpeg documentation : General - - - - + + - - + + - - + +
+

General Documentation

@@ -49,11 +34,25 @@ ul.toc {list-style: none} -
- -

1. external libraries

+ +

1. External libraries

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. +

+ +

1.1 OpenJPEG

+ +

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’.

+ + +

1.2 OpenCORE, VisualOn, and Fraunhofer libraries

+ +

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. +

-

1.1 OpenCORE AMR

+

1.2.1 OpenCORE AMR

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. + +

1.2.2 VisualOn AAC encoder library

+ +

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. +

+ +

1.2.3 VisualOn AMR-WB encoder library

+ +

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.

+ +

1.2.4 Fraunhofer AAC library

- -

2. Supported File Formats and Codecs

+

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. +

+ +

1.3 LAME

+ +

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. +

+ +

1.4 TwoLAME

+ +

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. +

+ +

1.5 libvpx

+ +

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. +

+ +

1.6 libwavpack

+ +

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. +

+ +

1.7 x264

+ +

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. +

+ +

1.8 libilbc

+ +

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. +

+ +

1.9 libzvbi

+ +

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. +

+ + +

2. Supported File Formats, Codecs or Features

You can use the -formats and -codecs options to have an exhaustive list.

@@ -131,24 +233,36 @@ library: NameEncodingDecodingComments 4xmX4X Technologies format, used in some games. 8088flex TMVX +ACT VoiceXcontains G.729 audio Adobe FilmstripXX Audio IFF (AIFF)XX American Laser Games MMXMultimedia format used in games like Mad Dog McCree. 3GPP AMRXX +Amazing Studio Packed Animation FileXMultimedia format used in game Heart Of Darkness. Apple HTTP Live StreamingX +Artworx Data FormatX +ADPXAudio format used on the Nintendo Gamecube. +AFCXAudio format used on the Nintendo Gamecube. ASFXX +ASTXXAudio format used on the Nintendo Wii. AVIXX -AVISynthX +AviSynthX +AVRXAudio format used on Mac. AVSXMultimedia format used by the Creature Shock game. Beam Software SIFFXAudio and video format used in some games by Beam Software. Bethesda Softworks VIDXUsed in some games from Bethesda Softworks. +Binary textX BinkXMultimedia format used by many games. Bitmap Brothers JVXUsed in Z and Z95 games. Brute Force & IgnoranceXUsed in the game Flash Traffic: City of Angels. +BRSTMXAudio format used on the Nintendo Wii. BWFXX +CRI ADXXXAudio-only format used in console video games. +Discworld II BMVX Interplay C93XUsed in the game Cyberia from Interplay. Delphine Software International CINXMultimedia format used by Delphine Software games. CD+GXVideo format used by CD+G karaoke disks +Commodore CDXLXAmiga CD video format Core Audio FormatXXApple Core Audio Format CRC testing formatX Creative VoiceXXCreated for the Sound Blaster Pro. @@ -161,6 +275,7 @@ library: game and different game cutscenes repacked for use with ScummVM. Electronic Arts cdataX Electronic Arts MultimediaXUsed in various EA games; files have extensions like WVE and UV2. +Ensoniq Paris Audio FileX FFM (FFserver live feed)XX Flash (SWF)XX Flash 9 (AVM2)XXOnly embedded audio is decoded. @@ -168,24 +283,36 @@ library: Flash Video (FLV)XXMacromedia Flash video files framecrc testing formatX FunCom ISSXAudio format used in various games from FunCom like The Longest Journey. -GIF AnimationX +G.723.1XX +G.729 BITXX +G.729 rawX +GIF AnimationXX GXFXXGeneral eXchange Format SMPTE 360M, used by Thomson Grass Valley playout servers. +HNMXOnly version 4 supported, used in some games from Cryo Interactive +iCEDraw FileX +ICOXXMicrosoft Windows ICO id Quake II CIN videoX -id RoQXXUsed in Quake III, Jedi Knight 2, other computer games. +id RoQXXUsed in Quake III, Jedi Knight 2 and other computer games. IEC61937 encapsulationXX IFFXInterchange File Format +iLBCXX Interplay MVEXFormat used in various Interplay computer games. IV8XA format generated by IndigoVision 8000 video server. IVF (On2)XXA format used by libvpx +IRCAMXX +LATMXX LMLM4XUsed by Linux Media Labs MPEG-4 PCI boards LOASXcontains LATM multiplexed AAC audio +LVFX LXFXVR native stream format, used by Leitch/Harris’ video servers. MatroskaXX Matroska audioX FFmpeg metadataXXMetadata in text format. MAXIS XAXUsed in Sim City 3000; file extension .xa. MD StudioX +Metal Gear Solid: The Twin SnakesX +Megalux FrameXUsed by Megalux Ultimate Paint Mobotix .mxgX Monkey’s AudioX Motion Pixels MVIX @@ -204,12 +331,14 @@ library: Material eXchange Format (MXF)XXSMPTE 377M, used by D-Cinema, broadcast industry. Material eXchange Format (MXF), D-10 MappingXXSMPTE 386M, D-10/IMX Mapping. NC camera feedXNC (AVIP NC4600) camera streams +NIST SPeech HEader REsourcesX NTT TwinVQ (VQF)XNippon Telegraph and Telephone Corporation TwinVQ. Nullsoft Streaming VideoX NuppelVideoX NUTXXNUT Open Container Format OggXX Playstation Portable PMPX +Portable Voice FormatX TechnoTrend PVAXUsed by TechnoTrend DVB PCI boards. QCPX raw ADTS (AAC)XX @@ -219,12 +348,14 @@ library: raw DiracXX raw DNxHDXX raw DTSXX +raw DTS-HDX raw E-AC-3XX raw FLACXX raw GSMX raw H.261XX raw H.263XX raw H.264XX +raw HEVCX raw Ingenient MJPEGX raw MJPEGXX raw MLPX @@ -236,8 +367,9 @@ library: raw videoXX raw id RoQX raw ShortenX +raw TAKX raw TrueHDXX -raw VC-1X +raw VC-1XX raw PCM A-lawXX raw PCM mu-lawXX raw PCM signed 8 bitXX @@ -262,22 +394,28 @@ library: REDCODE R3DXFile format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio. RealMediaXX RedirectorX +RedSparkX Renderware TeXture DictionaryX RL2XAudio and video format used in some games by Entertainment Software Partners. RPL/ARMovieX Lego Mindstorms RSOXX +RSDX RTMPXXOutput is performed by publishing stream to RTMP server RTPXX RTSPXX SAPXX +SBGX SDPX Sega FILM/CPKXUsed in many Sega Saturn console games. +Silicon Graphics MovieX Sierra SOLX.sol files used in Sierra Online games. Sierra VMDXUsed in Sierra CD-ROM games. SmackerXMultimedia format used by many games. -Sony OpenMG (OMA)XAudio format used in Sony Sonic Stage and Sony Vegas. +SMJPEGXXUsed in certain Loki game ports. +SmushXMultimedia format used in some LucasArts games. +Sony OpenMG (OMA)XXAudio format used in Sony Sonic Stage and Sony Vegas. Sony PlayStation STRX -Sony Wave64 (W64)X +Sony Wave64 (W64)XX SoX native formatXX SUN AU formatXX Text filesX @@ -285,15 +423,17 @@ library: Tiertex Limited SEQXTiertex .seq files used in the DOS CD-ROM version of the game Flashback. True AudioX VC-1 test bitstreamXX +VivoX WAVXX -WavPackX +WavPackXX WebMXX -Windows Televison (WTV)X +Windows Televison (WTV)XX Wing Commander III movieXMultimedia format used in Origin’s Wing Commander III computer game. Westwood Studios audioXMultimedia format used in Westwood Studios games. Westwood Studios VQAXMultimedia format used in Westwood Studios games. XMVXMicrosoft video container used in Xbox games. xWMAXMicrosoft audio container used by XAudio 2. +eXtended BINary text (XBIN)X YUV4MPEG pipeXX Psygnosis YOPX @@ -309,9 +449,11 @@ following image formats are supported: - + + + @@ -322,13 +464,17 @@ following image formats are supported: - + - + + + + +
NameEncodingDecodingComments
.Y.U.VXXone raw file per component
animated GIFXXOnly uncompressed GIFs are generated.
animated GIFXX
BMPXXMicrosoft BMP image
PIXXPIX is an image format used in the Argonaut BRender engine.
DPXXXDigital Picture Exchange
EXRXOpenEXR
JPEGXXProgressive JPEG is not supported.
JPEG 2000XX
JPEG-LSXX
PGMXXPortable GrayMap image
PGMYUVXXPGM with U and V components in YUV 4:2:0
PICXPictor/PC Paint
PNGXX2/4 bpp not supported yet
PNGXX
PPMXXPortable PixelMap image
PTXXV.Flash PTX format
SGIXXSGI RGB image format
Sun RasterfileXSun RAS image format
Sun RasterfileXXSun RAS image format
TIFFXXYUV, JPEG and some extension is not supported yet.
Truevision TargaXXTarga (.TGA) image format
WebPXWebP image format
XBMXXX BitMap image format
XFaceXXX-Face image format
XWDXXX Window Dump image format

X means that encoding (resp. decoding) is supported. @@ -342,13 +488,14 @@ following image formats are supported: NameEncodingDecodingComments 4X MovieXUsed in certain computer games. 8088flex TMVX -8SVX exponentialX -8SVX fibonacciX A64 multicolorXCreates video suitable to be played on a commodore 64 (multicolor mode). +Amazing Studio PAF VideoX American Laser Games MMXUsed in games like Mad Dog McCree. -AMV VideoXUsed in Chinese MP3 players. +AMV VideoXXUsed in Chinese MP3 players. ANSI/ASCII artX +Apple Intermediate CodecX Apple MJPEG-BX +Apple ProResXX Apple QuickDrawXfourcc: qdrw Asus v1XXfourcc: ASV1 Asus v2XXfourcc: ASV2 @@ -358,27 +505,35 @@ following image formats are supported: Auravision Aura 2X Autodesk Animator Flic videoX Autodesk RLEXfourcc: AASC +Avid 1:1 10-bit RGB PackerXXfourcc: AVrp AVS (Audio Video Standard) videoXVideo encoding used by the Creature Shock game. +AYUVXXMicrosoft uncompressed packed 4:4:4:4 Beam Software VBX Bethesda VID videoXUsed in some games from Bethesda Softworks. Bink VideoX Bitmap Brothers JV videoX +y41p Brooktree uncompressed 4:1:1 12-bitXX Brute Force & IgnoranceXUsed in the game Flash Traffic: City of Angels. C93 videoXCodec used in Cyberia game. CamStudioXfourcc: CSCD CD+GXVideo codec for CD+G karaoke disks +CDXLXAmiga CD video codec Chinese AVS videoEXAVS1-P2, JiZhun profile, encoding through external library libxavs Delphine Software International CIN videoXCodec used in Delphine Software International games. +Discworld II BMV VideoX +Canopus Lossless CodecX CinepakX -Cirrus Logic AccuPakXfourcc: CLJR +Cirrus Logic AccuPakXXfourcc: CLJR +CPiA Video FormatX Creative YUV (CYUV)X DFAXCodec used in Chronomaster game. -DiracEEsupported through external libdirac/libschroedinger libraries +DiracEXsupported through external library libschroedinger Deluxe Paint AnimationX DNxHDXXaka SMPTE VC3 Duck TrueMotion 1.0Xfourcc: DUCK Duck TrueMotion 2.0Xfourcc: TM20 DV (Digital Video)XX +Dxtory capture formatX Feeble Files/ScummVM DXAXCodec originally used in Feeble Files game. Electronic Arts CMV videoXUsed in NHL 95 game. Electronic Arts Madcow videoX @@ -386,37 +541,48 @@ following image formats are supported: Electronic Arts TGQ videoX Electronic Arts TQI videoX Escape 124X -FFmpeg video codec #1XXexperimental lossless codec (fourcc: FFV1) +Escape 130X +FFmpeg video codec #1XXlossless codec (fourcc: FFV1) Flash Screen Video v1XXfourcc: FSV1 Flash Screen Video v2XX Flash Video (FLV)XXSorenson H.263 used in Flash +Forward UncompressedX FrapsX +Go2WebinarXfourcc: G2M4 H.261XX H.263 / H.263-1996XX H.263+ / H.263-1998 / H.263 version 2XX H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10EXencoding supported through external library libx264 -H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)EX +HEVCX +HNM version 4X HuffYUVXX HuffYUV FFmpeg variantXX IBM UltimotionXfourcc: ULTI id Cinematic videoXUsed in Quake II. id RoQ videoXXUsed in Quake III, Jedi Knight 2, other computer games. -IFF ILBMXIFF interlaved bitmap +IFF ILBMXIFF interleaved bitmap IFF ByteRun1XIFF run length encoded bitmap Intel H.263X Intel Indeo 2X Intel Indeo 3X +Intel Indeo 4X Intel Indeo 5X Interplay C93XUsed in the game Cyberia from Interplay. Interplay MVE videoXUsed in Interplay .MVE files. +J2KXX Karl Morton’s video codecXCodec used in Worms games. Kega Game Video (KGV1)XKega emulator screen capture codec. LagarithX LCL (LossLess Codec Library) MSZHX LCL (LossLess Codec Library) ZLIBEE LOCOX +LucasArts SmushXUsed in LucasArts games. lossless MJPEGXX +Microsoft ATC ScreenXAlso known as Microsoft Screen 3. +Microsoft Expression Encoder ScreenXAlso known as Microsoft Titanium Screen 2. Microsoft RLEX +Microsoft Screen 1XAlso known as Windows Media Video V7 Screen. +Microsoft Screen 2XAlso known as Windows Media Video V9 Screen. Microsoft Video 1X MimicXUsed in MSN Messenger Webcam streams. Miro VideoXLXfourcc: VIXL @@ -424,11 +590,8 @@ following image formats are supported: Mobotix MxPEG videoX Motion Pixels videoX MPEG-1 videoXX -MPEG-1/2 video XvMC (X-Video Motion Compensation)X -MPEG-1/2 video (VDPAU acceleration)X MPEG-2 videoXX -MPEG-4 part 2XX -  libxvidcore can be used alternatively for encoding. +MPEG-4 part 2XXlibxvidcore can be used alternatively for encoding. MPEG-4 part 2 Microsoft variant version 1X MPEG-4 part 2 Microsoft variant version 2XX MPEG-4 part 2 Microsoft variant version 3XX @@ -438,14 +601,16 @@ following image formats are supported: On2 VP5Xfourcc: VP50 On2 VP6Xfourcc: VP60,VP61,VP62 VP8EXfourcc: VP80, encoding supported through external library libvpx -planar RGBXfourcc: 8BPS +VP9EXencoding supported through external library libvpx +Pinnacle TARGA CineWave YUV16Xfourcc: Y216 +ProresXfourcc: apch,apcn,apcs,apco Q-team QPEGXfourccs: QPEG, Q1.0, Q1.1 QuickTime 8BPS videoX QuickTime Animation (RLE) videoXXfourcc: ’rle ’ QuickTime Graphics (SMC)Xfourcc: ’smc ’ QuickTime video (RPZA)Xfourcc: rpza -R10K AJA Kona 10-bit RGB CodecX -R210 Quicktime Uncompressed RGB 10-bitX +R10K AJA Kona 10-bit RGB CodecXX +R210 Quicktime Uncompressed RGB 10-bitXX Raw VideoXX RealVideo 1.0XX RealVideo 2.0XX @@ -453,7 +618,10 @@ following image formats are supported: RealVideo 4.0X Renderware TXD (TeXture Dictionary)XTexture dictionaries used by the Renderware Engine. RL2 videoXused in some games by Entertainment Software Partners +SGI RLE 8-bitX Sierra VMD videoXUsed in Sierra VMD files. +Silicon Graphics Motion Video Compressor 1 (MVC1)X +Silicon Graphics Motion Video Compressor 2 (MVC2)X Smacker videoXVideo encoding used in Smacker. SMPTE VC-1X SnowXXexperimental wavelet codec (fourcc: SNOW) @@ -462,9 +630,15 @@ following image formats are supported: Sorenson Vector Quantizer 3Xfourcc: SVQ3 Sunplus JPEG (SP5X)Xfourcc: SP5X TechSmith Screen Capture CodecXfourcc: TSCC +TechSmith Screen Capture Codec 2Xfourcc: TSC2 TheoraEXencoding supported through external library libtheora Tiertex Limited SEQ videoXCodec used in DOS CD-ROM FlashBack game. -V210 Quicktime Uncompressed 4:2:2 10-bitXX +Ut VideoXX +v210 QuickTime uncompressed 4:2:2 10-bitXX +v308 QuickTime uncompressed 4:4:4XX +v408 QuickTime uncompressed 4:4:4:4XX +v410 QuickTime uncompressed 4:4:4 10-bitXX +VBLE Lossless CodecX VMware Screen Codec / VMware VideoXCodec used in videos captured by VMware. Westwood Studios VQA (Vector Quantized Animation) videoX Windows Media ImageX @@ -477,6 +651,8 @@ following image formats are supported: WMV7XX YAMAHA SMAFXX Psygnosis YOP VideoX +yuv4XXlibquicktime uncompressed packed 4:2:0 +ZeroCodec Lossless VideoX ZLIBXXpart of LCL, encoder experimental Zip Motion Blocks VideoXXEncoder works only in PAL8. @@ -490,7 +666,9 @@ following image formats are supported: - + + + @@ -513,15 +691,18 @@ following image formats are supported: + + + + - @@ -529,15 +710,17 @@ following image formats are supported: + - - + + - + + - + @@ -545,24 +728,34 @@ following image formats are supported: + + + + + - + - + + - + + + + + @@ -583,28 +776,33 @@ following image formats are supported: - + + - + - - + + + + - + + +
NameEncodingDecodingComments
8SVX audioX
8SVX exponentialX
8SVX fibonacciX
AAC+EXencoding supported through external library libaacplus
AACEXencoding supported through external library libfaac and libvo-aacenc
AC-3IXX
ADPCM 4X MovieX
ADPCM IMA WAVXX
ADPCM IMA WestwoodX
ADPCM ISS IMAXUsed in FunCom games.
ADPCM IMA DialogicX
ADPCM IMA Duck DK3XUsed in some Sega Saturn console games.
ADPCM IMA Duck DK4XUsed in some Sega Saturn console games.
ADPCM IMA RadicalX
ADPCM MicrosoftXX
ADPCM MS IMAXX
ADPCM Nintendo Gamecube AFCX
ADPCM Nintendo Gamecube DTKX
ADPCM Nintendo Gamecube THPX
ADPCM QT IMAXX
ADPCM SEGA CRI ADXXXUsed in Sega Dreamcast games.
ADPCM Shockwave FlashXX
ADPCM SMJPEG IMAXUsed in certain Loki game ports.
ADPCM Sound Blaster Pro 2-bitX
ADPCM Sound Blaster Pro 2.6-bitX
ADPCM Sound Blaster Pro 4-bitX
ADPCM YamahaXX
AMR-NBEXencoding supported through external library libopencore-amrnb
AMR-WBEXencoding supported through external library libvo-amrwbenc
Amazing Studio PAF AudioX
Apple lossless audioXXQuickTime fourcc ’alac’
Atrac 1X
Atrac 3X
ATRAC1X
ATRAC3X
Bink AudioXUsed in Bink and Smacker files in many games.
CELT (Opus)Edecoding supported through external library libcelt
CELTEdecoding supported through external library libcelt
Delphine Software International CIN audioXCodec used in Delphine Software International games.
Discworld II BMV AudioX
COOKXAll versions except 5.1 are supported.
DCA (DTS Coherent Acoustics)XX
DPCM id RoQXXUsed in Quake III, Jedi Knight 2, other computer games.
DPCM id RoQXXUsed in Quake III, Jedi Knight 2 and other computer games.
DPCM InterplayXUsed in various Interplay computer games.
DPCM Sierra OnlineXUsed in Sierra Online game audio files.
DPCM SolX
DSP Group TrueSpeechX
DV audioX
Enhanced AC-3XX
EVRC (Enhanced Variable Rate Codec)X
FLAC (Free Lossless Audio Codec)XIX
G.723.1XX
G.729X
GSMEXencoding supported through external library libgsm
GSM Microsoft variantEXencoding supported through external library libgsm
IAC (Indeo Audio Coder)X
iLBC (Internet Low Bitrate Codec)EEencoding and decoding supported through external library libilbc
IMC (Intel Music Coder)X
MACE (Macintosh Audio Compression/Expansion) 3:1X
MACE (Macintosh Audio Compression/Expansion) 6:1X
MLP (Meridian Lossless Packing)XUsed in DVD-Audio discs.
Monkey’s AudioXOnly versions 3.97-3.99 are supported.
Monkey’s AudioX
MP1 (MPEG audio layer 1)IX
MP2 (MPEG audio layer 2)IXIX
MP2 (MPEG audio layer 2)IXIXlibtwolame can be used alternatively for encoding.
MP3 (MPEG audio layer 3)EIXencoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
MPEG-4 Audio Lossless Coding (ALS)X
Musepack SV7X
Musepack SV8X
Nellymoser AsaoXX
OpusEEsupported through external library libopus
PCM A-lawXX
PCM mu-lawXX
PCM 16-bit little-endian planarX
PCM signed 8-bit planarXX
PCM signed 16-bit big-endian planarXX
PCM signed 16-bit little-endian planarXX
PCM signed 24-bit little-endian planarXX
PCM signed 32-bit little-endian planarXX
PCM 32-bit floating point big-endianXX
PCM 32-bit floating point little-endianXX
PCM 64-bit floating point big-endianXX
PCM unsigned 24-bit little-endianXX
PCM unsigned 32-bit big-endianXX
PCM unsigned 32-bit little-endianXX
PCM ZorkXX
PCM ZorkX
QCELP / PureVoiceX
QDesign Music Codec 2XThere are still some distortions.
RealAudio 1.0 (14.4K)XXReal 14400 bit/s codec
RealAudio 2.0 (28.8K)XReal 28800 bit/s codec
RealAudio 3.0 (dnet)IXXReal low bitrate AC-3 codec
RealAudio LosslessX
RealAudio SIPR / ACELP.NETX
ShortenX
Sierra VMD audioXUsed in Sierra VMD files.
Smacker audioX
SMPTE 302M AES3 audioX
SMPTE 302M AES3 audioXX
SonicXXexperimental codec
Sonic losslessXXexperimental codec
SpeexEsupported through external library libspeex
True Audio (TTA)X
SpeexEEsupported through external library libspeex
TAK (Tom’s lossless Audio Kompressor)X
True Audio (TTA)XX
TrueHDXUsed in HD-DVD and Blu-Ray discs.
TwinVQ (VQF flavor)X
VIMAXUsed in LucasArts SMUSH animations.
VorbisEXA native but very primitive encoder exists.
WavPackX
Voxware MetaSoundX
WavPackXX
Westwood Audio (SND1)X
Windows Media Audio 1XX
Windows Media Audio 2XX
Windows Media Audio LosslessX
Windows Media Audio ProX
Windows Media Audio VoiceX
@@ -621,35 +819,64 @@ performance on systems without hardware floating point support). - + + + - + + + + + + + + + + + + + +
NameMuxingDemuxingEncodingDecoding
SSA/ASSXXXX
3GPP Timed TextXX
AQTitleXX
DVBXXXX
DVB teletextXE
DVDXXXX
MicroDVDXX
JACOsubXXX
MicroDVDXXX
MPL2XX
MPsub (MPlayer)XX
PGSX
PJS (Phoenix)XX
RealTextXX
SAMIXX
SSA/ASSXXXX
SubRip (SRT)XXXX
SubViewer v1XX
SubViewerXX
TED Talks captionsXX
VobSub (IDX+SUB)XX
VPlayerXX
WebVTTXXX
XSUBXX

X means that the feature is supported.

+

E means that support is provided through an external library. +

2.6 Network Protocols

- + - + + + + + + + + + + +
NameSupport
Apple HTTP Live StreamingX
fileX
GopherX
HLSX
HTTPX
MMSX
HTTPSX
MMSHX
MMSTX
pipeX
RTMPX
RTMPEX
RTMPSX
RTMPTX
RTMPTEX
RTMPTSX
RTPX
SCTPX
TCPX
TLSX
UDPX

X means that the protocol is supported.

+

E means that support is provided through an external library. +

2.7 Input/Output Devices

@@ -658,385 +885,36 @@ performance on systems without hardware floating point support). NameInputOutput ALSAXX BKTRX +cacaX DV1394X +Lavfi virtual deviceX +Linux framebufferX JACKX +LIBCDIOX LIBDC1394X +OpenALX OSSXX -Video4LinuxX -Video4Linux2X +PulseaudioX +SDLX +Video4Linux2XX VfW captureX X11 grabbingX

X means that input/output is supported.

+ +

2.8 Timecode

- -

3. Platform Specific information

- - -

3.1 DOS

- -

Using a cross-compiler is preferred for various reasons. -

- -

3.2 OS/2

- -

For information about compiling FFmpeg on OS/2 see -http://www.edm2.com/index.php/FFmpeg. -

- -

3.3 Unix-like

- -

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. -

- -

3.3.1 BSD

- -

BSD make will not build FFmpeg, you need to install and use GNU Make -(‘gmake’). -

- -

3.3.2 (Open)Solaris

- -

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
-
- - -

3.3.3 Darwin (MacOS X, iPhone)

- -

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. -

- -

3.4 Windows

- -

To get help and instructions for building FFmpeg under Windows, check out -the FFmpeg Windows Help Forum at -http://ffmpeg.arrozcru.org/. -

- -

3.4.1 Native Windows compilation

- -

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: -

- - - -

3.4.2 Microsoft Visual C++ compatibility

- -

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. -

- -

3.4.2.1 Using static libraries

- -

Assuming you have just built and installed FFmpeg in ‘/usr/local’. -

-
    -
  1. Create a new console application ("File / New / Project") and then -select "Win32 Console Application". On the appropriate page of the -Application Wizard, uncheck the "Precompiled headers" option. - -
  2. Write the source code for your application, or, for testing, just -copy the code from an existing sample application into the source file -that MSVC++ has already created for you. For example, you can copy -‘libavformat/output-example.c’ from the FFmpeg distribution. - -
  3. Open the "Project / Properties" dialog box. In the "Configuration" -combo box, select "All Configurations" so that the changes you make will -affect both debug and release builds. In the tree view on the left hand -side, select "C/C++ / General", then edit the "Additional Include -Directories" setting to contain the path where the FFmpeg includes were -installed (i.e. ‘c:\msys\1.0\local\include’). -Do not add MinGW’s include directory here, or the include files will -conflict with MSVC’s. - -
  4. Still in the "Project / Properties" dialog box, select -"Linker / General" from the tree view and edit the -"Additional Library Directories" setting to contain the ‘lib’ -directory where FFmpeg was installed (i.e. ‘c:\msys\1.0\local\lib’), -the directory where MinGW libs are installed (i.e. ‘c:\mingw\lib’), -and the directory where MinGW’s GCC libs are installed -(i.e. ‘C:\mingw\lib\gcc\mingw32\4.2.1-sjlj’). Then select -"Linker / Input" from the tree view, and add the files ‘libavformat.a’, -‘libavcodec.a’, ‘libavutil.a’, ‘libmingwex.a’, -‘libgcc.a’, and any other libraries you used (i.e. ‘libz.a’) -to the end of "Additional Dependencies". - -
  5. Now, select "C/C++ / Code Generation" from the tree view. Select -"Debug" in the "Configuration" combo box. Make sure that "Runtime -Library" is set to "Multi-threaded Debug DLL". Then, select "Release" in -the "Configuration" combo box and make sure that "Runtime Library" is -set to "Multi-threaded DLL". - -
  6. Click "OK" to close the "Project / Properties" dialog box. - -
  7. MSVC++ lacks some C99 header files that are fundamental for FFmpeg. -Get msinttypes from http://code.google.com/p/msinttypes/downloads/list -and install it in MSVC++’s include directory -(i.e. ‘C:\Program Files\Microsoft Visual Studio 8\VC\include’). - -
  8. MSVC++ also does not understand the inline keyword used by -FFmpeg, so you must add this line before #includeing libav*: -
     
    #define inline _inline
    -
    - -
  9. Build your application, everything should work. - -
- - -

3.4.2.2 Using shared libraries

- -

This is how to create DLL and LIB files that are compatible with MSVC++: -

-
    -
  1. Add a call to ‘vcvars32.bat’ (which sets up the environment -variables for the Visual C++ tools) as the first line of ‘msys.bat’. -The standard location for ‘vcvars32.bat’ is -‘C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat’, -and the standard location for ‘msys.bat’ is ‘C:\msys\1.0\msys.bat’. -If this corresponds to your setup, add the following line as the first line -of ‘msys.bat’: - -
     
    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. -

    -
  2. Within the MSYS shell, run 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. - -
  3. Build FFmpeg with - -
     
    ./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: -

    -
      -
    1. Open ‘Visual Studio 2005 Command Prompt’. - -

      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’). -

      -
    2. Enter the ‘bin’ directory where the created LIB and DLL files -are stored. - -
    3. Generate new import libraries with ‘lib.exe’: - -
       
      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
      -
      - -
    - -

    -

- -

3.4.3 Cross compilation for Windows with Linux

- -

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. -

- -

3.4.4 Compilation under Cygwin

- -

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. -

- -

3.4.5 Crosscompilation for Windows under Cygwin

- -

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/formatReadWrite
AVIXX
DVXX
GXFXX
MOVXX
MPEG1/2XX
MXFXX
-

- - +