This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

ffmpeg upgraded last month
#1
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?
Reply
#2
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
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#3
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
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#4
Releases · nova-video-player/aos-AVP
the first android media player upgrade to ffmpeg 7.1, dav1d 1.5.0
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)