Projects
Multimedia
ffhevc
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 258
View file
ffhevc.changes
Changed
@@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Tue Dec 03 15:38:00 UTC 2024 - neutrino8@gmail.com + +- Update to version 4.5.15 + * Only ask once for HDR10 side data in batch mode + * Use AQ Mode 1 (Uniform) for the built-in script + preset. Should reduce a bit pulsing of noise in + noisy videos + +------------------------------------------------------------------- Mon Nov 25 21:29:00 UTC 2024 - neutrino8@gmail.com - Update to version 4.5.14
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 4.5.14 +Version: 4.5.15 Release: %mkrel 1 Summary: A small shell script for encoding to H.265/HEVC with FFmpeg License: GPL-2.0+
View file
ffhevc-4.5.14.tar.gz/ChangeLog -> ffhevc-4.5.15.tar.gz/ChangeLog
Changed
@@ -1,6 +1,11 @@ +2024-12-03 - ffhevc 4.5.15 + * Only ask once for HDR10 side data in batch mode + * Use AQ Mode 1 (Uniform) for the built-in script + preset. Should reduce a bit pulsing of noise in + noisy videos + 2024-11-25 - ffhevc 4.5.14 * Bugfix for missing video filters - 2024-11-25 - ffhevc 4.5.13 * Support both Lanczos3 and Lanczos4 in the zscale filter
View file
ffhevc-4.5.14.tar.gz/ffhevc -> ffhevc-4.5.15.tar.gz/ffhevc
Changed
@@ -2,8 +2,8 @@ # # Small script to encode to H.265/HEVC video using FFmpeg and libx265. # Author: Grozdan "microchip" Nikolov <neutrino8@gmail.com> -# Version: 4.5.14 -# Date: 2024-11-25 +# Version: 4.5.15 +# Date: 2024-12-03 # # ffhevc is free software ; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,10 +24,10 @@ brown() { echo -e "\e0;33m$1\e0;39;49m"; } error() { echo -e "\e1;31m$1\e0;39;49m"; } -version="4.5.14" +version="4.5.15" CFG="$HOME/.ffhevc" -cfgversion="85" +cfgversion="86" genconfig_func() { cat<<EOF>>"$CFG" @@ -126,7 +126,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:hme=0:me=star:merange=26:subme=4:bframes=8:rd=4:rd-refine=0:qcomp=0.60:fades=1:strong-intra-smoothing=0:ctu=32:qg-size=32:sao=0:selective-sao=0:cu-lossless=0:cutree=1:tu-inter-depth=4:tu-intra-depth=4:max-merge=2:rskip=2:rskip-edge-threshold=1:rc-lookahead=60:aq-mode=2:aq-strength=1.0:rdoq-level=1:psy-rd=4.0:psy-rdoq=15.0:limit-modes=0:limit-refs=1:limit-tu=0:deblock=-3,-3:weightb=1:weightp=1:rect=1:amp=0:wpp=1:b-intra=1:b-adapt=2:b-pyramid=1:tskip=1:tskip-fast=0:fast-intra=0:early-skip=0:splitrd-skip=0:refine-mv=3:refine-intra=1:refine-inter=1" +X265PARAMS="ref=4:hme=0:me=star:merange=26:subme=4:bframes=8:rd=4:rd-refine=0:qcomp=0.60:fades=1:strong-intra-smoothing=0:ctu=32:qg-size=32:sao=0:selective-sao=0:cu-lossless=0:cutree=1:tu-inter-depth=4:tu-intra-depth=4:max-merge=2:rskip=2:rskip-edge-threshold=1:rc-lookahead=60:aq-mode=1:aq-strength=1.0:rdoq-level=1:psy-rd=4.0:psy-rdoq=15.0:limit-modes=0:limit-refs=1:limit-tu=0:deblock=-3,-3:weightb=1:weightp=1:rect=1:amp=0:wpp=1:b-intra=1:b-adapt=2:b-pyramid=1:tskip=1:tskip-fast=0:fast-intra=0:early-skip=0:splitrd-skip=0:refine-mv=3:refine-intra=1:refine-inter=1" # Leave empty to auto-detect ffmpeg/ffprobe/mplayer # or set your custom ones (eg, /path/to/bin/ffmpeg) @@ -1642,66 +1642,68 @@ fi fi - printf "Set HDR10 VUI Options? y/N: " - read hdr - if "$hdr" = "y" -o "$hdr" = "Y" ; then - echo - green "-> Scanning for HDR10 Side Data..." - HDRFILE="$OUTDIR/hdr_sd_$$" - $FFPROBE -i "$input" -v quiet -select_streams v:$vidtrack -show_entries side_data -read_intervals %+1 > "$HDRFILE" - sdarray=(0=green_x 1=green_y 2=blue_x 3=blue_y 4=red_x 5=red_y 6=white_point_x 7=white_point_y 8=min_luminance 9=max_luminance 10=max_content 11=max_average) - for i in {0..11}; do - hdrsdi="$(grep "^${sdarrayi}" "$HDRFILE" | tail -1 | awk -F= '{print $2}' | awk -F/ '{print $1}')" - test -z "${hdrsdi}" && hdrsdi="ENOT_AVAIL" - done - rm -f "$HDRFILE" - MDCV="G(${hdrsd0},${hdrsd1})B(${hdrsd2},${hdrsd3})R(${hdrsd4},${hdrsd5})WP(${hdrsd6},${hdrsd7})L(${hdrsd9},${hdrsd8})" - MAXCLL="${hdrsd10},${hdrsd11}" - echo - green "-> master-display: $MDCV" - green "-> max-cll: $MAXCLL" - echo - printf "Specify the Master Display Color Volume (master-display) default is see above: " - read mdcv - if ! -z "$MDCV" -a -z "$mdcv" ; then - master_display=":master-display=\"$MDCV\"" - else - master_display=":master-display=\"$mdcv\"" - fi - printf "Specify the Content Light Level Info (max-cll) default is see above: " - read maxcll - if ! -z "$MAXCLL" -a -z "$maxcll" ; then - max_cll=":max-cll=\"$MAXCLL\"" - else - max_cll=":max-cll=\"$maxcll\"" - 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 - printf "Enable Luma/Chroma Optimization (hdr10-opt)? y/N: " - read lcopt - if "$lcopt" = "y" -o "$lcopt" = "Y" ; then - hdr10_opt=":hdr10-opt=1" - fi - if ! -z "$master_display" -o ! -z "$max_cll" ; then - hdr10=":hdr10=1" - fi - 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 + if -z "$batchmode" ; then + printf "Set HDR10 VUI Options? y/N: " + read hdr + if "$hdr" = "y" -o "$hdr" = "Y" ; then + echo + green "-> Scanning for HDR10 Side Data..." + HDRFILE="$OUTDIR/hdr_sd_$$" + $FFPROBE -i "$input" -v quiet -select_streams v:$vidtrack -show_entries side_data -read_intervals %+1 > "$HDRFILE" + sdarray=(0=green_x 1=green_y 2=blue_x 3=blue_y 4=red_x 5=red_y 6=white_point_x 7=white_point_y 8=min_luminance 9=max_luminance 10=max_content 11=max_average) + for i in {0..11}; do + hdrsdi="$(grep "^${sdarrayi}" "$HDRFILE" | tail -1 | awk -F= '{print $2}' | awk -F/ '{print $1}')" + test -z "${hdrsdi}" && hdrsdi="ENOT_AVAIL" + done + rm -f "$HDRFILE" + MDCV="G(${hdrsd0},${hdrsd1})B(${hdrsd2},${hdrsd3})R(${hdrsd4},${hdrsd5})WP(${hdrsd6},${hdrsd7})L(${hdrsd9},${hdrsd8})" + MAXCLL="${hdrsd10},${hdrsd11}" + echo + green "-> master-display: $MDCV" + green "-> max-cll: $MAXCLL" + echo + printf "Specify the Master Display Color Volume (master-display) default is see above: " + read mdcv + if ! -z "$MDCV" -a -z "$mdcv" ; then + master_display=":master-display=\"$MDCV\"" + else + master_display=":master-display=\"$mdcv\"" + fi + printf "Specify the Content Light Level Info (max-cll) default is see above: " + read maxcll + if ! -z "$MAXCLL" -a -z "$maxcll" ; then + max_cll=":max-cll=\"$MAXCLL\"" else - dhdr10=":dhdr10-info=\"$(realpath "$json")\"" + max_cll=":max-cll=\"$maxcll\"" + 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 + printf "Enable Luma/Chroma Optimization (hdr10-opt)? y/N: " + read lcopt + if "$lcopt" = "y" -o "$lcopt" = "Y" ; then + hdr10_opt=":hdr10-opt=1" + fi + if ! -z "$master_display" -o ! -z "$max_cll" ; then + hdr10=":hdr10=1" + fi + 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 fi @@ -1729,7 +1731,7 @@ 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="\$hdr_encopts$hlg" + hdr_encopts=":hdr10-opt=1\$hdr_encopts$hlg" master_display=":master-display=\"\$mast_disp\"" max_cll="\$max_cll" fi
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
.