Projects
Multimedia
ffhevc
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 246
View file
ffhevc.changes
Changed
@@ -1,11 +1,59 @@ ------------------------------------------------------------------- +Sun Nov 03 13:46:00 UTC 2024 - neutrino8@gmail.com + +- Update to version 4.5.6 + * Support copying full DTS-X audio or only the DTS core + +------------------------------------------------------------------- +Sat Nov 02 09:27:00 UTC 2024 - neutrino8@gmail.com + +- Update to version 4.5.5 + * Support copying full DTS-HD HRA audio or just the DTS Core in it + * Support copying full Dolby Atmos audio or just the AC-3/TrueHD + Core in it + +------------------------------------------------------------------- +Fri Nov 01 14:47:00 UTC 2024 - neutrino8@gmail.com + +- Update to version 4.5.4 + * Added support for copying only the DTS Core + audio or the full DTS-HD MA audio track + +------------------------------------------------------------------- +Wed Oct 30 21:04:00 UTC 2024 - neutrino8@gmail.com + +- Update to version 4.5.3 + * Reduced duplication in the final audio params + code variable + * Use kHz instead of Hz for audio sample rate + metadata + * Slightly increased default value of the noise + filter + * Updated the AUTHORS file (email address) + +------------------------------------------------------------------- +Mon Oct 28 16:25:00 UTC 2024 - neutrino8@gmail.com + +- Update to version 4.5.2 + * Updated the audio copy code to detect Dolby + Atmos and use the correct name metadata + * Renamed a few variables + +------------------------------------------------------------------- +Sat Sep 21 09:00:00 UTC 2024 - neutrino8@opensuse.org + +- Update to version 4.5.1 + * Improved the HDR10 code + * Renamed a few variables + +------------------------------------------------------------------- Wed Feb 28 22:20:00 UTC 2024 - neutrino8@opensuse.org - Update to version 4.5.0 * Initial support for zimg (z lib) scalers ------------------------------------------------------------------- -Sun Feb 04 16:40:00 UTC 2024 - neutrino8@opensuse.org +Sun Feb 04 16:40:00 UTC 2023 - neutrino8@opensuse.org - Update to version 4.4.17 * Don't exit but warn about MP4Box/Mplayer missing
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 4.5.0 +Version: 4.5.6 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.0.tar.gz/AUTHORS -> ffhevc-4.5.6.tar.gz/AUTHORS
Changed
@@ -1,3 +1,3 @@ -- Grozdan Nikolov aka microchip <neutrino8@opensuse.org> +- Grozdan Nikolov aka microchip <neutrino8@gmail.com> Author/maintainer/developer/packager
View file
ffhevc-4.5.0.tar.gz/ChangeLog -> ffhevc-4.5.6.tar.gz/ChangeLog
Changed
@@ -1,3 +1,34 @@ +2024-11-03 - ffhevc 4.5.6 + * Support copying full DTS-X audio or only + the DTS core + +2024-11-02 - ffhevc 4.5.5 + * Support copying full DTS-HD HRA audio or just + the DTS Core in it + * Support copying full Dolby Atmos audio or just + the AC-3/TrueHD Core in it + +2024-11-01 - ffhevc 4.5.4 + * Added support for copying only the DTS Core + audio or the full DTS-HD MA audio track + +2024-10-30 - ffhevc 4.5.3 + * Reduced duplication in the final audio params + code variable + * Use kHz instead of Hz for audio sample rate + metadata + * Slightly increased default value of the noise + filter + * Updated the AUTHORS file (email address) + +2024-10-28 - ffhevc 4.5.2 + * Updated the audio copy code to detect Dolby + Atmos and use the correct name metadata + +2024-09-21 - ffhevc 4.5.1 + * Improved the HDR10 code + * Renamed a few variables + 2024-02-28 - ffhevc 4.5.0 * Initial support for zimg (z lib) scalers
View file
ffhevc-4.5.0.tar.gz/ffhevc -> ffhevc-4.5.6.tar.gz/ffhevc
Changed
@@ -1,9 +1,9 @@ #!/usr/bin/env bash # # Small script to encode to H.265/HEVC video using FFmpeg and libx265. -# Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org> -# Version: 4.4.17 -# Date: 2024-02-28 +# Author: Grozdan "microchip" Nikolov <neutrino8@gmail.com> +# Version: 4.5.6 +# Date: 2024-11-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,7 +24,7 @@ brown() { echo -e "\e0;33m$1\e0;39;49m"; } error() { echo -e "\e1;31m$1\e0;39;49m"; } -version="4.5.0" +version="4.5.6" CFG="$HOME/.ffhevc" cfgversion="83" @@ -56,7 +56,7 @@ NICE="19" # CRF value (0-51) -# Leave empty to ask each time12442735 +# Leave empty to ask each time. CRF="23" # Automatically crop the input? @@ -847,9 +847,9 @@ printf "Add Temporal & Uniform Noise to the Input File? y/N: " read tun if "$tun" = "y" -o "$tun" = "Y" ; then - printf "Specify the Noise Strength 0-100 - default is 2: " + printf "Specify the Noise Strength 0-100 - default is 4: " read nvalue - test -z "$nvalue" && nval="2" || nval="$nvalue" + test -z "$nvalue" && nval="4" || nval="$nvalue" noise="noise=alls=$nval:allf=t+u," fi } @@ -1631,44 +1631,44 @@ printf "Set HDR10 VUI Options? y/N: " read hdr if "$hdr" = "y" -o "$hdr" = "Y" ; then - printf "Scan for HDR10 Side Data? y/N: " - read hdr_sd - if "$hdr_sd" = "y" -o "$hdr_sd" = "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" - echo - green "-> master-display: G(${hdrsd0},${hdrsd1})B(${hdrsd2},${hdrsd3})R(${hdrsd4},${hdrsd5})WP(${hdrsd6},${hdrsd7})L(${hdrsd9},${hdrsd8})" - green "-> max-cll: ${hdrsd10},${hdrsd11}" - echo - fi - printf "Specify the SMPTE-ST-2086 Master Display Color Volume (master-display) press 'Enter' to skip: " + 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" + SDMD="G(${hdrsd0},${hdrsd1})B(${hdrsd2},${hdrsd3})R(${hdrsd4},${hdrsd5})WP(${hdrsd6},${hdrsd7})L(${hdrsd9},${hdrsd8})" + echo + green "-> master-display: $SDMD" + green "-> max-cll: ${hdrsd10},${hdrsd11}" + echo + printf "Specify the Master Display Color Volume (master-display) default is see above: " read mdcv - test ! -z "$mdcv" && master_display=":master-display=\"$mdcv\"" + if ! -z "$SDMD" -a -z "$mdcv" ; then + master_display=":master-display=\"$SDMD\"" + else + master_display=":master-display=\"$mdcv\"" + fi printf "Specify the Content Light Level Info (max-cll) press 'Enter' to skip: " read clli test ! -z "$clli" && max_cll=":max-cll=$clli" - if -z "$clli" -o "$clli" = "0,0" ; then - hdr10=":hdr10=1" - 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 lcoffset - if "$lcoffset" = "y" -o "$lcoffset" = "Y" ; then + 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: " @@ -1951,8 +1951,8 @@ scale="scale=$res$interl:flags=$scaler$accuround$fullchroma_inp$fullchroma_int$swsparam0$swsparam1," ;; *) - WIDTH="$(echo "$res" | awk -Fx '{print $1}')" - HEIGHT="$(echo "$res" | awk -Fx '{print $2}')" + ZWIDTH="$(echo "$res" | awk -Fx '{print $1}')" + ZHEIGHT="$(echo "$res" | awk -Fx '{print $2}')" echo brown "Software Scalers" brown "~~~~~~~~~~~~~~~~" @@ -1966,18 +1966,18 @@ printf "Specify the Software Scaler default is 5: " read swsopt case "$swsopt" in - 0) scfilter="point" ;; - 1) scfilter="bilinear" ;; - 2) scfilter="bicubic" ;; - 3) scfilter="spline16" ;; - 4) scfilter="spline36" ;; - 5|"") scfilter="lanczos" ;; + 0) zfilter="point" ;; + 1) zfilter="bilinear" ;; + 2) zfilter="bicubic" ;; + 3) zfilter="spline16" ;; + 4) zfilter="spline36" ;; + 5|"") zfilter="lanczos" ;; *) error "-> Invalide software scaler!" exit 1 ;; esac - scale="zscale=width=$WIDTH:height=$HEIGHT:filter=$scfilter," + scale="zscale=width=$ZWIDTH:height=$ZHEIGHT:filter=$zfilter," ;; esac fi @@ -3562,14 +3562,14 @@ ;; esac aresamplei="aresample=${audhzi}${audfiltypei}${audmatrixi}," - ahzmetai=", ${audhzi} Hz" + ahzmetai=", $(echo "scale=1; ${audhzi}/1000" | $BC -l | sed 's|\.0$||') kHz" fi fi if -z "${audhzi}" ; then GETAUDSRi="$($FFPROBE -i "$input" -v quiet -select_streams a:${aidxi} -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 | tail -1)" case "${GETAUDSRi}" in - 1-9*) ahzmetai=", ${GETAUDSRi} Hz" ;; + 1-9*) ahzmetai=", $(echo "scale=1; ${GETAUDSRi}/1000" | $BC -l | sed 's|\.0$||') kHz" ;; esac fi @@ -3594,16 +3594,47 @@ case "${GETAUDCDCi}" in ac3) GETAUDCDCi="AC-3" ;; - eac3) GETAUDCDCi="E-AC-3" ;; - truehd) GETAUDCDCi="TrueHD" ;; + eac3|truehd) + get_audio_profile_func + case "${GETAUDPROFi}" in + "Dolby Digital Plus + Dolby Atmos"|"Dolby TrueHD + Dolby Atmos") + if ! -z "$(echo "${GETAUDPROFi}" | grep 'Digital')" ; then + GETAUDCDCi="E-AC-3 + Atmos" + audcorecdci="eac3_core" + audcdcnamei="AC-3" + else + GETAUDCDCi="TrueHD + Atmos" + audcorecdci="truehd_core" + audcdcnamei="TrueHD" + fi + printf "Track $i: Copy Full or just the ${audcdcnamei} Core? full/core - default is full: " + read acorecopyi + case "${acorecopyi}" in + c*|C*) audcorei="-bsf:a:${audindexi} ${audcorecdci}" ;; + esac + ;; + *) + if "${GETAUDCDCi}" = "eac3" ; then + GETAUDCDCi="E-AC-3" + else + GETAUDCDCi="TrueHD" + fi + ;; + esac + ;; dts) get_audio_profile_func + GETAUDCDCi="${GETAUDPROFi}" case "${GETAUDPROFi}" in - "DTS-HD MA") GETAUDCDCi="DTS-HD MA" ;; - "DTS Express") GETAUDCDCi="DTS Express" ;; - "DTS-HD HRA") GETAUDCDCi="DTS-HD HR" ;; - DTS-ES) GETAUDCDCi="DTS-ES" ;; - *) GETAUDCDCi="DTS" ;; + "DTS-HD MA"|"DTS-HD HRA"|"DTS-HD MA + DTS:X") + printf "Track $i: Copy Full or just the DTS Core? full/core - default is full: " + read acorecopyi + case "${acorecopyi}" in + c*|C*) + GETAUDCDCi="DTS" + audcorei="-bsf:a:${audindexi} dca_core" ;; + esac + ;; esac ;; vorbis) GETAUDCDCi="Vorbis" ;; @@ -3614,7 +3645,7 @@ HE|HE-AAC) GETAUDCDCi="HE-AAC" ;; HEv2|HE-AACv2) GETAUDCDCi="HE-AACv2" ;; LD|LD-AAC) GETAUDCDCi="LD-AAC" ;; - ""|N/A|unknown) GETAUDCDCi="AAC" ;; + *) GETAUDCDCi="AAC" ;; esac ;; mp3) GETAUDCDCi="MP3" ;; @@ -3650,25 +3681,37 @@ esac ;; esac + # DTS-HD MA/HRA/E-AC-3 can have up to 8 chans + # but DTS Core & AC-3 a max of 6 chans. + if ! -z "${audcorei}" ; then + case "$(echo "${achmetai}" | sed 's|:space:||g')" in + 6.1*|7.0*|7.1*) achmetai=" 5.1/6.0" ;; + mono) achmetai=" Mono" ;; + stereo) achmetai=" Stereo" ;; + esac + fi case "${GETAUDBTRi}" in 1-9*) abtrmetai=" @ $(($(echo "${GETAUDBTRi}")/1000)) kbps" ;; esac case "${GETAUDBDi}" in - 1-9*) abdmetai=", ${GETAUDBDi} bits" ;; + 1-9*) + if -z "${audcorei}" ; then + abdmetai=", ${GETAUDBDi} bits" + fi + ;; esac case "${GETAUDSRi}" in - 1-9*) asrmetai=", ${GETAUDSRi} Hz" ;; + 1-9*) asrmetai=", $(echo "scale=1; ${GETAUDSRi}/1000" | $BC -l | sed 's|\.0$||') kHz" ;; esac audmetai="-metadata:s:a:${audindexi} title=\"${GETAUDCDCi}${achmetai}${abtrmetai}${asrmetai}${abdmetai}\"" fi fi if -z "$noaudmeta" ; then - audparamsi="${audmapi} -c:a:${audindexi} ${acdci} ${audprofilei} ${audcompleveli} ${audbtri} ${audchani} ${audbdi} ${auddialnormi} ${audfiltersi} ${audlangi} ${audmetai} ${auddispoi}" - else - audparamsi="${audmapi} -c:a:${audindexi} ${acdci} ${audprofilei} ${audcompleveli} ${audbtri} ${audchani} ${audbdi} ${auddialnormi} ${audfiltersi} ${audlangi} ${auddispoi}" + audmetadatai="${audmetai}" fi - + + audparamsi="${audmapi} -c:a:${audindexi} ${acdci} ${audprofilei} ${audcompleveli} ${audbtri} ${audchani} ${audbdi} ${auddialnormi} ${audcorei} ${audfiltersi} ${audlangi} ${audmetadatai} ${auddispoi}" done 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
.