Supported
- y4m pipes
- Frame tested support for 4:4:4, 4:2:2, 4:2:0. Probably 4:0:0 as well, untested.
- Frame tested support for 8, 10, 12 bit depth. Probably 14 and 16 as well, untested.
- VMAF tools
- IVF reader
- Frameserver
- TODO: make list per encoder and decoder.
Bitdepth / subsampling Frame support matrix
Depth/Sampling |
4:0:0 |
4:2:0 |
4:2:2 |
4:4:4 |
8-bit |
✅ |
✅ |
✅ |
✅ |
10-bit |
✅ |
✅ |
⚠️ |
⚠️ |
12-bit |
⚠️ |
⚠️ |
⚠️ |
✅ |
14-bit |
❔ |
❔ |
❔ |
❔ |
16-bit |
❔ |
❔ |
❔ |
❔ |
Legend:
✅ = supported, tested regularly
⚠️ = supported, tested sparsely/manually
❔ = probably supported, not tested
❌ = unsupported
Format |
Decoder |
Encoder |
Notes |
YUV4MPEG2 |
✅ |
❌ |
Supports most bitdepth and chroma subsampling. Library limited, not format limited. Decoding via S.O.N.G/Ignite |
H.264 |
❌ |
✅ |
Supports 8-bit and 10-bit; 4:0:0, 4:2:0, 4:2:2, 4:4:4 chroma subsampling. Encoding via x264 into .h264 bitstream. |
H.265 |
❌ |
❌ |
|
VP9 |
❌ |
❌ |
|
AV1 |
✅ |
✅ |
Supports 8-bit, 10-bit and 12-bit; 4:0:0, 4:2:0, 4:2:2, 4:4:4 chroma subsampling. Decoding via dav1d from .ivf bitstream Encoding via libaom-av1 into .ivf bitstream. |
Additionally, a safe command-line call to ffmpeg can be made to decode into compatible YUV4MPEG2 via the integrated ffmpeg decoder.
TODO
- No SAR/PAR handling.
- No color primary / transfer / matrix coefficients handling.
Several Golang build tags exist to change which features are included in the project.
disable_library_[library]
This tag disables support for the specified library dependencies.
Current implemented [library]: libdav1d, libaom, libx264, libvmaf
.