Posts: 92
Threads: 16
Joined: Mar 2021
https://git.ffmpeg.org/gitweb/ffmpeg.git...ngelog#l48
Now VVC EVC LCEVC LC3/LC3plus D3D12VA Vulkan DXV DXT1 encoder
which one will be added to hybrid?
PS:How to make HDR10/DOVI metadata passthrough when encoding with libx264, libx265, and libsvtav1 in hybrid?
Posts: 10.976
Threads: 56
Joined: May 2017
25.10.2024, 22:09
(This post was last modified: 25.10.2024, 22:26 by Selur.)
Quote:which one will be added to hybrid?
Got no time plan on when or if I add support for vvc to Hybrid.
First, I'll probably would add support for vvencapp since it at has some info:
vvencapp: VVenC, the Fraunhofer H.266/VVC Encoder, version 1.12.0 [Windows][GCC 14.2.0][64 bit][SIMD=AVX2]
#======== General Options ================
-h, --help [0] show default help
--fullhelp [0] show full help
-v, --verbosity [info] verbosity level (0: silent, 1: error, 2: warning, 3: info, 4: notice, 5: verbose,
6: debug)
--stats [1] enable or disable printing of statistics (fps, bitrate, estimation of encoding
time)
--version [0] show version
--additional [] additional options as string (e.g: "bitrate=1000000 passes=1")
#======== Input Options ================
-i, --input [] original YUV input file name or '-' for reading from stdin
-s, --size [1920x1080] specify input resolution (WidthxHeight)
-c, --format [yuv420] set input format (yuv420, yuv420_10, yuv420_10_packed, yuv400 (gray), yuv400_10
(gray10)
-r, --framerate [60] temporal rate (framerate numerator) e.g. 25,30, 30000, 50,60, 60000
--framescale [1] temporal scale (framerate denominator) e.g. 1, 1001
--fps [60/1] framerate as int or fraction (num/denom)
--tickspersec [27000000] ticks per second for dts generation, (1..27000000, -1: ticks per frame=1)
-f, --frames [0] max. frames to encode [all]
-fs, --frameskip [0] number of frames to skip at start of input YUV [off]
--segment [off] when encoding multiple separate segments, specify segment position to enable segment concatenation (first, mid, last) [off]
first: first segment
mid : all segments between first and last segment
last : last segment
--y4m [0] force y4m input (only needed for input pipe, else enabled by .y4m file extension)
--logofile [] set logo overlay filename (json)
#======== Output Options ================
-o, --output [] bitstream output file name
#======== Encoder Options ================
--preset [medium] preset for detailed parameter configuration (faster, fast, medium, slow, slower,
medium_lowDecEnergy)
-b, --bitrate [0] bitrate for rate control (0: constant-QP encoding without rate control; otherwise
bits/second; use e.g. 1.5M, 1.5Mbps, 1500k, 1500kbps, 1500000bps, 1500000)
-m, --maxrate [0] approximate maximum instantaneous bitrate for constrained VBR in rate control (0:
no rate cap; use e.g. 3.5M, 3.5Mbps, 3500k, 3500kbps, 3500000bps, 3500000), use
suffix 'x' to specify as a multiple of target bitrate
-p, --passes [-1] number of encoding passes with rate control (1: single-pass, -1, 2: two-pass RC)
--pass [-1] rate control pass for two-pass rate control (-1: both, 1: first, 2: second pass)
--rcstatsfile [] rate control statistics file name
-q, --qp [-1] quantization parameter, QP (0, 1, .. 63)
--qpa [on] enable perceptually motivated QP adaptation based on XPSNR model (0: off, 1: on)
-t, --threads [-1] number of threads (multithreading; -1: resolution < 720p: 4, < 5K 2880p: 8, >= 5K
2880p: 12 threads)
--mtprofile [auto] set automatic multi-threading setting (-1: auto, 0: off, 1,2,3: on, enables tiles,
IFP and WPP automatically depending on the number of threads)
--ifp [auto] inter-frame parallelization(IFP) (-1: auto, 0: off, 1: on, with sync. offset of two
CTU lines)
-rt, --refreshtype [cra] intra refresh type (idr, cra, cra_cre: CRA, constrained RASL picture encoding, none, rpsei: Recovery Point SEI,
idr_no_radl: IDR, without leading pictures, use for DASH)
-rs, --refreshsec [1] intra period/refresh in seconds
-ip, --intraperiod [0] intra period in frames (0: specify intra period in seconds instead, see
-refreshsec)
--tiles [-1x-1] number of tile columns and rows
--internal-bitdepth [10] internal bitdepth (8, 10)
-aud, --accessunitdelimiter [auto] emit Access Unit Delimiter NALUs (-1: auto, 0: off, 1: on; default: auto - only if
needed by dependent options)
-vui, --vuiparameterspresent [auto]
emit VUI information (-1: auto, 0: off, 1: on; default: auto - only if needed by
dependent options)
-hrd, --hrdparameterspresent [1] emit VUI HRD information (0: off, 1: on)
-dph, --decodedpicturehash [off] control generation of decode picture hash SEI messages, (0: off, 1: md5, 2: crc, 3:
checksum)
#======== Profile, Level, Tier ================
--profile [auto] profile (auto, main_10, main_10_still_picture)
--level [auto] level limit (auto, 1.0, 2.0,2.1, 3.0,3.1, 4.0,4.1, 5.0,5.1,5.2, 6.0,6.1,6.2,6.3,
15.5)
--tier [main] tier for interpretation of level (main, high)
#======== HDR/SDR and Color Options ================
--sdr [off] set SDR mode + BT.709, BT.2020, BT.470 color space. use: off, sdr|sdr_709,
sdr_2020, sdr_470bg
--hdr [off] set HDR mode + BT.709 or BT.2020 color space (+ SEI messages for hlg) use: off,
pq|hdr10, pq_2020|hdr10_2020, hlg, hlg_2020
#======== Tracing ================
--tracechannellist [0] list all available tracing channels
--tracerule [''] tracing rule (ex: "D_CABAC:poc==8" or "D_REC_CB_LUMA:poc==8")
--tracefile [''] tracing file
#======== Film grain analysis ================
--fga [0] Experimental: Enable film grain analysis and generate FGC SEI message
At the beginning, I will probably not support: - setting profile, level, tier, since I (so far) have no clue what their restrictions are.
- encoding hdr, since I don't see how one would set the hdr10&co information in the video stream. (hdr10 could be added by signaling the parameters through the container, when mkv wss used)
- anything other than yuv420, since from the looks of it, the encoder doesn't support it.
- muxing to mkv, since mkvtoolnix does not seem to support muxing atm. (https://fossies.org/linux/mkvtoolnix/src...parser.cpp some code is there, but it's all commented out)
Quote: PS:How to make HDR10/DOVI metadata passthrough when encoding with libx264, libx265, and libsvtav1 in hybrid?
Hybrid does not support passthrough of dovi or HDR-10+ metadata. You have to add the metadata file to x265 in the configuration. x265 is the only encoder in Hybrid that supports Dovi and HDR-10+.
x264: afaik. H.264 has not HDR support, so if you got some decoder which would support HDR10 for H.264 you will need to add those settings through 'Config->MKV tagging->VUI->Matroska advanced video signaling'.
x265: x265->Signaling has options for HDR (
svt-av1: SVT-AV1->Signaling has options for HDR-10; according to "SvtAv1EncApp.exe --help" there are no options for dovi.
Cu Selur
Posts: 10.976
Threads: 56
Joined: May 2017
26.10.2024, 18:21
(This post was last modified: 26.10.2024, 18:22 by Selur.)
Uploaded a dev version with some basic support for VVenC.
Not sure whether this will be available in the next release.
Haven't tested it a lot. (only basic functionality)
Output size calculation is not correct, since:
a. I'm not sure about the overhead
b. even with 2pass average bitrate isn't hit
Cu Selur
Posts: 92
Threads: 16
Joined: Mar 2021
Releases · nova-video-player/aos-AVP
the first android media player upgrade to ffmpeg 7.1, dav1d 1.5.0
|