10 hours ago
Quote: Is there any way to add a new codec for Hybrid to use without recompiling it?No. And recompiling it is the smallest problem. Implementing support for a new format is a lot of work and requires a lot of reading.
Quote:It would be great to be able to use it in Hybrid.'Perceptually lossless video' is usually useless to me, so my personal interest is low.
Haven't seen any real comparison for it.
Haven't looked into compiling it for Linux and MacOS. (the Windows ffmpeg version that comes with Hybrid should already support it)
ffmpeg -h encoder=apvEncoder liboapv [liboapv APV]:
General capabilities: dr1 threads
Threading capabilities: other
Supported pixel formats: gray10le yuv422p10le yuv422p12le yuv444p10le yuv444p12le yuva444p10le yuva444p12le
liboapv AVOptions:
-preset <int> E..V....... Encoding preset for setting encoding speed (optimization level control) (from 0 to 4) (default medium)
fastest 0 E..V.......
fast 1 E..V.......
medium 2 E..V.......
slow 3 E..V.......
placebo 4 E..V.......
default 2 E..V.......
-qp <int> E..V....... Quantization parameter value for CQP rate control mode (from 0 to 63) (default 32)
-oapv-params <dictionary> E..V....... Override the apv configuration using a :-separated list of key=value parametershttps://ffmpeg.org/ffmpeg-codecs.html#liboapv mentions:
Quote:oapv-params (parse_apv_params)Any idea where to find the 'liboapv encoder user guide for a list of accepted parameter' ?
Set liboapvenc options using a list of key=value pairs separated by ":". See the liboapv encoder user guide for a list of accepted parameters.
Any idea what the presets do? If I added support for this format, I would need to know which settings are covered by the presets, so that the UI can reflect this when using a preset.
Any idea how to properly specify HDR signaling?
From the looks of it openapv uses its own container and is video only atm.
oapv_app_enc.exe --help____ ___ ___ _ __
/ __ \___ ___ ___ / _ | / _ \ | / / Encoder (v0.2.0.4)
/ /_/ / _ \/ -_) _ \/ __ |/ ___/ |/ /
\____/ .__/\__/_//_/_/ |_/_/ |___/
/_/
Syntax:
oapv_app_enc.exe -i 'input-file' [ options ]
Options:
--help
: list options
-v, --verbose [INTEGER] (optional) [2]
: verbose (log) level
- 0: no message
- 1: only error message
- 2: simple messages
- 3: frame-level messages
-i, --input [STRING]
: file name of input video
-o, --output [STRING] (optional) [None]
: file name of output bitstream
-r, --recon [STRING] (optional) [None]
: file name of reconstructed video
-w, --width [STRING] (optional) [None]
: pixel width of input video
-h, --height [STRING] (optional) [None]
: pixel height of input video
-q, --qp [STRING] (optional) [auto]
: QP value: 0 ~ (63 + (bitdepth - 10)*6)
- 10bit input: 0 ~ 63
- 12bit input: 0 ~ 75
- 'auto' means that the value is internally determined
-z, --fps [STRING] (optional) [None]
: frame rate (frames per second)
-m, --threads [STRING] (optional) [auto]
: force use of a specific number of threads
- 'auto' means that the value is internally determined
--preset [STRING] (optional) [None]
: encoder preset [fastest, fast, medium, slow, placebo]
-d, --input-depth [INTEGER] (optional) [10]
: input bit depth (8, 10-12)
- Note: 8bit input will be converted to 10bit
--input-csp [INTEGER] (optional) [-1]
: input color space (chroma format)
- 0: 400
- 2: 422
- 3: 444
- 4: 4444
- 5: P2(Planar Y, Combined CbCr, 422)
--family [STRING] (optional) [None]
: family name for bitrate setting
- 422-LQ: YCbCr422 low quality
- 422-SQ: YCbCr422 standard quality
- 422-HQ: YCbCr422 high quality
- 444-UQ: YCbCr444 ultra quality
Note: 'family' and 'bitrate' value cannot be set together.
The family and profile arguments should be set with the same
color space, if they coexists.
--profile [STRING] (optional) [422-10]
: profile string
- 422-10: YCbCr422 10bit (default)
- 422-12; YCbCr422 12bit
- 444-10: YCbCr444 10bit
- 444-12; YCbCr444 12bit
- 4444-10: YCbCr4444 10bit
- 4444-12; YCbCr4444 12bit
- 400-10: YCbCr400 (monochrome) 10bit
Note: Color space and bit depth of input video will be converted
automatically to support the given profile, if needs
The family and profile arguments should be set with the same
color space, if they coexists.
--level [STRING] (optional) [auto]
: level setting (1, 1.1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 6, 6.1, 7, 7.1)
- 'auto' means that the value is internally determined
--band [STRING] (optional) [auto]
: band setting (0, 1, 2, 3)
- 'auto' means that the value is internally determined
--max-au [INTEGER] (optional) [0]
: maximum number of access units to be encoded
--seek [INTEGER] (optional) [0]
: number of skipped access units before encoding
--qp-offset-c1 [STRING] (optional) [None]
: QP offset value for Component 1 (Cb)
--qp-offset-c2 [STRING] (optional) [None]
: QP offset value for Component 2 (Cr)
--qp-offset-c3 [STRING] (optional) [None]
: QP offset value for Component 3
--tile-w [STRING] (optional) [None]
: width of tile in units of pixels
--tile-h [STRING] (optional) [None]
: height of tile in units of pixels
--bitrate [STRING] (optional) [None]
: enable ABR rate control
bitrate in terms of kbits per second: Kbps(none,K,k), Mbps(M,m)
ex) 100 = 100K = 0.1M
--q-matrix-c0 [STRING] (optional) [None]
: custom quantization matrix for component 0 (Y) "q1 q2 ... q63 q64"
--q-matrix-c1 [STRING] (optional) [None]
: custom quantization matrix for component 1 (Cb) "q1 q2 ... q63 q64"
--q-matrix-c2 [STRING] (optional) [None]
: custom quantization matrix for component 2 (Cr) "q1 q2 ... q63 q64"
--q-matrix-c3 [STRING] (optional) [None]
: custom quantization matrix for component 3 "q1 q2 ... q63 q64"
--color-primaries [INTEGER] (optional) [-1]
: ColourPrimaries value defined in ITU-T H.273
- 1: bt709
- 2: unspecified
- 3: reserved
- 4: bt470m
- 5: bt470bg
- 6: smpte170m
- 7: smpte240m
- 8: film
- 9: bt2020
- 10: smpte4280
- 11: smpte4311
- 12: smpte4322
Note: This value should be set along with all other color aspects.
i.e. 'color-primaries', 'color-transfer', 'color-matrix',
and 'color-range' should all be set.
--color-transfer [INTEGER] (optional) [-1]
: TransferCharacteristics value defined in ITU-T H.273
- 1: bt709
- 2: unspecified
- 4: bt470m
- 5: bt470bg
- 6: smpte170m
- 7: smpte240m
- 8: linear
- 9: log100
- 10: log316
- 11: iec61966-2-4
- 12: bt1361e
- 13: iec61966-2-1
- 14: bt2020-10
- 15: bt2020-12
- 16: smpte2084
- 17: smpte428
- 18: hybrid log-gamma (HLG), arib-std-b67
Note: This value should be set along with all other color aspects.
i.e. 'color-primaries', 'color-transfer', 'color-matrix',
and 'color-range' should all be set.
--color-matrix [INTEGER] (optional) [-1]
: MatrixCoefficients value defined in ITU-T H.273
- 0: gbr
- 1: bt709
- 2: unspecified
- 4: fcc
- 5: bt470bg
- 6: smpte170m
- 7: smpte240m
- 8: ycgco
- 9: bt2020nc
- 10: bt2020c
- 11: smpte2085
- 12: chroma-derived-nc
- 13: chroma-derived-c
- 14: ictcp
Note: This value should be set along with all other color aspects.
i.e. 'color-primaries', 'color-transfer', 'color-matrix',
and 'color-range' should all be set.
--color-range [INTEGER] (optional) [-1]
: Color range
- 0: limited color range ('tv' color range)
- 1: full color range ('pc' color range)
Note: This value should be set along with all other color aspects.
i.e. 'color-primaries', 'color-transfer', 'color-matrix',
and 'color-range' should all be set.
--hash [FLAG] (optional) [Off]
: embed frame hash value for conformance checking in decoding
--master-display [STRING] (optional) [None]
: mastering display color volume metadata
--max-cll [STRING] (optional) [None]
: content light level information metadataHaven't tested it, do you know whether it supports pipe input?
In case it did, it might be better to use this instead of ffmpeg.
What can decode this?
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.

