Projects
Multimedia
ffhevc
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 111
View file
ffhevc.changes
Changed
@@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Sat Mar 02 07:10:00 UTC 2019 - neutrino8@opensuse.org + +- Update to version 3.6.9 + * Add HDR_SUPPORT option to config file for making HDR + support optional + +------------------------------------------------------------------- Sat Jan 12 11:05:00 UTC 2019 - neutrino8@opensuse.org - Update to version 3.6.8
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 3.6.8 +Version: 3.6.9 Release: 0 Summary: A small shell script for encoding to H.265/HEVC with ffmpeg License: GPL-2.0+
View file
ffhevc-3.6.8.tar.gz/ChangeLog -> ffhevc-3.6.9.tar.gz/ChangeLog
Changed
@@ -1,3 +1,7 @@ +2019-03-02 - ffhevc 3.6.9 + * Add HDR_SUPPORT option to config file for making HDR + support optional + 2019-01-12 - ffhevc 3.6.8 * Set Open GOP to 0 and repeat headers to 1 when Dolby Vision is used
View file
ffhevc-3.6.8.tar.gz/ffhevc -> ffhevc-3.6.9.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@opensuse.org> -# Version: 3.6.8 -# Date: 2019-01-12 +# Version: 3.6.9 +# Date: 2019-03-02 # # 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 "\e[0;33m$1\e[0;39;49m"; } error() { echo -e "\e[1;31m$1\e[0;39;49m"; } -version="3.6.8" +version="3.6.9" CFG="$HOME/.ffhevc" -cfgversion="38" +cfgversion="39" genconfig_func() { cat<<EOF>>"$CFG" @@ -91,6 +91,8 @@ VID_PIXEL_FORMAT="y" VID_COLORSPACE="y" +HDR_SUPPORT="y" + # Audio filters AUD_NORMALIZE="y" AUD_VOLUME="y" @@ -1304,113 +1306,115 @@ fi fi -if [ -z "$tonemap" ]; then - printf "Set Dolby Vision Profile/RPU File? [y/N]: " - read dolv - if [ "$dolv" = "y" -o "$dolv" = "Y" ]; then - printf "Specify the Dolby Vision Profile [5/8.1/8.2 - default is 8.1]: " - read dvp - case "$dvp" in - 5) dolprof="5" ;; - 8.1|"") dolprof="8.1" ;; - 8.2) dolprof="8.2" ;; - *) dolprof="0" ;; - esac - - dolby_vision=":dolby-vision-profile=$dolprof" +if [ "$HDR_SUPPORT" = "y" ]; then + if [ -z "$tonemap" ]; then + printf "Set Dolby Vision Profile/RPU File? [y/N]: " + read dolv + if [ "$dolv" = "y" -o "$dolv" = "Y" ]; then + printf "Specify the Dolby Vision Profile [5/8.1/8.2 - default is 8.1]: " + read dvp + case "$dvp" in + 5) dolprof="5" ;; + 8.1|"") dolprof="8.1" ;; + 8.2) dolprof="8.2" ;; + *) dolprof="0" ;; + esac + + dolby_vision=":dolby-vision-profile=$dolprof" + + 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=\"$(readlink -m "$dvrpu")\"" + fi + fi + fi - printf "Provide the Dolby Vision RPU File [press 'Enter' to skip]: " - read dvrpu - if [ ! -z "$dvrpu" ]; then - if [ ! -f "$dvrpu" ]; then + printf "Set HDR VUI Options? [y/N]: " + read hdr + if [ "$hdr" = "y" -o "$hdr" = "Y" ]; then + printf "Scan for HDR Side Data? [y/N]: " + read hdr_sd + if [ "$hdr_sd" = "y" -o "$hdr_sd" = "Y" ]; then + echo + green "-> Scanning for HDR Side Data..." + HDRFILE="$OUTDIR/hdr_sd_$$" + $FFPROBE -i "$input" -v quiet -select_streams v:0 -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 + hdrsd[i]="$(grep "^${sdarray[i]}" "$HDRFILE" | tail -1 | awk -F= '{print $2}' | awk -F/ '{print $1}')" + test -z "${hdrsd[i]}" && hdrsd[i]="ENOT_AVAIL" + done + rm -f "$HDRFILE" echo - error "-> No such file! Skipping" + green "-> master-display: G(${hdrsd[0]},${hdrsd[1]})B(${hdrsd[2]},${hdrsd[3]})R(${hdrsd[4]},${hdrsd[5]})WP(${hdrsd[6]},${hdrsd[7]})L(${hdrsd[9]},${hdrsd[8]})" + green "-> max-cll: ${hdrsd[10]},${hdrsd[11]}" echo - else - dolby_vision_rpu=":dolby-vision-rpu=\"$(readlink -m "$dvrpu")\"" + fi + printf "Specify the SMPTE-ST-2086 Master Display Color Volume (master-display) [press 'Enter' to skip]: " + read mdcv + test ! -z "$mdcv" && master_display=":master-display=\"$mdcv\"" + printf "Specify the Content Light Level Info (max-cll) [press 'Enter' to skip]: " + read clli + test ! -z "$clli" && max_cll=":max-cll=$clli" + printf "Add Luma/Chroma Offsets (hdr-opt)? [y/N]: " + read lcoffset + if [ "$lcoffset" = "y" -o "$lcoffset" = "Y" ]; then + hdr_opt=":hdr-opt=1" fi fi - fi - - printf "Set HDR VUI Options? [y/N]: " - read hdr - if [ "$hdr" = "y" -o "$hdr" = "Y" ]; then - printf "Scan for HDR Side Data? [y/N]: " - read hdr_sd - if [ "$hdr_sd" = "y" -o "$hdr_sd" = "Y" ]; then - echo - green "-> Scanning for HDR Side Data..." - HDRFILE="$OUTDIR/hdr_sd_$$" - $FFPROBE -i "$input" -v quiet -select_streams v:0 -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 - hdrsd[i]="$(grep "^${sdarray[i]}" "$HDRFILE" | tail -1 | awk -F= '{print $2}' | awk -F/ '{print $1}')" - test -z "${hdrsd[i]}" && hdrsd[i]="ENOT_AVAIL" - done - rm -f "$HDRFILE" - echo - green "-> master-display: G(${hdrsd[0]},${hdrsd[1]})B(${hdrsd[2]},${hdrsd[3]})R(${hdrsd[4]},${hdrsd[5]})WP(${hdrsd[6]},${hdrsd[7]})L(${hdrsd[9]},${hdrsd[8]})" - green "-> max-cll: ${hdrsd[10]},${hdrsd[11]}" - echo + + 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=\"$(readlink -e "$json")\"" + fi + fi fi - printf "Specify the SMPTE-ST-2086 Master Display Color Volume (master-display) [press 'Enter' to skip]: " - read mdcv - test ! -z "$mdcv" && master_display=":master-display=\"$mdcv\"" - printf "Specify the Content Light Level Info (max-cll) [press 'Enter' to skip]: " - read clli - test ! -z "$clli" && max_cll=":max-cll=$clli" - printf "Add Luma/Chroma Offsets (hdr-opt)? [y/N]: " - read lcoffset - if [ "$lcoffset" = "y" -o "$lcoffset" = "Y" ]; then - hdr_opt=":hdr-opt=1" + + if [ ! -z "$master_display" -o ! -z "$max_cll" -o ! -z "$dhdr10" -o ! -z "$dolby_vision" -o ! -z "$dolby_vision_rpu" ]; then + hdr_encopts=":open-gop=0:repeat-headers=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 + + if [ ! -z "$batchmode" ]; then + printf "Auto-Detect and Add HDR Side Data to All Encodes? [y/N]: " + read addhdr + if [ "$addhdr" = "y" -o "$addhdr" = "Y" ]; then echo - error "-> No such file. Skipping!" + error "-> NOTE: all input files must contain valid HDR side data (master-display and max-cll)!" echo - else - dhdr10=":dhdr10-info=\"$(readlink -e "$json")\"" + hdr_sd_func() { + echo " HDRFILE=\"$(dirname "$OUTPUT")/hdr_sd_$$\"" + echo " $FFPROBE -i \"\$i\" -v quiet -select_streams v:0 -show_entries side_data -read_intervals %+1 > \"\$HDRFILE\"" + echo " 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)" + echo " for sd in {0..11}; do" + echo " hdrsd[sd]=\"\$(grep \"^\${sdarray[sd]}\" \"\$HDRFILE\" | tail -1 | awk -F= '{print \$2}' | awk -F/ '{print \$1}')\"" + echo " done" + echo " rm -f \"\$HDRFILE\"" + echo " hdr_encopts=\":open-gop=0:repeat-headers=1\"" + echo " mast_disp=\"G(\${hdrsd[0]},\${hdrsd[1]})B(\${hdrsd[2]},\${hdrsd[3]})R(\${hdrsd[4]},\${hdrsd[5]})WP(\${hdrsd[6]},\${hdrsd[7]})L(\${hdrsd[9]},\${hdrsd[8]})\"" + echo " max_cll=\":max-cll=\${hdrsd[10]},\${hdrsd[11]}\"" + } + hdr_encopts="\$hdr_encopts" + master_display=":master-display=\"\$mast_disp\"" + max_cll="\$max_cll" fi fi fi - - if [ ! -z "$master_display" -o ! -z "$max_cll" -o ! -z "$dhdr10" -o ! -z "$dolby_vision" -o ! -z "$dolby_vision_rpu" ]; then - hdr_encopts=":open-gop=0:repeat-headers=1" - fi - - if [ ! -z "$batchmode" ]; then - printf "Auto-Detect and Add HDR Side Data to All Encodes? [y/N]: " - read addhdr - if [ "$addhdr" = "y" -o "$addhdr" = "Y" ]; then - echo - error "-> NOTE: all input files must contain valid HDR side data (master-display and max-cll)!" - echo - hdr_sd_func() { - echo " HDRFILE=\"$(dirname "$OUTPUT")/hdr_sd_$$\"" - echo " $FFPROBE -i \"\$i\" -v quiet -select_streams v:0 -show_entries side_data -read_intervals %+1 > \"\$HDRFILE\"" - echo " 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)" - echo " for sd in {0..11}; do" - echo " hdrsd[sd]=\"\$(grep \"^\${sdarray[sd]}\" \"\$HDRFILE\" | tail -1 | awk -F= '{print \$2}' | awk -F/ '{print \$1}')\"" - echo " done" - echo " rm -f \"\$HDRFILE\"" - echo " hdr_encopts=\":open-gop=0:repeat-headers=1\"" - echo " mast_disp=\"G(\${hdrsd[0]},\${hdrsd[1]})B(\${hdrsd[2]},\${hdrsd[3]})R(\${hdrsd[4]},\${hdrsd[5]})WP(\${hdrsd[6]},\${hdrsd[7]})L(\${hdrsd[9]},\${hdrsd[8]})\"" - echo " max_cll=\":max-cll=\${hdrsd[10]},\${hdrsd[11]}\"" - } - hdr_encopts="\$hdr_encopts" - master_display=":master-display=\"\$mast_disp\"" - max_cll="\$max_cll" - fi - fi fi # Used by cropping and bitrate
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
.