Projects
Multimedia
ffhevc
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 274
View file
ffhevc.changes
Changed
@@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Sun Nov 16 15:52:00 UTC 2025 - microchip8@proton.me + +- Update to version 4.6.10 + * Increase QP adaptation range for the built-in script + preset to 1.3 + * Reworked a bit the HDR code + +------------------------------------------------------------------- Sat Nov 15 06:48:00 UTC 2025 - microchip8@proton.me - Update to version 4.6.9
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 4.6.9 +Version: 4.6.10 Release: %mkrel 1 Summary: A small shell script for encoding to H.265/HEVC with FFmpeg License: GPL-2.0+
View file
ffhevc-4.6.9.tar.gz/ChangeLog -> ffhevc-4.6.10.tar.gz/ChangeLog
Changed
@@ -1,4 +1,9 @@ -2025-11-15- ffhevc 4.6.9 +2025-11-16 - ffhevc 4.6.10 + * Increase QP adaptation range for the built-in script + preset to 1.3 + * Reworked a bit the HDR code + +2025-11-15 - ffhevc 4.6.9 * For SDR encodings, use blue/red chroma qp offsets of -2 * For HDR encodings, lower blue/red chroma qp offsets to -4 * Some minor optimizations in the HDR code
View file
ffhevc-4.6.9.tar.gz/ffhevc -> ffhevc-4.6.10.tar.gz/ffhevc
Changed
@@ -4,8 +4,8 @@ # encoding to H.265/HEVC video using FFmpeg and libx265. # # Author: Grozdan "microchip" Nikolov <microchip8@proton.me> -# Version: 4.6.9 -# Date: 2025-11-15 +# Version: 4.6.10 +# Date: 2025-11-16 # # ffhevc is free software ; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,10 +26,10 @@ brown() { echo -e "\e0;33m$1\e0;39;49m"; } error() { echo -e "\e1;31m$1\e0;39;49m"; } -version="4.6.9" +version="4.6.10" CFG="$HOME/.ffhevc" -cfgversion="94" +cfgversion="96" genconfig_func() { cat<<EOF>>"$CFG" @@ -137,7 +137,7 @@ # libx265 parameters for the 'script' preset # merange is calculated as: ctu size - 4(luma) - 2(chroma) (- 1 if me=hex is used) -X265PARAMS="ref=4:me=umh:merange=52:subme=5:bframes=6:rd=4:rd-refine=0:qcomp=0.63:fades=1:strong-intra-smoothing=0:ctu=32:qg-size=32:sao=0:selective-sao=0:cu-lossless=1:cutree=1:tu-inter-depth=4:tu-intra-depth=4:max-merge=4:rskip=2:rskip-edge-threshold=1:qp-adaptation-range=1.2:rc-lookahead=60:aq-mode=1:aq-strength=1.1:rdoq-level=1:psy-rd=4.0:psy-rdoq=15.0:limit-modes=1:limit-refs=1:limit-tu=0:deblock=-3,-3:weightb=1:weightp=1:rect=1:amp=1:wpp=1:b-intra=1:b-adapt=2:b-pyramid=1:tskip=0:tskip-fast=0:fast-intra=0:early-skip=0:splitrd-skip=0:refine-mv=3:refine-intra=4:refine-inter=1" +X265PARAMS="ref=4:me=umh:merange=52:subme=5:bframes=6:rd=4:rd-refine=0:qcomp=0.63:fades=1:strong-intra-smoothing=0:ctu=32:qg-size=32:sao=0:selective-sao=0:cu-lossless=1:cutree=1:tu-inter-depth=4:tu-intra-depth=4:max-merge=4:rskip=2:rskip-edge-threshold=1:rc-lookahead=60:aq-mode=1:aq-strength=1.1:qp-adaptation-range=1.3:rdoq-level=1:psy-rd=4.0:psy-rdoq=15.0:limit-modes=1:limit-refs=1:limit-tu=0:deblock=-3,-3:weightb=1:weightp=1:rect=1:amp=1:wpp=1:b-intra=1:b-adapt=2:b-pyramid=1:tskip=0:tskip-fast=0:fast-intra=0:early-skip=0:splitrd-skip=0:refine-mv=3:refine-intra=4:refine-inter=1" # Leave empty to auto-detect ffmpeg/ffprobe/mplayer # or set your custom ones (eg, /path/to/bin/ffmpeg) @@ -1366,7 +1366,7 @@ fi test ! -z "$zscale" && tonemap="zscale=transfer=linear,tonemap=$tm_algo$tm_param$tm_desat,$zscale,sidedata=delete," test ! -z "$colorspace" && colorspace="$colorspace$wpadapt," - cbcrqpoffs=":cbqpoffs=-2:crqpoffs=-2" + cbcrqpoffs=":cbqpoffs=-1:crqpoffs=-1" fi fi } @@ -1637,27 +1637,25 @@ 8.1|"") doviprof="8.1" ;; 8.2) doviprof="8.2" ;; *) - doviprof="0" - nodovi="1" echo - error "-> Disabling Dolby Vision HDR due to unsupported profile!" + error "-> Unsupported Dolby Vision profile. Encoding will fail!" + error "-> Exiting..." echo + exit 1 ;; esac - if "$nodovi" != "1" ; then - dolby_vision=":dolby-vision-profile=$doviprof" - - printf "Provide the Dolby Vision RPU File press 'Enter' to skip: " - read dvrpu - if ! -z "$dvrpu" ; then - if ! -f "$dvrpu" ; then - echo - error "-> No such file! Skipping" - echo - else - dolby_vision_rpu=":dolby-vision-rpu=\"$(realpath "$dvrpu")\"" - fi + dolby_vision=":dolby-vision-profile=$doviprof" + + printf "Provide the Dolby Vision RPU File press 'Enter' to skip: " + read dvrpu + if ! -z "$dvrpu" ; then + if ! -f "$dvrpu" ; then + echo + error "-> No such file! Skipping" + echo + else + dolby_vision_rpu=":dolby-vision-rpu=\"$(realpath "$dvrpu")\"" fi fi fi @@ -1682,23 +1680,19 @@ case "$1" in md) if ! -z "$(echo "$master_display" | grep 'NOT_AVAIL')" ; then - master_display="" - nohdr="1" echo - error "-> Disabling HDR10 due to missing value(s)!" + error "-> master-display contains unavailable values. Encoding will fail!" + error "-> Exiting..." echo + exit 1 fi ;; cll) if ! -z "$(echo "$max_cll" | grep 'NOT_AVAIL')" ; then - if "$nohdr" != "1" ; then - max_cll=":max-cll=\"0,0\"" - echo - error "-> Setting max-cll to 0,0 due to missing value(s)!" - echo - else - max_cll="" - fi + max_cll=":max-cll=\"0,0\"" + echo + error "-> Setting max-cll to 0,0 due to missing values!" + echo fi ;; esac @@ -1723,37 +1717,32 @@ else max_cll=":max-cll=\"$maxcll\"" fi - if "$nohdr" != "1" ; then - printf "Flag the file as HLG (Hybrid Log Gamma)? y/N: " - read fhlg - if "$fhlg" = "y" -o "$fhlg" = "Y" ; then - hlg=":pic-struct=0:atc-sei=18" - fi + printf "Flag the file as HLG (Hybrid Log Gamma)? y/N: " + read fhlg + if "$fhlg" = "y" -o "$fhlg" = "Y" ; then + hlg=":pic-struct=0:atc-sei=18" fi - if "$nohdr" != "1" ; then - printf "Use Dynamic HDR10+ JSON file? y/N: " - read dhdr - if "$dhdr" = "y" -o "$dhdr" = "Y" ; then - printf "Provide the JSON file press 'Enter' to skip: " - read -e json - if ! -z "$json" ; then - if ! -f "$json" ; then - echo - error "-> No such file. Skipping!" - echo - else - dhdr10=":dhdr10-info=\"$(realpath "$json")\"" - fi + + printf "Use Dynamic HDR10+ JSON file? y/N: " + read dhdr + if "$dhdr" = "y" -o "$dhdr" = "Y" ; then + printf "Provide the JSON file press 'Enter' to skip: " + read -e json + if ! -z "$json" ; then + if ! -f "$json" ; then + echo + error "-> No such file. Skipping!" + echo + else + dhdr10=":dhdr10-info=\"$(realpath "$json")\"" fi fi fi - test "$nohdr" != "1" && hdr10=":hdr10=1" || hdr10=":hdr10=0" fi fi if "$dovi" = "y" -o "$dovi" = "Y" -o "$hdr" = "y" -o "$hdr" = "Y" ; then - hdr_encopts=":hdr10-opt=1:open-gop=0:repeat-headers=1:cbqpoffs=-4:crqpoffs=-4:qg-size=16$hlg$dhdr10$hdr10$dolby_vision$dolby_vision_rpu" - hdr_enable="1" + hdr_encopts=":hdr10=1:hdr10-opt=1:open-gop=0:repeat-headers=1:cbqpoffs=-4:crqpoffs=-4:qg-size=16$hlg$dhdr10$dolby_vision$dolby_vision_rpu" fi if ! -z "$batchmode" ; then @@ -1771,11 +1760,11 @@ echo " hdrsdsd=\"\$(grep \"^\${sdarraysd}\" \"\$HDRFILE\" | tail -1 | awk -F= '{print \$2}' | awk -F/ '{print \$1}')\"" echo " done" echo " rm -f \"\$HDRFILE\"" - echo " hdr_encopts=\":hdr10-opt=1:open-gop=0:repeat-headers=1:cbqpoffs=-4:crqpoffs=-4:qg-size=16:hdr10=1\"" + echo " hdr_encopts=\":hdr10=1:hdr10-opt=1:open-gop=0:repeat-headers=1:cbqpoffs=-4:crqpoffs=-4:qg-size=16\"" echo " mast_disp=\"G(\${hdrsd0},\${hdrsd1})B(\${hdrsd2},\${hdrsd3})R(\${hdrsd4},\${hdrsd5})WP(\${hdrsd6},\${hdrsd7})L(\${hdrsd9},\${hdrsd8})\"" echo " max_cll=\":max-cll=\${hdrsd10},\${hdrsd11}\"" } - hdr_encopts=":hdr10-opt=1\$hdr_encopts" + hdr_encopts="\$hdr_encopts" master_display=":master-display=\"\$mast_disp\"" max_cll="\$max_cll" fi @@ -1784,12 +1773,9 @@ fi # For SDR encodings -if -z "$tonemap" -a "$hdr_enable" != "1" ; then - cbcrqpoffs=":cbqpoffs=-2:crqpoffs=-2" +if -z "$tonemap" -a -z "$hdr_encopts" ; then + cbcrqpoffs=":cbqpoffs=-1:crqpoffs=-1" fi -# Can't hurt for SDR encodings -test "$hdr_enable" != "1" && sidedata="sidedata=delete," - # Used by cropping and bitrate # calc for target file size
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.