Projects
Multimedia
ffhevc
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 75
View file
ffhevc.changes
Changed
@@ -1,4 +1,15 @@ ------------------------------------------------------------------- +Wed Dec 27 11:37:00 UTC 2017 - neutrino8@opensuse.org + +- Update to version 3.4.7 + * Renamed array variable CHARS to VCHARS in the video_chars_func() + function + * Report pixel format in the video_chars_func() function + * Don't show HDR options if doing an HDR to SDR conversion + * Use -v quiet instead of -v error log level for ffprobe + * Cosmetics + +------------------------------------------------------------------- Mon Dec 25 10:36:00 UTC 2017 - neutrino8@opensuse.org - Update to version 3.4.6
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 3.4.6 +Version: 3.4.7 Release: 0 Summary: A small shell script for encoding to H.265/HEVC with ffmpeg License: GPL-2.0+
View file
ffhevc-3.4.6.tar.gz/ChangeLog -> ffhevc-3.4.7.tar.gz/ChangeLog
Changed
@@ -1,3 +1,11 @@ +2017-12-27 - ffhevc 3.4.7 + * Renamed array variable CHARS to VCHARS in the + video_chars_func() function + * Report pixel format in the video_chars_func() function + * Don't show HDR options if doing an HDR to SDR conversion + * Use -v quiet instead of -v error log level for ffprobe + * Cosmetics + 2017-12-25 - ffhevc 3.4.6 * Initial support for HDR to SDR conversions. Requires FFmpeg to be compiled with the zimg library as it
View file
ffhevc-3.4.6.tar.gz/ffhevc -> ffhevc-3.4.7.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.4.6 -# Date: 2017-12-25 +# Version: 3.4.7 +# Date: 2017-12-27 # # 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,7 +24,7 @@ brown() { echo -e "\e0;33m$1\e0;39;49m"; } error() { echo -e "\e1;31m$1\e0;39;49m"; } -version="3.4.6" +version="3.4.7" CFG="$HOME/.ffhevc" cfgversion="38" @@ -769,7 +769,7 @@ echo green "-> Detecting Field Parity..." sleep 1 - FPAR="$($FFPROBE -i "$input" -v error -select_streams v:0 -show_entries stream=field_order -of default=noprint_wrappers=1:nokey=1 | tail -1)" + FPAR="$($FFPROBE -i "$input" -v quiet -select_streams v:0 -show_entries stream=field_order -of default=noprint_wrappers=1:nokey=1 | tail -1)" case "$FPAR" in t*|T*) fp="tff"; fparity="Top Field First (TFF)" ;; b*|B*) fp="bff"; fparity="Bottom Field First (BFF)" ;; @@ -902,7 +902,7 @@ echo green "-> Detecting Pixel Format..." sleep 1 - PIXFMT="$($FFPROBE -i "$input" -v error -select_streams v:0 -show_entries stream=pix_fmt -of default=noprint_wrappers=1:nokey=1 | tail -1)" + PIXFMT="$($FFPROBE -i "$input" -v quiet -select_streams v:0 -show_entries stream=pix_fmt -of default=noprint_wrappers=1:nokey=1 | tail -1)" green "-> Detected $(echo "$PIXFMT" | tr 'a-z' 'A-Z')" echo brown " Pixel Formats" @@ -939,22 +939,24 @@ } video_chars_func() { - for i in {1..4}; do + for i in {1..5}; do case "$i" in 1) chari="color_range" ;; 2) chari="color_space" ;; 3) chari="color_transfer" ;; 4) chari="color_primaries" ;; + 5) chari="pix_fmt" ;; esac - CHARSi="$($FFPROBE -i "$input" -v error -select_streams v:0 -show_entries stream=${chari} -of default=noprint_wrappers=1:nokey=1 | tail -1)" + VCHARSi="$($FFPROBE -i "$input" -v quiet -select_streams v:0 -show_entries stream=${chari} -of default=noprint_wrappers=1:nokey=1 | tail -1)" done to_upper() { echo "$1" | tr 'a-z' 'A-Z' } - green "-> Color Range: $(to_upper "${CHARS1}")" - green "-> Color Space: $(to_upper "${CHARS2}")" - green "-> Color Transfer: $(to_upper "${CHARS3}")" - green "-> Color Primaries: $(to_upper "${CHARS4}")" + green "-> Color Range: $(to_upper "${VCHARS1}")" + green "-> Color Space: $(to_upper "${VCHARS2}")" + green "-> Color Transfer: $(to_upper "${VCHARS3}")" + green "-> Color Primaries: $(to_upper "${VCHARS4}")" + green "-> Pixel Format: $(to_upper "${VCHARS5}")" } video_hdr_to_sdr_func() { @@ -981,8 +983,8 @@ echo " 6 -> Mobius" echo printf "Specify the Tone Mapping Algorithm default is 6: " - read tma - case "$tma" in + read tmaopt + case "$tmaopt" in 0) tm_algo="none" ;; 1) tm_algo="clip" ;; 2) tm_algo="linear" ;; @@ -996,7 +998,7 @@ ;; esac echo - green "-> Detecting characteristics..." + green "-> Detecting Video Characteristics..." sleep 1 video_chars_func echo @@ -1011,9 +1013,9 @@ read ctpopt case "$ctpopt" in 0|"") - test "${CHARS2}" = "unknown" && colmatrix="undef" || colmatrix="${CHARS2}" - test "${CHARS3}" = "unknown" && coltrans="undef" || coltrans="${CHARS3}" - test "${CHARS4}" = "unknown" && colprim="undef" || colprim="${CHARS4}" + test "${VCHARS2}" = "unknown" && colmatrix="undef" || colmatrix="${VCHARS2}" + test "${VCHARS3}" = "unknown" && coltrans="undef" || coltrans="${VCHARS3}" + test "${VCHARS4}" = "unknown" && colprim="undef" || colprim="${VCHARS4}" colorprim=":colormatrix=$colmatrix:colorprim=$colprim:transfer=$coltrans" ;; 1) zscale=",zscale=transfer=bt709:primaries=bt709:matrix=bt709"; colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" ;; @@ -1035,7 +1037,7 @@ read ctp if "$ctp" = "y" -o "$ctp" = "Y" ; then echo - green "-> Detecting characteristics..." + green "-> Detecting Video Characteristics..." sleep 1 video_chars_func echo @@ -1238,48 +1240,51 @@ fi fi -printf "Set HDR VUI Options? y/N: " -read hdr -if "$hdr" = "y" -o "$hdr" = "Y" ; then - printf "Specify the SMPTE ST 2086 Master Display Color Volume 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 -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 -f "$json")\"" +if -z "$tonemap" ; then + printf "Set HDR VUI Options? y/N: " + read hdr + if "$hdr" = "y" -o "$hdr" = "Y" ; then + printf "Specify the SMPTE ST 2086 Master Display Color Volume 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 - -if ! -z "$master_display" -o ! -z "$max_cll" -o ! -z "$dhdr10" ; then - hdr_encopts=":open-gop=0:repeat-headers=1" + + 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 -f "$json")\"" + fi + fi + fi + + if ! -z "$master_display" -o ! -z "$max_cll" -o ! -z "$dhdr10" ; then + hdr_encopts=":open-gop=0:repeat-headers=1" + fi fi # Used by cropping and bitrate # calc for target file size video_length_func() { case "$1" in - file) VLENGTH="$($FFPROBE -i "$input" -v error -select_streams v:0 -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 | tail -1 | awk -F. '{print $1}')" ;; - batch) echo "VLENGTH=\"\$($FFPROBE -i \"\$i\" -v error -select_streams v:0 -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 | tail -1 | awk -F. '{print \$1}')\"" ;; + file) VLENGTH="$($FFPROBE -i "$input" -v quiet -select_streams v:0 -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 | tail -1 | awk -F. '{print $1}')" ;; + batch) echo "VLENGTH=\"\$($FFPROBE -i \"\$i\" -v quiet -select_streams v:0 -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 | tail -1 | awk -F. '{print \$1}')\"" ;; esac } @@ -1329,8 +1334,8 @@ echo green "-> Detecting video resolution..." sleep 1 - WIDTH="$($FFPROBE -i "$input" -v error -select_streams v:0 -show_entries stream=width -of default=noprint_wrappers=1:nokey=1 | tail -1)" - HEIGHT="$($FFPROBE -i "$input" -v error -select_streams v:0 -show_entries stream=height -of default=noprint_wrappers=1:nokey=1 | tail -1)" + WIDTH="$($FFPROBE -i "$input" -v quiet -select_streams v:0 -show_entries stream=width -of default=noprint_wrappers=1:nokey=1 | tail -1)" + HEIGHT="$($FFPROBE -i "$input" -v quiet -select_streams v:0 -show_entries stream=height -of default=noprint_wrappers=1:nokey=1 | tail -1)" if ! -z "$crop" ; then green "-> Original resolution: ${WIDTH}x${HEIGHT}" if -z "$batchmode" ; then @@ -1481,7 +1486,7 @@ read cprim if "$cprim" = "y" -o "$cprim" = "Y" ; then echo - green "-> Detecting characteristics..." + green "-> Detecting Video Characteristics..." sleep 1 video_chars_func echo @@ -2668,7 +2673,7 @@ green "-> Track $i: detecting audio sample rate..." sleep 1 aidi="$(($(echo "${atracki}" | awk -F: '{print $2}')-1))" - ASRi="$($FFPROBE -i "$input" -v error -select_streams a:${aidi} -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 | tail -1)" + ASRi="$($FFPROBE -i "$input" -v quiet -select_streams a:${aidi} -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 | tail -1)" if ! -z "${ASRi}" ; then green "-> Track $i: detected ${ASRi} Hz" else @@ -2918,7 +2923,7 @@ for i in $(eval echo "{1..$ATRACKS}"); do if "${acodeci}" = "copy" ; then aidi="$(($(echo "${atracki}" | awk -F: '{print $2}')-1))" - abtri="$($FFPROBE -i "$input" -v error -select_streams a:${aidi} -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 | tail -1)" + abtri="$($FFPROBE -i "$input" -v quiet -select_streams a:${aidi} -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 | tail -1)" case "${abtri}" in 1-9*) abitratei="$((${abtri}/1000))" ;; ""|*) abitratei="0" ;;
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
.