Selur's Little Message Board

Full Version: ffmpeg upgraded last month
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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?
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:
Code:
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
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
Releases · nova-video-player/aos-AVP
the first android media player upgrade to ffmpeg 7.1, dav1d 1.5.0