Projects
Multimedia
ffxvid
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 23
View file
ffxvid.changes
Changed
@@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Tue Dec 26 07:21:00 UTC 2017 - neutrino8@opensuse.org + +- Update to version 1.2.2 + * 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 + +------------------------------------------------------------------- Sun Oct 22 17:37:00 UTC 2017 - neutrino8@opensuse.org - Update to version 1.2.1
View file
ffxvid.spec
Changed
@@ -17,7 +17,7 @@ Name: ffxvid -Version: 1.2.1 +Version: 1.2.2 Release: 0 Summary: A small shell script for encoding to H.264 with ffmpeg License: GPL-2.0+
View file
ffxvid-1.2.1.tar.gz/ChangeLog -> ffxvid-1.2.2.tar.gz/ChangeLog
Changed
@@ -1,3 +1,9 @@ +2017-12-26 - ffxvid 1.2.2 + * 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-10-22 - ffxvid 1.2.1 * Support dialog level normalization for AC3/EAC3 audio
View file
ffxvid-1.2.1.tar.gz/ffxvid -> ffxvid-1.2.2.tar.gz/ffxvid
Changed
@@ -2,8 +2,8 @@ # # Small script to encode to Xvid video using FFmpeg. # Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org> -# Version: 1.2.1 -# Date: 2017-10-22 +# Version: 1.2.2 +# Date: 2017-12-26 # # ffx264 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="1.2.1" +version="1.2.2" CFG="$HOME/.ffxvid" -cfgversion="7" +cfgversion="8" 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" @@ -896,167 +897,236 @@ 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 + ;; + 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|"") true ;; + 1) zscale=",zscale=transfer=bt709:primaries=bt709:matrix=bt709" ;; + 2) zscale=",zscale=transfer=bt470bg:primaries=bt470bg:matrix=bt470bg" ;; + 3) zscale=",zscale=transfer=smpte170m:primaries=smpte170m:matrix=smpte170m" ;; + *) + error "-> Invalid option!" + exit 1 + ;; + esac + tonemap="zscale=transfer=linear,tonemap=$tm_algo:desat=0$zscale," 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" ;; + 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 + } + 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)
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
.