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 7
View file
ffhevc.changes
Changed
@@ -1,7 +1,23 @@ ------------------------------------------------------------------- +Fri Nov 04 10:43:00 UTC 2016 - neutrino8@opensuse.org + +- Update to version 2.9.2 + * Bugfix: the scale variable was used twice for different things + causing an overwrite of the scale filter parameters, which + eventually results in ffmpeg complaining and exiting + * Added support for NTSC <-> NTSC and NTSC <-> PAL frame rate + conversions + * New var in config file, VID_FPS_CONVERT, to enable/disable + FPS conversion. Bumps up config file version to 28 + * Moved the FPS detection code into its own function so it can + be easily reused + * Minor cosmetics + * Updated the README file + +------------------------------------------------------------------- Thu Nov 03 15:29:00 UTC 2016 - neutrino8@gmail.com -Update to version 2.9.1 +- Update to version 2.9.1 * Added support for interlace-aware encoding * Added support for the spp, uspp and pp7 deblockers * Support asking for software scaler during exec time
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 2.9.1 +Version: 2.9.2 Release: 0 Summary: A small shell script for encoding to H.265/HEVC with ffmpeg License: GPL-2.0+
View file
ffhevc-2.9.1.tar.gz/ChangeLog -> ffhevc-2.9.2.tar.gz/ChangeLog
Changed
@@ -1,3 +1,16 @@ +2016-11-04 - ffhevc 2.9.2 + * Bugfix: the scale variable was used twice for different things + causing an overwrite of the scale filter parameters, which + eventually results in ffmpeg complaining and exiting + * Added support for NTSC <-> NTSC and NTSC <-> PAL frame rate + conversions + * New var in config file, VID_FPS_CONVERT, to enable/disable + FPS conversion. Bumps up config file version to 28 + * Moved the FPS detection code into its own function so it can + be easily reused + * Minor cosmetics + * Updated the README file + 2016-11-03 - ffhevc 2.9.1 * Added support for interlace-aware encoding * Added support for the spp, uspp and pp7 deblockers @@ -15,7 +28,7 @@ * Use denoise var instead of denoiser for the denoise filters and rotate var instead of transpose for the transpose filter * Added support for deblocking with the fspp filter. This bumps - up the config file version to 26 + up the config file version to 27 * Update to the README file 2016-11-01 - ffhevc 2.8.9
View file
ffhevc-2.9.1.tar.gz/README -> ffhevc-2.9.2.tar.gz/README
Changed
@@ -1,6 +1,7 @@ -ffhevc is a small and basic shell script for encoding to H.265/HEVC video -using ffmpeg and the libx265 library. I wrote it for my own use as there -are some cases where my h264enc script has issues encoding some Blu-ray remuxes. +ffhevc is a small shell script for encoding to H.265/HEVC video +using ffmpeg and the libx265 library. I wrote it for my own use +as there are some cases where my h264enc script has issues encoding +some Blu-ray remuxes. ffhevc can do the following: @@ -21,6 +22,8 @@ - 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.
View file
ffhevc-2.9.1.tar.gz/ffhevc -> ffhevc-2.9.2.tar.gz/ffhevc
Changed
@@ -2,18 +2,18 @@ # # Small script to encode to H.265/HEVC video using FFmpeg and libx265. # Author: Grozdan "microchip" Nikolov <neutrino8@gmail.com> -# Version: 2.9.1 -# Date: 2016-11-03 +# Version: 2.9.2 +# Date: 2016-11-04 # License: GNU GPLv2+ green() { echo -e "\e[1;32m$1\e[0;39;49m"; } 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.1" +version="2.9.2" CFG="$HOME/.ffhevc" -cfgversion="27" +cfgversion="28" genconfig_func() { cat<<EOF>>"$CFG" @@ -43,7 +43,7 @@ # Automatically crop the input? AUTOCROP="y" -# Enable software scaling support +# Enable software scaling support? SCALE="y" # Leave empty to ask each time or @@ -62,6 +62,10 @@ # SCALER="" +# Support NTSC <-> PAL or +# NTSC <-> NTSC FPS conversion? +VID_FPS_CONVERT="y" + # Video filters VID_DENOISE="y" VID_DEBLOCK="y" @@ -504,6 +508,12 @@ fi fi +# Used by mc deinterlace and FPS conversion +video_fps_func() { + FPSOUT="$(dirname "$OUTPUT")/.ff_fps$$" + $FFPROBE -i "$input" -select_streams v:0 -show_entries stream=r_frame_rate > "$FPSOUT" 2>&1 +} + if [ "$VID_DEINTERLACE" = "y" ]; then video_deinterlace_func() { printf "Use Motion-Compensation Deinterlacing? [y/N]: " @@ -540,8 +550,7 @@ case "$dmethod" in 0|"") video_deinterlace_func ofps ;; 1) - FPSOUT="$(dirname "$OUTPUT")/.ff_fps$$" - $FFPROBE -i "$input" -select_streams v:0 -show_entries stream=r_frame_rate > "$FPSOUT" 2>&1 + video_fps_func FPS1="$(cat "$FPSOUT" | sed -n 's|r_frame_rate=||p' | awk -F/ '{print $1}')" FPS2="$(cat "$FPSOUT" | sed -n 's|r_frame_rate=||p' | awk -F/ '{print $2}')" rm -f "$FPSOUT" @@ -649,8 +658,8 @@ echo " 9 -> Natural Bicubic Spline" echo printf "Sepcify the Software Scaler [default is 9]: " - read scale - case "$scale" in + read swscaler + case "$swscaler" in 0) scaler="fast_bilinear" ;; 1) scaler="bilinear" ;; 2) scaler="bicubic" ;; @@ -707,16 +716,136 @@ colorprim=":colormatrix=$matrix:colorprim=$prim:transfer=$transfer" fi +if [ "$VID_FPS_CONVERT" = "y" ]; then + # Not supported with interlaced encoding + # and deinterlacing with a bobber + if [ -z "$interlaced" -a -z "$fp" ]; then + printf "Do an NTSC <-> PAL or NTSC <-> NTSC FPS conversion? [y/N]: " + read fpscon + if [ "$fpscon" = "y" -o "$fpscon" = "Y" ]; then + echo + green "-> Detecting FPS value..." + sleep 1 + video_fps_func + FPS="$(cat "$FPSOUT" | sed -n 's|r_frame_rate=||p')" + rm -f "$FPSOUT" + green "-> Detected: $FPS FPS" + case "$FPS" in + 24/1|25/1|24000/1001|30000/1001) true ;; + *) + echo + error "-> Detected FPS is not supported yet!" + error "-> Supported FPS are: 24/1, 25/1, 24000/1001 and 30000/1001" + error "-> Skipping FPS conversion!" + skipfps="1" + ;; + esac + echo + if [ -z "$skipfps" ]; then + brown " NTSC <-> PAL and NTSC <-> NTSC FPS Conversion" + brown " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + echo " 0 --> 23.976 FPS (24000/1001) to 24 FPS" + echo " 1 --> 23.976 FPS (24000/1001) to 25 FPS" + echo " 2 --> 23.976 FPS (24000/1001) to 29.970 FPS" + echo + echo " 3 --> 24 FPS to 23.976 FPS (24000/1001)" + echo " 4 --> 24 FPS to 25 FPS" + echo " 5 --> 24 FPS to 29.970 FPS (30000/1001)" + echo + echo " 6 --> 25 FPS to 23.976 FPS (24000/1001)" + echo " 7 --> 25 FPS to 24 FPS" + echo " 8 --> 25 FPS to 29.970 FPS (30000/1001)" + echo + echo " 9 --> 29.970 FPS (30000/1001) to 23.976 FPS (24000/1001)" + echo " 10 -> 29.970 FPS (30000/1001) to 24 FPS" + echo " 11 -> 29.970 FPS (30000/1001) to 25 FPS" + echo + printf "Specify the FPS Conversion option [press 'Enter' to skip]: " + read fpsopt + case "$fpsopt" in + 0) + setpts="setpts=23976/24000*PTS," + atempo="atempo=1.001001001," + ofps="-r 24/1" + ;; + 1) + setpts="setpts=23976/25000*PTS," + atempo="atempo=1.04270937604270937604," + ofps="-r 25/1" + ;; + 2) + setpts="setpts=23976/29970*PTS," + atempo="atempo=1.25," + ofps="-r 30000/1001" + ;; + 3) + setpts="setpts=24000/23976*PTS," + atempo="atempo=0.999," + ofps="-r 24000/1001" + ;; + 4) + setpts="setpts=24000/25000*PTS," + atempo="atempo=1.04166666667," + ofps="-r 25/1" + ;; + 5) + setpts="setpts=24000/29970*PTS," + atempo="atempo=1.24875," + ofps="-r 30000/1001" + ;; + 6) + setpts="setpts=25000/23976*PTS," + atempo="atempo=0.95904," + ofps="-r 24000/1001" + ;; + 7) + setpts="setpts=25000/24000*PTS," + atempo="atempo=0.96," + ofps="-r 24/1" + ;; + 8) + setpts="setpts=25000/29970*PTS," + atempo="atempo=1.1988," + ofps="-r 30000/1001" + ;; + 9) + setpts="setpts=29970/23976*PTS," + atempo="atempo=0.8," + ofps="-r 24000/1001" + ;; + 10) + setpts="setpts=29970/24000*PTS," + atempo="atempo=0.800800800801," + ofps="-r 24/1" + ;; + 11) + setpts="setpts=29970/25000*PTS," + atempo="atempo=0.83416750083416750083," + ofps="-r 25/1" + ;; + "") + true + ;; + *) + error "-> Invalid option!" + exit 1 + ;; + esac + fi + fi + fi +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
.