Projects
Multimedia
ffhevc
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 15
View file
ffhevc.changes
Changed
@@ -1,4 +1,17 @@ ------------------------------------------------------------------- +Sat Nov 12 10:48:00 UTC 2016 - neutrino8@opensuse.org + +- Update to version 2.9.9 + * Added support for importing external srt/ssa subtitles for the + mkv, m2ts, mts and ts containers + * Moved the subtitle code into its own video_subtitles_func() + function + * Added support for simultaneously copying subtitles from the + input file and copying external ones + * Renamed variable SUBT to SUBNR for clarity + * Updated the README file and man page + +------------------------------------------------------------------- Thu Nov 10 21:15:00 UTC 2016 - neutrino8@opensuse.org - Update to version 2.9.8
View file
ffhevc.spec
Changed
@@ -17,12 +17,12 @@ Name: ffhevc -Version: 2.9.8 +Version: 2.9.9 Release: 0 Summary: A small shell script for encoding to H.265/HEVC with ffmpeg License: GPL-2.0+ Group: Productivity/Multimedia/Video/Editors and Convertors -Url: https://sourceforge.net/projects/ffhevc +Url: https://ffhevc.teambelgium.net Source0: %{name}-%{version}.tar.gz Requires: ffmpeg BuildRoot: %{_tmppath}/%{name}-%{version}-build
View file
ffhevc-2.9.8.tar.gz/ChangeLog -> ffhevc-2.9.9.tar.gz/ChangeLog
Changed
@@ -1,3 +1,13 @@ +2016-11-12 - ffhevc 2.9.9 + * Added support for importing external srt/ssa subtitles for the + mkv, m2ts, mts and ts containers + * Moved the subtitle code into its own video_subtitles_func() + function + * Added support for simultaneously copying subtitles from the + input file and copying external ones + * Renamed variable SUBT to SUBNR for clarity + * Updated the README file and man page + 2016-11-10 - ffhevc 2.9.8 * Check if name of input file matches that of output file and warn and exit. Requires the realpath utility
View file
ffhevc-2.9.8.tar.gz/README -> ffhevc-2.9.9.tar.gz/README
Changed
@@ -3,31 +3,12 @@ as there are some cases where my h264enc script has issues encoding some Blu-ray remuxes. -ffhevc can do the following: +Features: -- it supports only video files as input. -- it support encoding in CRF, 1- and 2-pass mode. -- it has a configuration file in $HOME/.ffhevc to set things up. -- it does auto-cropping. -- it supports three video denoise filters. -- it supports four video deblock filters. -- it supports one audio volume filter. -- it supports one audio volume normalizing filter. -- it supports audio resampling. -- it supports copying virtually an unlimited amount of subtitles. -- it creates the final output directory if user provides a path in addition to the output name. -- it supports virtually an unlimited amount of audio tracks. -- it supports encoding audio to AC-3, E-AC-3, TrueHD, DTS, MP3, Vorbis, Opus, FLAC, PCM or AAC or copying an audio track. -- it supports setting the nice value in the config file. -- it supports a limited amount of user-provided metadata. -- it optionally scales the video. -- it optionally deinterlaces the input file. -- it supports interlace-aware encoding. -- it supports FPS conversion. -- it supports cover art for the MKV container. -- it supports the x265 presets and tune profiles. -- it supports custom written preset files. -- it can output to more than one container format. +An up-to-date list of the supported features is available on the +website of ffhevc + +https://ffhevc.teambelgium.net Parameters:
View file
ffhevc-2.9.8.tar.gz/ffhevc -> ffhevc-2.9.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: 2.9.8 -# Date: 2016-11-10 +# Version: 2.9.9 +# Date: 2016-11-12 # # ffhevc is free software ; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ brown() { echo -e "\e[0;33m$1\e[0;39;49m"; } error() { echo -e "\e[1;31m$1\e[0;39;49m"; } -version="2.9.8" +version="2.9.9" CFG="$HOME/.ffhevc" cfgversion="29" @@ -105,7 +105,7 @@ # Any non-zero value will do. Set it # to "auto" to ask for as many as # detected subtitles -MAX_SUBS="2" +MAX_SUBS="1" # Copy original metadata from input? METADATA="n" @@ -981,46 +981,143 @@ ################ Subs stuff ################# +video_subtitles_func() { + case "$1" in + infile) + if [ "$MAX_SUBS" = "auto" ]; then + test "$SUBNR" = "0" && MAX_SUBS="1" || MAX_SUBS="$SUBNR" + fi + for i in $(eval echo "{1..$MAX_SUBS}"); do + submapval[i]="$(($i-1))" + printf "Sub $i: Specify a Subtitle to Copy [example: 0:2]: " + read subnr[i] + if [ ! -z "${subnr[i]}" ]; then + printf "Sub $i: Specify the 3-letter Language Code for Metadata [press 'Enter' to skip]: " + read slang[i] + if [ ! -z "${slang[i]}" ]; then + sublang[i]="-metadata:s:s:${submapval[i]} language=${slang[i]}" + fi + subcopy[i]="-map ${subnr[i]} -c:s:${submapval[i]} copy ${sublang[i]}" + # Workaround for an ffmpeg disposition issue + # where in some cases it sets subsequent tracks + # as default. + test "$i" = "1" && sdis="default" || sdis="none" + subdis[i]="-disposition:s:${submapval[i]} $sdis" + else + error "-> No value given!" + exit 1 + fi + done + test "$subopt" = "2" && echo + ;; + ext) + case "$CONFMT" in + mkv|m2ts|mts|ts) true ;; + *) + error "-> The $CONFMT container doesn't support srt/ssa subtitles!" + error "-> Supported containers are: mkv, m2ts, mts and ts" + exit 1 + ;; + esac + if [ ! -z "$extracon" ]; then + for i in $extracon; do + case "$i" in + mkv|m2ts|mts|ts) true ;; + *) + echo + error "-> Warning: One or more chosen additional container" + error " doesn't support srt/ssa subtitles!" + error "-> Remuxing will most likely fail!" + echo + break + ;; + esac + done + fi + printf "How many External Subtitles to Add?: " + read subamount + case "$subamount" in + [1-9]*) MAX_SUBS="$subamount" ;; + ""|*) + error "-> Invalid value!" + exit 1 + ;; + esac + for i in $(eval echo "{1..$MAX_SUBS}"); do + test ! -z "${submapval[*]}" && submap[i]="$((${submapval[-1]}+$i))" || submap[i]="$(($i-1))" + printf "Sub $i: Specify the Subtitle File: " + read -e sub[i] + if [ ! -f "${sub[i]}" ]; then + error "-> No such file!" + exit 1 + else + printf "Sub $i: Specify the 3-letter Language Code for Metadata [press 'Enter' to skip]: " + read slng[i] + if [ ! -z "${slng[i]}" ]; then + sublng[i]="-metadata:s:s:${submap[i]} language=${slng[i]}" + fi + EXTSUBS[i]="-i \"${sub[i]}\"" + if [ ! -z "${submapval[*]}" ]; then + sdispo="none" + else + test "$i" = "1" && sdispo="default" || sdispo="none" + fi + subdispo[i]="-disposition:s:${submap[i]} $sdispo" + subcpy[i]="-map $i:0 -c:s:${submap[i]} copy ${sublng[i]}" + fi + done + ;; + esac +} + if [ "$SUBS" = "y" ]; then echo green "-> Detecting subtitles..." sleep 1 SUBSDETECT="$($FFPROBE -i "$input" 2>&1 | grep 'Stream #' | grep 'Subtitle' | sed 's| ||g')" if [ ! -z "$SUBSDETECT" ]; then - SUBT="$(echo "$SUBSDETECT" | wc -l)" + SUBNR="$(echo "$SUBSDETECT" | wc -l)" echo green "$SUBSDETECT" echo error "-> Note: not all containers support all types of subs!" else error "-> Could not detect any subtitles!" - SUBT="0" + SUBNR="0" fi echo if [ "$MAX_SUBS" = "auto" ]; then - test "$SUBT" = "0" && MAX_SUBS="1" || MAX_SUBS="$SUBT" + error "-> Note: MAX_SUBS variable is set to \"auto\" in the config file!" + error "-> This means it will ask for as many as detected subtitle tracks" + error " and you cannot skip them!" + echo fi - for i in $(eval echo "{1..$MAX_SUBS}"); do - submapval[i]="$(($i-1))" - printf "Sub $i: Specify a Subtitle to Copy (example: 0:2) [press 'Enter' to skip]: " - read subnr[i] - if [ ! -z "${subnr[i]}" ]; then - printf "Sub $i: Specify the 3-letter Language Code for Metadata [press 'Enter' to skip]: " - read slang[i] - if [ ! -z "${slang[i]}" ]; then - sublang[i]="-metadata:s:s:${submapval[i]} language=${slang[i]}" - fi - subcopy[i]="-map ${subnr[i]} -c:s:${submapval[i]} copy ${sublang[i]}" - # Workaround for an ffmpeg disposition issue - # where in some cases it sets subsequent tracks - # as default. - test "$i" = "1" && sdis="default" || sdis="none" - subdis[i]="-disposition:s:${submapval[i]} $sdis" - fi - done + brown " Subtitles" + brown " ~~~~~~~~~" + echo " 0 -> Copy subtitles from the input file" + echo " 1 -> Add external subtitle files (SRT/SSA only!)" + echo " 2 -> Copy subs from input file + add external ones (SRT/SSA only!)" + echo + printf "Sepcify the Subtitle option [press 'Enter' to skip]: " + read subopt + case "$subopt" in + 0) video_subtitles_func infile ;; + 1) video_subtitles_func ext ;; + 2) + video_subtitles_func infile + video_subtitles_func ext + ;; + "") + true + ;; + *) + error "-> Invalid option!" + exit 1 + ;; + esac fi -test -z "${subcopy[*]}" && NOSUBS="-sn" +test -z "${subcopy[*]}" -a -z "${subcpy[*]}" && NOSUBS="-sn" ################ Audio stuff ################ @@ -1477,8 +1574,8 @@ esac ;; flac) - echo " 0 -> 8000 Hz 4 -> 32000 Hz 8 -> 96000 Hz"
View file
ffhevc-2.9.8.tar.gz/ffhevc.1 -> ffhevc-2.9.9.tar.gz/ffhevc.1
Changed
@@ -3,7 +3,7 @@ .de IPs .IP "\\$1" .. -.TH ffhevc 1 "Nov 07, 2016" +.TH ffhevc 1 "Nov 12, 2016" .SH NAME ffhevc @@ -111,3 +111,6 @@ .SH BUG REPORTS Please send all bug reports and/or questions/suggestions/donations to <neutrino8@gmail.com> + +.SH WWW +https://ffhevc.teambelgium.net
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
.