X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=doc%2Fgeneral.texi;h=dbdc3485982ef20043d79e80ec050092d1a5fa8a;hb=af7ec793d49e260aa4c5595d4947322fc91aa72d;hp=fe94c40386a234e57527a40428465014e560387c;hpb=0a319bcce5714f7183b0537892f7d37d7a31493a;p=ffmpeg diff --git a/doc/general.texi b/doc/general.texi index fe94c40386a..dbdc3485982 100644 --- a/doc/general.texi +++ b/doc/general.texi @@ -27,16 +27,26 @@ enable it. @section AMD AMF/VCE -FFmpeg can use the AMD Advanced Media Framework library under Windows -for accelerated H.264 and HEVC encoding on hardware with Video Coding Engine (VCE). +FFmpeg can use the AMD Advanced Media Framework library +for accelerated H.264 and HEVC(only windows) encoding on hardware with Video Coding Engine (VCE). -To enable support you must obtain the AMF framework header files from +To enable support you must obtain the AMF framework header files(version 1.4.9+) from @url{https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git}. Create an @code{AMF/} directory in the system include path. Copy the contents of @code{AMF/amf/public/include/} into that directory. Then configure FFmpeg with @code{--enable-amf}. +Initialization of amf encoder occurs in this order: +1) trying to initialize through dx11(only windows) +2) trying to initialize through dx9(only windows) +3) trying to initialize through vulkan + +To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and amf-amdgpu-pro +package(amdgru-pro contains, but does not install automatically) are required. + +This driver can be installed using amdgpu-pro-install script in official amd driver archive. + @section AviSynth FFmpeg can read AviSynth scripts as input. To enable support, pass @@ -46,22 +56,24 @@ without needing to search for these headers themselves. For Windows, supported AviSynth variants are @url{http://avisynth.nl, AviSynth 2.6 RC1 or higher} for 32-bit builds and -@url{http://avs-plus.net, AviSynth+ r1718 or higher} for 32-bit and 64-bit builds. +@url{http://avisynth.nl/index.php/AviSynth+, AviSynth+ r1718 or higher} for 32-bit and 64-bit builds. For Linux and OS X, the supported AviSynth variant is @url{https://github.com/avxsynth/avxsynth, AvxSynth}. @float NOTE -There is currently a regression in AviSynth+'s @code{capi.h} header as of -October 2016, which interferes with the ability for builds of FFmpeg to use -MSVC-built binaries of AviSynth. Until this is resolved, you can make sure -a known good version is installed by checking out a version from before -the regression occurred: - -@code{git clone -b MT git://github.com/AviSynth/AviSynthPlus.git @* -cd AviSynthPlus @* -git checkout -b oldheader b4f292b4dbfad149697fb65c6a037bb3810813f9 @* -make install PREFIX=/install/prefix} +In 2016, AviSynth+ added support for building with GCC. However, due to +the eccentricities of Windows' calling conventions, 32-bit GCC builds +of AviSynth+ are not compatible with typical 32-bit builds of FFmpeg. + +By default, FFmpeg assumes compatibility with 32-bit MSVC builds of +AviSynth+ since that is the most widely-used and entrenched build +configuration. Users can override this and enable support for 32-bit +GCC builds of AviSynth+ by passing @code{-DAVSC_WIN32_GCC32} to +@code{--extra-cflags} when configuring FFmpeg. + +64-bit builds of FFmpeg are not affected, and can use either MSVC or +GCC builds of AviSynth+ without any special flags. @end float @float NOTE @@ -95,6 +107,13 @@ Raw codec2 files are also supported. To make sense of them the mode in use needs to be specified as a format option: @code{ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav}. +@section dav1d + +FFmpeg can make use of the dav1d library for AV1 video decoding. + +Go to @url{https://code.videolan.org/videolan/dav1d} and follow the instructions for +installing the library. Then pass @code{--enable-libdav1d} to configure to enable it. + @section davs2 FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video decoding. @@ -234,6 +253,13 @@ FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos. Go to instructions. To enable using OpenJPEG in FFmpeg, pass @code{--enable-libopenjpeg} to @file{./configure}. +@section rav1e + +FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to encode videos. +Go to @url{https://github.com/xiph/rav1e/} and follow the instructions to build +the C library. To enable using rav1e in FFmpeg, pass @code{--enable-librav1e} +to @file{./configure}. + @section TwoLAME FFmpeg can make use of the TwoLAME library for MP2 encoding. @@ -459,6 +485,8 @@ library: @item IEC61937 encapsulation @tab X @tab X @item IFF @tab @tab X @tab Interchange File Format +@item IFV @tab @tab X + @tab A format used by some old CCTV DVRs. @item iLBC @tab X @tab X @item Interplay MVE @tab @tab X @tab Format used in various Interplay computer games. @@ -677,7 +705,7 @@ library: @item Psygnosis YOP @tab @tab X @end multitable -@code{X} means that encoding (resp. decoding) is supported. +@code{X} means that the feature in that column (encoding / decoding) is supported. @section Image Formats @@ -747,7 +775,7 @@ following image formats are supported: @tab X Window Dump image format @end multitable -@code{X} means that encoding (resp. decoding) is supported. +@code{X} means that the feature in that column (encoding / decoding) is supported. @code{E} means that support is provided through an external library. @@ -786,11 +814,13 @@ following image formats are supported: @item Autodesk RLE @tab @tab X @tab fourcc: AASC @item AV1 @tab E @tab E - @tab Supported through external libraries libaom and libdav1d + @tab Supported through external libraries libaom, libdav1d and librav1e @item Avid 1:1 10-bit RGB Packer @tab X @tab X @tab fourcc: AVrp @item AVS (Audio Video Standard) video @tab @tab X @tab Video encoding used by the Creature Shock game. +@item AVS2-P2/IEEE1857.4 @tab E @tab E + @tab Supported through external libraries libxavs2 and libdavs2 @item AYUV @tab X @tab X @tab Microsoft uncompressed packed 4:4:4:4 @item Beam Software VB @tab @tab X @@ -816,6 +846,8 @@ following image formats are supported: @tab Codec used in Delphine Software International games. @item Discworld II BMV Video @tab @tab X @item Canopus Lossless Codec @tab @tab X +@item CDToons @tab @tab X + @tab Codec used in various Broderbund games. @item Cinepak @tab @tab X @item Cirrus Logic AccuPak @tab X @tab X @tab fourcc: CLJR @@ -935,6 +967,8 @@ following image formats are supported: @tab Video encoding used in NuppelVideo files. @item On2 VP3 @tab @tab X @tab still experimental +@item On2 VP4 @tab @tab X + @tab fourcc: VP40 @item On2 VP5 @tab @tab X @tab fourcc: VP50 @item On2 VP6 @tab @tab X @@ -1029,7 +1063,7 @@ following image formats are supported: @tab Encoder works only in PAL8. @end multitable -@code{X} means that encoding (resp. decoding) is supported. +@code{X} means that the feature in that column (encoding / decoding) is supported. @code{E} means that support is provided through an external library. @@ -1044,8 +1078,10 @@ following image formats are supported: @item AAC+ @tab E @tab IX @tab encoding supported through external library libfdk-aac @item AC-3 @tab IX @tab IX +@item ACELP.KELVIN @tab @tab X @item ADPCM 4X Movie @tab @tab X @item APDCM Yamaha AICA @tab @tab X +@item ADPCM Argonaut Games @tab @tab X @item ADPCM CDROM XA @tab @tab X @item ADPCM Creative Technology @tab @tab X @tab 16 -> 4, 8 -> 4, 8 -> 3, 8 -> 2 @@ -1065,6 +1101,8 @@ following image formats are supported: @item ADPCM IMA Electronic Arts SEAD @tab @tab X @item ADPCM IMA Funcom @tab @tab X @item ADPCM IMA QuickTime @tab X @tab X +@item ADPCM IMA Simon & Schuster Interactive @tab @tab X +@item ADPCM IMA Ubisoft APM @tab @tab X @item ADPCM IMA Loki SDL MJPEG @tab @tab X @item ADPCM IMA WAV @tab X @tab X @item ADPCM IMA Westwood @tab @tab X @@ -1248,7 +1286,7 @@ following image formats are supported: @item Xbox Media Audio 2 @tab @tab X @end multitable -@code{X} means that encoding (resp. decoding) is supported. +@code{X} means that the feature in that column (encoding / decoding) is supported. @code{E} means that support is provided through an external library. @@ -1316,6 +1354,7 @@ performance on systems without hardware floating point support). @item TCP @tab X @item TLS @tab X @item UDP @tab X +@item ZMQ @tab E @end multitable @code{X} means that the protocol is supported.