A Dockerfile featuring several video encoding / processing / filtering utilities. ## Build and run ```bash $ DOCKER_BUILDKIT=1 docker build -t encoder . $ docker run -it --rm -v /path/to/mount/on/container:/mnt encoder ``` If you want to use newer VapourSynth API4 instead of API3, use this command instead of the first one: ```bash $ DOCKER_BUILDKIT=1 docker build -t encoder --target encoder-vapoursynth4 . ``` ## Included tools | Tool | Kind | Notes | |:--------------------------------------------------------------------------------:|:---------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------:| | [ffmpeg](https://johnvansickle.com/ffmpeg/) | General Tools | static build from latest release. Can be accessed via `$ ffmpeg` | | [ffmpeg-git](https://johnvansickle.com/ffmpeg/) | General Tools | static build from git snapshot. Can be accessed via `$ ffmpeg-git` | | [x264 stable](https://code.videolan.org/videolan/x264/-/tree/stable) | H.264 Encoder | x264, the best and fastest H.264 encoder. Can be accessed via `$ x264` | | [x264 master](https://code.videolan.org/videolan/x264/-/tree/master) | H.264 Encoder | Can be accessed via `$ x264-dev` | | [x265 3.5](https://bitbucket.org/multicoreware/x265_git/src/3.5/) | H.265 / HEVC Encoder | Can be accessed via `$ x265` | | [Kvazaar v2.2.0](https://github.com/ultravideo/kvazaar/tree/v2.2.0) | H.265 / HEVC Encoder | Can be accessed via `$ kvazaar` | | [uvg266 v0.4.1](https://github.com/ultravideo/uvg266/tree/v0.4.1) | H.266 / VVC Encoder | Can be accessed via `$ uvg266` or `$ uvg266-10bit` | | [vvenc v1.9.0](https://github.com/fraunhoferhhi/vvenc/tree/v1.9.0) | H.266 / VVC Encoder | Fraunhofer Versatile Video Encoder (VVenC). Can be accessed via `$ vvencapp` or `$ vvencFFapp` | | [VTM 21.2](https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/-/tree/VTM-21.2) | H.266 / VVC Encoder/Decoder | VTM reference software for VVC. Can be accessed via `$ VTMEncoder` or `$ VTMDecoder` | | [aom v3.7.0-rc1](https://aomedia.googlesource.com/aom/+/refs/tags/v3.7.0-rc1/) | AV1 Encoder/Decoder | Can be accessed via `$ aomenc` or `$ aomdec` | | [SVT-AV1 v1.6.0](https://gitlab.com/AOMediaCodec/SVT-AV1/-/releases/v1.6.0) | AV1 Encoder/Decoder | Can be accessed via `$ SvtAv1EncApp` or `$ SvtAv1DecApp` | | [rav1e p20230815](https://github.com/xiph/rav1e/tree/p20230815) | AV1 Encoder | Can be accessed via `$ rav1e` | | [Av1an 0.4.1](https://github.com/master-of-zen/Av1an/tree/0.4.1) | Encoding Tools | Cross-platform command-line AV1 / VP9 / H.265 / H.264 encoding framework with per scene quality encoding. Can be accessed via `$ av1an` | | [xeve v0.4.3-3890dae6](https://github.com/mpeg5/xeve/tree/v0.4.3-3890dae6) | MPEG-5 EVC Encoder | eXtra-fast Essential Video Encoder, MPEG-5 EVC (Essential Video Coding). Can be accessed via `$ xeveb` or `$ xeve` | | [revc master](https://github.com/revcx/revc/tree/master) | MPEG-5 EVC Encoder/Decoder | Can be accessed via `$ revce` or `$ revcd` | | [VapourSynth R55-API3](https://github.com/vapoursynth/vapoursynth/tree/R55-API3) | Processing Tools | VapourSynth API3. Can be accessed via `$ vspipe` | | [VapourSynth R62](https://github.com/vapoursynth/vapoursynth/tree/R62) | Processing Tools | VapourSynth API4. Can be accessed via `$ vspipe`. Requires using custom docker build target command. | | [FDK-AAC master](https://github.com/mstorsjo/fdk-aac) | AAC-LC/HE/HEv2 Encoder | Fraunhofer FDK AAC code from Android. Can be accessed via `$ aac-enc` | | [Sushi](https://github.com/FichteFoll/Sushi) | Subtitle Syncing | Automatic shifter for SRT and ASS subtitle based on audio streams. Can be accessed via `$ sushi` | | [vmaf v2.3.1](https://github.com/Netflix/vmaf/tree/v2.3.1) | Processing Tools | Perceptual video quality assessment based on multi-method fusion. Can be accessed via `$ vmaf` | | [MKVToolNix 78.0](https://gitlab.com/mbunkus/mkvtoolnix/-/tree/release-78.0) | Matroska Tools | Creating and working with Matroska files. | | [MediaInfo v23.07](https://github.com/MediaArea/MediaInfo/tree/v23.07) | General Tools | Convenient unified display of the most relevant technical and tag data for video and audio files. | ## VapourSynth API3 Extras | Tool | Kind | Notes | |:------------------------------------------------------------------------------------------------------------------------------------:|:---------:|:---------------------------------------------------------------------------------------------:| | [VapourSynth-TDeintMod r10.1](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-TDeintMod/tree/r10.1) | Plugin | TDeint filter for VapourSynth | | [fmtconv r28](https://github.com/EleonoreMizo/fmtconv/tree/r28) | Plugin | Format conversion tools for Vapoursynth and Avisynth+ | | [vapoursynth-mvtools](https://github.com/dubhater/vapoursynth-mvtools/tree/v23) | Plugin | Motion compensation and stuff | | [VapourSynth-FFT3DFilter 64323f0](https://github.com/myrsloik/VapourSynth-FFT3DFilter/tree/64323f0fdee4dd4fe429ee6287906dbae8e7571c) | Plugin | VapourSynth port of FFT3DFilter | | [znedi3 r2.1](https://github.com/sekrit-twc/znedi3/tree/r2.1) | Plugin | nnedi3 filter | | [descale r7](https://github.com/Irrational-Encoding-Wizardry/descale/tree/r7) | Plugin | VapourSynth plugin to undo upscaling | | [flash3kyuu_deband](https://github.com/SAPikachu/flash3kyuu_deband) | Plugin | A deband library and filter for avisynth/vapoursynth | | [VapourSynth-BM3D r9](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-BM3D/tree/r9) | Plugin | BM3D denoising filter for VapourSynth | | [VapourSynth-DFTTest r7](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-DFTTest/tree/r7) | Plugin | DFTTest filter for VapourSynth | | [VapourSynth-Yadifmod r10.1](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-Yadifmod/tree/r10.1) | Plugin | Yadifmod filter for VapourSynth | | [ffms2 ef243a](https://github.com/FFMS/ffms2) | Plugin | An FFmpeg based source library and Avisynth/VapourSynth plugin for easy frame accurate access | | [havsfunc 3b6a80](https://github.com/HomeOfVapourSynthEvolution/havsfunc) | Functions | Holy's ported AviSynth functions for VapourSynth | | [mvsfunc 90e185](https://github.com/HomeOfVapourSynthEvolution/mvsfunc) | Functions | mawen1250's VapourSynth functions | | [fvsfunc 29ced9](https://github.com/Irrational-Encoding-Wizardry/fvsfunc) | Functions | Small collection of VapourSynth functions | | [muvsfunc 6158bf](https://github.com/WolframRhodium/muvsfunc) | Functions | Muonium's VapourSynth functions | ## VapourSynth API4 Extras TODO: build new table