Projects
Multimedia
ffhevc
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 74
View file
ffhevc.changes
Changed
@@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Mon Dec 25 10:36:00 UTC 2017 - neutrino8@opensuse.org + +- Update to version 3.4.6 + * Initial support for HDR to SDR conversions. Requires + FFmpeg to be compiled with the zimg library as it + needs the zscale filter + https://github.com/sekrit-twc/zimg + +------------------------------------------------------------------- Tue Nov 28 18:35:00 UTC 2017 - neutrino8@opensuse.org - Update to version 3.4.5
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 3.4.5 +Version: 3.4.6 Release: 0 Summary: A small shell script for encoding to H.265/HEVC with ffmpeg License: GPL-2.0+
View file
ffhevc-3.4.5.tar.gz/ChangeLog -> ffhevc-3.4.6.tar.gz/ChangeLog
Changed
@@ -1,3 +1,9 @@ +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 + needs the zscale filter + https://github.com/sekrit-twc/zimg + 2017-11-28 - ffhevc 3.4.5 * Disable Open GOP and enable header repeating when HDR options are enabled like master display and max-cll
View file
ffhevc-3.4.5.tar.gz/ffhevc -> ffhevc-3.4.6.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.5 -# Date: 2017-11-28 +# Version: 3.4.6 +# Date: 2017-12-25 # # 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.4.5" +version="3.4.6" CFG="$HOME/.ffhevc" -cfgversion="37" +cfgversion="38" genconfig_func() { cat<<EOF>>"$CFG" @@ -87,6 +87,7 @@ VID_ROTATE="y" VID_DEINTERLACE="y" VID_DETELECINE="y" +VID_HDR_TO_SDR="y" VID_PIXEL_FORMAT="y" VID_COLORSPACE="y" @@ -956,177 +957,251 @@ green "-> Color Primaries: $(to_upper "${CHARS[4]}")" } -video_colorspace_func() { - printf "Do a Colorspace/Transfer/Primaries Conversion? [y/N]: " - read ctp - if [ "$ctp" = "y" -o "$ctp" = "Y" ]; then +video_hdr_to_sdr_func() { + printf "Do an HDR to SDR Conversion? [y/N]: " + read hdr_sdr_conv + if [ "$hdr_sdr_conv" = "y" -o "$hdr_sdr_conv" = "Y" ]; then echo - green "-> Detecting characteristics..." - sleep 1 - video_chars_func + error "-> NOTE: This function requires that FFmpeg be compiled with" + error " the zimg library as it uses the zscale filter!" + error " https://github.com/sekrit-twc/zimg" echo - printf "Specify the Input/Output Color Range [tv|mpeg|pc|jpeg - default is tv:tv]: " - read crange - if [ -z "$crange" ]; then - irange="tv" - orange="tv" - else - if [ ! -z "$(echo "$crange" | grep ':')" ]; then - irange="$(echo "$crange" | awk -F: '{print $1}')" - orange="$(echo "$crange" | awk -F: '{print $2}')" - else - error "-> Invalid format! Valid is: <input_range>:<output_range> (eg: mpeg:tv)" + printf "Continue? [y/N]: " + read hdr_sdr_cont + if [ "$hdr_sdr_cont" = "y" -o "$hdr_sdr_cont" = "Y" ]; then + echo + brown " Tone Mapping Algorithms" + brown " ~~~~~~~~~~~~~~~~~~~~~~~" + echo " 0 -> None" + echo " 1 -> Clip" + echo " 2 -> Linear" + echo " 3 -> Gamma" + echo " 4 -> Reinhard" + echo " 5 -> Hable" + echo " 6 -> Mobius" + echo + printf "Specify the Tone Mapping Algorithm [default is 6]: " + read tma + case "$tma" in + 0) tm_algo="none" ;; + 1) tm_algo="clip" ;; + 2) tm_algo="linear" ;; + 3) tm_algo="gamma" ;; + 4) tm_algo="reinhard" ;; + 5) tm_algo="hable" ;; + 6|"") tm_algo="mobius" ;; + *) + error "-> Invalid option!" exit 1 - fi - fi - video_csmisc_func() { - printf "Use 10- or 12-bits BT2020 Transfer? [default is 10]: " - read bdepth - case "$bdepth" in - 10|"") bd="-10" ;; - 12) bd="-12" ;; + ;; + esac + echo + green "-> Detecting characteristics..." + sleep 1 + video_chars_func + echo + brown " Colorspace/Transfer/Primaries Conversion" + brown " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + echo " 0 -> Copy input characteristics" + echo " 1 -> Convert to BT709 (HD/FHD)" + echo " 2 -> Convert to BT470BG (PAL)" + echo " 3 -> Convert to SMPTE170M (NTSC)" + echo + printf "Specify the Conversion option [default is 0]: " + read ctpopt + case "$ctpopt" in + 0|"") + test "${CHARS[2]}" = "unknown" && colmatrix="undef" || colmatrix="${CHARS[2]}" + test "${CHARS[3]}" = "unknown" && coltrans="undef" || coltrans="${CHARS[3]}" + test "${CHARS[4]}" = "unknown" && colprim="undef" || colprim="${CHARS[4]}" + colorprim=":colormatrix=$colmatrix:colorprim=$colprim:transfer=$coltrans" + ;; + 1) zscale=",zscale=transfer=bt709:primaries=bt709:matrix=bt709"; colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" ;; + 2) zscale=",zscale=transfer=bt470bg:primaries=bt470bg:matrix=bt470bg"; colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" ;; + 3) zscale=",zscale=transfer=smpte170m:primaries=smpte170m:matrix=smpte170m"; colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" ;; *) - error "-> Invalid value!" + error "-> Invalid option!" exit 1 ;; esac - printf "Use Constant or Non-Constant Matrix? [c/n - default is n]: " - read mtype - case "$mtype" in - n|N|"") cm="nc" ;; - c|C) cm="c" ;; + tonemap="zscale=transfer=linear,tonemap=$tm_algo:desat=0$zscale," + fi + fi +} + +video_colorspace_func() { + if [ -z "$tonemap" ]; then + printf "Do a Colorspace/Transfer/Primaries Conversion? [y/N]: " + read ctp + if [ "$ctp" = "y" -o "$ctp" = "Y" ]; then + echo + green "-> Detecting characteristics..." + sleep 1 + video_chars_func + echo + printf "Specify the Input/Output Color Range [tv|mpeg|pc|jpeg - default is tv:tv]: " + read crange + if [ -z "$crange" ]; then + irange="tv" + orange="tv" + else + if [ ! -z "$(echo "$crange" | grep ':')" ]; then + irange="$(echo "$crange" | awk -F: '{print $1}')" + orange="$(echo "$crange" | awk -F: '{print $2}')" + else + error "-> Invalid format! Valid is: <input_range>:<output_range> (eg: mpeg:tv)" + exit 1 + fi + fi + video_csmisc_func() { + printf "Use 10- or 12-bits BT2020 Transfer? [default is 10]: " + read bdepth + case "$bdepth" in + 10|"") bd="-10" ;; + 12) bd="-12" ;; + *) + error "-> Invalid value!" + exit 1 + ;; + esac + printf "Use Constant or Non-Constant Matrix? [c/n - default is n]: " + read mtype + case "$mtype" in + n|N|"") cm="nc" ;; + c|C) cm="c" ;; + *) + error "-> Invalid value!" + exit 1 + ;; + esac + } + echo + brown " Colorspace Conversion" + brown " ~~~~~~~~~~~~~~~~~~~~~" + echo " 1 --> BT470M (NTSC) -> SMPTE170M (NTSC)" + echo " 2 --> BT470M (NTSC) -> BT470BG (PAL)" + echo " 3 --> BT470M (NTSC) -> BT709 (HD/FHD)" + echo " 4 --> BT470M (NTSC) -> BT2020 (4K/UHD)" + echo + echo " 5 --> SMPTE170M (NTSC) -> BT470M (NTSC)" + echo " 6 --> SMPTE170M (NTSC) -> BT470BG (PAL)" + echo " 7 --> SMPTE170M (NTSC) -> BT709 (HD/FHD)" + echo " 8 --> SMPTE170M (NTSC) -> BT2020 (4K/UHD)" + echo + echo " 9 --> BT470BG (PAL) -> BT470M (NTSC)" + echo " 10 -> BT470BG (PAL) -> SMPTE170M (NTSC)" + echo " 11 -> BT470BG (PAL) -> BT709 (HD/FHD)" + echo " 12 -> BT470BG (PAL) -> BT2020 (4K/UHD)" + echo + echo " 13 -> BT709 (HD/FHD) -> BT470M (NTSC)" + echo " 14 -> BT709 (HD/FHD) -> SMPTE170M (NTSC)" + echo " 15 -> BT709 (HD/FHD) -> BT470BG (PAL)" + echo " 16 -> BT709 (HD/FHD) -> BT2020 (4K/UHD)" + echo + echo " 17 -> BT2020 (4K/UHD) -> BT470M (NTSC)" + echo " 18 -> BT2020 (4K/UHD) -> SMPTE170M (NTSC)" + echo " 19 -> BT2020 (4K/UHD) -> BT470BG (PAL)" + echo " 20 -> BT2020 (4K/UHD) -> BT709 (HD/FHD)" + echo + printf "Specify the Colorspace Conversion option [press 'Enter' to skip]: " + read csopt + case "$csopt" in + 1) + cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" + colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" + ;; + 2) + cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" + ;; + 3) + cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" + colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" + ;; + 4) + video_csmisc_func + cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" + colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" + ;; + 5) + cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" + ;; + 6) + cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" + ;; + 7) + cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" + colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" + ;; + 8) + video_csmisc_func + cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" + colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" + ;; + 9) + cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" + ;; + 10) + cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" + colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" + ;; + 11) + cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" + colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" + ;; + 12) + video_csmisc_func + cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" + colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" + ;; + 13) + cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" + ;; + 14) + cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" + colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" + ;; + 15) + cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" + ;; + 16) + video_csmisc_func + cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" + colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" + ;; + 17) + video_csmisc_func + cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" + ;; + 18) + video_csmisc_func + cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" + colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" + ;; + 19) + video_csmisc_func + cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" + colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" + ;; + 20) + video_csmisc_func + cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" + colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" + ;; + "") true ;; *) - error "-> Invalid value!" + error "-> Invalid option!" exit 1 ;; esac - } - echo - brown " Colorspace Conversion" - brown " ~~~~~~~~~~~~~~~~~~~~~" - echo " 1 --> BT470M (NTSC) -> SMPTE170M (NTSC)" - echo " 2 --> BT470M (NTSC) -> BT470BG (PAL)" - echo " 3 --> BT470M (NTSC) -> BT709 (HD/FHD)" - echo " 4 --> BT470M (NTSC) -> BT2020 (4K/UHD)" - echo - echo " 5 --> SMPTE170M (NTSC) -> BT470M (NTSC)" - echo " 6 --> SMPTE170M (NTSC) -> BT470BG (PAL)" - echo " 7 --> SMPTE170M (NTSC) -> BT709 (HD/FHD)" - echo " 8 --> SMPTE170M (NTSC) -> BT2020 (4K/UHD)" - echo - echo " 9 --> BT470BG (PAL) -> BT470M (NTSC)" - echo " 10 -> BT470BG (PAL) -> SMPTE170M (NTSC)" - echo " 11 -> BT470BG (PAL) -> BT709 (HD/FHD)" - echo " 12 -> BT470BG (PAL) -> BT2020 (4K/UHD)" - echo - echo " 13 -> BT709 (HD/FHD) -> BT470M (NTSC)" - echo " 14 -> BT709 (HD/FHD) -> SMPTE170M (NTSC)" - echo " 15 -> BT709 (HD/FHD) -> BT470BG (PAL)" - echo " 16 -> BT709 (HD/FHD) -> BT2020 (4K/UHD)" - echo - echo " 17 -> BT2020 (4K/UHD) -> BT470M (NTSC)" - echo " 18 -> BT2020 (4K/UHD) -> SMPTE170M (NTSC)" - echo " 19 -> BT2020 (4K/UHD) -> BT470BG (PAL)" - echo " 20 -> BT2020 (4K/UHD) -> BT709 (HD/FHD)" - echo - printf "Specify the Colorspace Conversion option [press 'Enter' to skip]: " - read csopt - case "$csopt" in - 1) - cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" - colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" - ;; - 2) - cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" - ;; - 3) - cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" - colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" - ;; - 4) - video_csmisc_func - cspace="iall=bt470m:ispace=bt470m:itrc=bt470m:iprimaries=bt470m:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" - colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" - ;; - 5) - cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" - ;; - 6) - cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" - ;; - 7) - cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" - colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" - ;; - 8) - video_csmisc_func - cspace="iall=smpte170m:ispace=smpte170m:itrc=smpte170m:iprimaries=smpte170m:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" - colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" - ;; - 9) - cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" - ;; - 10) - cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" - colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" - ;; - 11) - cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" - colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" - ;; - 12) - video_csmisc_func - cspace="iall=bt470bg:ispace=bt470bg:itrc=bt470bg:iprimaries=bt470bg:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" - colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" - ;; - 13) - cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" - ;; - 14) - cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" - colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" - ;; - 15) - cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" - ;; - 16) - video_csmisc_func - cspace="iall=bt709:ispace=bt709:itrc=bt709:iprimaries=bt709:irange=$irange:all=bt2020:space=bt2020ncl:trc=bt2020$bd:primaries=bt2020:range=$orange:dither=fsb" - colorprim=":colormatrix=bt2020$cm:colorprim=bt2020:transfer=bt2020$bd" - ;; - 17) - video_csmisc_func - cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=bt470m:space=bt470m:trc=bt470m:primaries=bt470m:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470m:colorprim=bt470m:transfer=bt470m" - ;; - 18) - video_csmisc_func - cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=smpte170m:space=smpte170m:trc=smpte170m:primaries=smpte170m:range=$orange:dither=fsb" - colorprim=":colormatrix=smpte170m:colorprim=smpte170m:transfer=smpte170m" - ;; - 19) - video_csmisc_func - cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=bt470bg:space=bt470bg:trc=bt470bg:primaries=bt470bg:range=$orange:dither=fsb" - colorprim=":colormatrix=bt470bg:colorprim=bt470bg:transfer=bt470bg" - ;; - 20) - video_csmisc_func - cspace="iall=bt2020:ispace=bt2020ncl:itrc=bt2020$bd:iprimaries=bt2020:irange=$irange:all=bt709:space=bt709:trc=bt709:primaries=bt709:range=$orange:dither=fsb" - colorprim=":colormatrix=bt709:colorprim=bt709:transfer=bt709" - ;; - "") true ;; - *) - error "-> Invalid option!" - exit 1 - ;; - esac - test ! -z "$cspace" && colorspace="colorspace=$cspace," + test ! -z "$cspace" && colorspace="colorspace=$cspace," + fi fi } @@ -1139,6 +1214,7 @@ test "$VID_DEINTERLACE" = "y" && video_deinterlace_func test "$VID_DETELECINE" = "y" && video_detelecine_func test "$VID_PIXEL_FORMAT" = "y" && video_pixfmt_func + test "$VID_HDR_TO_SDR" = "y" && video_hdr_to_sdr_func test "$VID_COLORSPACE" = "y" && video_colorspace_func test "$VID_ROTATE" = "y" && video_rotate_func fi @@ -1400,7 +1476,7 @@ fi fi -if [ -z "$cspace" ]; then +if [ -z "$cspace" -a -z "$tonemap" ]; then printf "Define the Color Primaries? [y/N]: " read cprim if [ "$cprim" = "y" -o "$cprim" = "Y" ]; then @@ -1440,7 +1516,7 @@ esac case "$cpopt" in [4-7]) - printf "Use SMPTE-ST-2084 Transfer Characteristics? [y/N]: " + printf "Use SMPTE-2084 Transfer Characteristics? [y/N]: " read smpte if [ "$smpte" = "y" -o "$smpte" = "Y" ]; then transfer="smpte2084" @@ -2908,7 +2984,7 @@ test "$CHAPS" = "n" && CHPS="-map_chapters -1" -vidfilters="$(echo "$deinterlace$detelecine$pixformat$colorspace$crop$deblock$denoise$scale$unsharp$rotate$setpts$fps$framestep" | sed 's|,$||')" +vidfilters="$(echo "$deinterlace$detelecine$tonemap$pixformat$colorspace$crop$deblock$denoise$scale$unsharp$rotate$setpts$fps$framestep" | sed 's|,$||')" test ! -z "$vidfilters" && vfilters="-vf $vidfilters"
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
.