Projects
Multimedia
ffx264
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 113
View file
ffx264.changes
Changed
@@ -1,4 +1,20 @@ ------------------------------------------------------------------- +Fri Oct 18 04:56:00 UTC 2019 - neutrino8@opensuse.org + +- Update to version 3.9.0 + * Bugfix: use correct video track for crop preview with MPlayer + * Bugfix: in the video_field_parity_func() function. + $vidtrack was missing for ffprobe + * Bugfix: missing ;; in the additional container formats code + * Renamed variable SCAN_MULTIPLE_VID_TRACKS to SCAN_MULTI_VID_TRACKS + * Some reordering in the config file + * Set Catmull-Rom as default Bicubic/Spline tuning + * Add LPCM detection for audio copy + * Add support for cover art for the mp4, m4v and mov containers. + Requires MP4Box from GPAC + * Some code optimization + +------------------------------------------------------------------- Thu Oct 17 05:40:00 UTC 2019 - neutrino8@opensuse.org - Update to version 3.8.9
View file
ffx264.spec
Changed
@@ -17,7 +17,7 @@ Name: ffx264 -Version: 3.8.9 +Version: 3.9.0 Release: 0 Summary: A small shell script for encoding to H.264 with ffmpeg License: GPL-2.0+ @@ -27,6 +27,7 @@ Requires: ffmpeg Requires: bc Requires: MPlayer +Requires: gpac BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch
View file
ffx264-3.8.9.tar.gz/ChangeLog -> ffx264-3.9.0.tar.gz/ChangeLog
Changed
@@ -1,3 +1,19 @@ +2019-10-18 - ffx264 3.9.0 + * Bugfix: use correct video track for crop + preview with MPlayer + * Bugfix: in the video_field_parity_func() + function. $vidtrack was missing for ffprobe + * Bugfix: missing ;; in the additional container + formats code + * Renamed variable SCAN_MULTIPLE_VID_TRACKS to + SCAN_MULTI_VID_TRACKS + * Some reordering in the config file + * Set Catmull-Rom as default Bicubic/Spline tuning + * Add LPCM detection for audio copy + * Add support for cover art for the mp4, m4v and mov + containers. Requires MP4Box from GPAC + * Some code optimization + 2019-10-17 - ffx264 3.8.9 * Support the WMV container format
View file
ffx264-3.8.9.tar.gz/ffx264 -> ffx264-3.9.0.tar.gz/ffx264
Changed
@@ -2,8 +2,8 @@ # # Small script to encode to H.264/AVC video using FFmpeg and libx264. # Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org> -# Version: 3.8.9 -# Date: 2019-10-17 +# Version: 3.9.0 +# Date: 2019-10-18 # # 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="3.8.9" +version="3.9.0" CFG="$HOME/.ffx264" -cfgversion="36" +cfgversion="37" genconfig_func() { cat<<EOF>>"$CFG" @@ -45,17 +45,19 @@ # Container format extension # Leave empty to ask each time +# Supported are: +# mkv/mp4/mov/m4v/m2ts/mts/ts/flv/wmv/avi CONFMT="" # Scan for multiple video tracks? -SCAN_MULTIPLE_VID_TRACKS="y" +SCAN_MULTI_VID_TRACKS="y" # Nice value (0-19) NICE="19" # CRF value (0-51) # Leave empty to ask each time -CRF="18" +CRF="19" # Automatically crop the input? AUTOCROP="y" @@ -80,9 +82,6 @@ # SCALER="" -# Support FPS conversion? -VID_FPS_CONVERT="y" - # Video filters VID_DENOISE="y" VID_DEBLOCK="y" @@ -93,6 +92,7 @@ VID_HDR_TO_SDR="y" VID_PIXEL_FORMAT="y" VID_COLORSPACE="y" +VID_FPS_CONVERT="y" # Audio filters AUD_NORMALIZE="y" @@ -123,6 +123,7 @@ FFMPEG="" FFPROBE="" MPLAYER="" +MP4BOX="" # Add a custom comment to your encodes # Leave empty to disable/ask each time @@ -384,6 +385,22 @@ fi fi +if [ ! -z "$MP4BOX" ]; then + if [ ! -x "$MP4BOX" ]; then + error "-> MP4Box is missing from your system!" + error "-> Check the config in '$CFG'" + echo + exit 1 + fi +else + MP4BOX="$(which MP4Box 2>/dev/null)" + if [ ! -x "$MP4BOX" ]; then + error "-> MP4Box is missing from your system!" + echo + exit 1 + fi +fi + BC="$(which bc 2>/dev/null)" if [ ! -x "$BC" ]; then error "-> Utility 'bc' is missing from your system!" @@ -451,7 +468,7 @@ input="$(readlink -e "$input")" fi -if [ "$SCAN_MULTIPLE_VID_TRACKS" = "y" ]; then +if [ "$SCAN_MULTI_VID_TRACKS" = "y" ]; then printf "Scan for Multiple Video Tracks? [y/N]: " read mvt if [ "$mvt" = "y" -o "$mvt" = "Y" ]; then @@ -530,7 +547,7 @@ fi if [ -z "$CONFMT" ]; then - printf "Which Container Format to use? [default is mkv]: " + printf "Which Container Format to Use? [mkv/mp4/mov/m4v/m2ts/mts/ts/flv/wmv/avi - default is mkv]: " read confmt test -z "$confmt" && CONFMT="mkv" || CONFMT="$confmt" fi @@ -585,7 +602,7 @@ mp4) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|flac|copy" ;; mov) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|alac|copy" ;; m4v) green "-> ac3|aac|fdk-aac|alac|copy" ;; - wmv) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|wmav1|wmav2|flac|copy" + wmv) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|wmav1|wmav2|flac|copy" ;; avi) green "-> ac3|eac3|dts|aac|fdk-aac|mp3|vorbis|pcm|flac|wmav1|wmav2|copy" ;; flv) green "-> aac|fdk-aac|mp3|copy" ;; ts|mts|m2ts) green "-> ac3|eac3|truehd|dts|aac|fdk-aac|mp3|vorbis|flac|copy" ;; @@ -646,7 +663,8 @@ test ! -z "$comment" && COMMENT="$comment" fi -if [ "$CONFMT" = "mkv" ]; then +case "$CONFMT" in + mkv|mp4|mov|m4v) printf "Specify a Cover Image in JPG/PNG format [press 'Enter' to skip]: " read -e cover if [ ! -z "$cover" ]; then @@ -662,10 +680,21 @@ exit 1 ;; esac - METACOVER="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" + case "$CONFMT" in + mkv) METACOVER="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" ;; + *) MP4COVER="-itags cover=\"$(readlink -e "$cover")\"" ;; + esac + if [ ! -z "$remuxcon" ]; then + for i in $remuxcon; do + case "$i" in + mp4|mov|m4v) MP4COVER2="-itags cover=\"$(readlink -e "$cover")\"" ;; + esac + done + fi fi fi -fi + ;; +esac case "$encmode" in [1-3]p) @@ -673,11 +702,11 @@ read vbtr test -z "$vbtr" && vbitrate="8000" || vbitrate="$vbtr" ;; - *|"") + ""|crf) if [ -z "$CRF" ]; then - printf "Specify a CRF Value for the Encoding [0-51 - default is 18]: " + printf "Specify a CRF Value for the Encoding [0-51 - default is 19]: " read crf - test -z "$crf" && CRF="18" || CRF="$crf" + test -z "$crf" && CRF="19" || CRF="$crf" fi ;; esac @@ -863,7 +892,7 @@ echo green "-> Detecting Field Parity..." sleep 1 - FPAR="$($FFPROBE -i "$input" -v quiet -select_streams v:0 -show_entries stream=field_order -of default=noprint_wrappers=1:nokey=1 | tail -1)" + FPAR="$($FFPROBE -i "$input" -v quiet -select_streams v:$vidtrack -show_entries stream=field_order -of default=noprint_wrappers=1:nokey=1 | tail -1)" case "$FPAR" in t*|T*) fp="tff"; fparity="Top Field First (TFF)" ;; b*|B*) fp="bff"; fparity="Bottom Field First (BFF)" ;; @@ -1457,7 +1486,7 @@ else startpos="$timepos" fi - $MPLAYER "$input" -vf rectangle=$crop_preview -noconfig all -nocache -ao null -ss $startpos -endpos 10 >/dev/null 2>&1 + $MPLAYER "$input" -vid $vidtrack -vf rectangle=$crop_preview -noconfig all -nocache -ao null -ss $startpos -endpos 10 >/dev/null 2>&1 fi fi printf "Are you Satisfied with the Crop Area? [y/N]: " @@ -1562,11 +1591,11 @@ echo " 3 -> Cubic B-Spline (1.00, 0.00)" echo " 4 -> Custom" echo - printf "Specify the Scaler Tuning option [default is 0]: " + printf "Specify the Scaler Tuning Option [default is 1]: " read swstune case "$swstune" in - 0|"") true ;; - 1) swsparam0=":param0=0.00"; swsparam1=":param1=0.50" ;; + 0) true ;; + 1|"") swsparam0=":param0=0.00"; swsparam1=":param1=0.50" ;; 2) swsparam0=":param0=0.33"; swsparam1=":param1=0.33" ;; 3) swsparam0=":param0=1.00"; swsparam1=":param1=0.00" ;; 4) @@ -3101,14 +3130,16 @@ test "${aindex[i]}" = "-1" && aindex[i]="0" GETAUDCDC[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^codec_name' | awk -F= '{print $2}')" - GETAUDBTR[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^bit_rate' | awk -F= '{print $2}')" - GETAUDSR[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^sample_rate' | awk -F= '{print $2}')" - GETAUDCL[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^channel_layout' | awk -F= '{print $2}')" if [ ! -z "${GETAUDCDC[i]}" ]; then + GETAUDBTR[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^bit_rate' | awk -F= '{print $2}')" + GETAUDSR[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^sample_rate' | awk -F= '{print $2}')" + GETAUDCL[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^channel_layout' | awk -F= '{print $2}')" + get_audio_profile_func() { GETAUDPROF[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aindex[i]} -show_streams -of default=noprint_wrappers=1 | grep '^profile' | awk -F= '{print $2}')" } + case "${GETAUDCDC[i]}" in ac3) GETAUDCDC[i]="AC-3" ;; eac3) GETAUDCDC[i]="E-AC-3" ;; @@ -3139,6 +3170,7 @@ wmav2) GETAUDCDC[i]="WMAv2" ;; opus) GETAUDCDC[i]="Opus" ;; pcm*) GETAUDCDC[i]="PCM" ;; + lpcm*) GETAUDCDC[i]="LPCM" ;; flac) GETAUDCDC[i]="FLAC" ;; alac) GETAUDCDC[i]="ALAC" ;; *) GETAUDCDC[i]="$(echo "${GETAUDCDC[i]}" | tr '[a-z]' '[A-Z]')" ;; @@ -3360,6 +3392,18 @@ fi encoder_func $encmode >> "$OUTFILE" echo "" >> "$OUTFILE" +case "$CONFMT" in + mp4|mov|m4v) + if [ ! -z "$MP4COVER" ]; then + case "$CONFMT" in + mp4|m4v) hint="-hint" ;; + esac + echo "$MP4BOX -add \"$OUTPUT\" $MP4COVER -mpeg4 $hint -new \"${OUTPUT%.*}_tmp$$.$CONFMT\" >/dev/null 2>&1" >> "$OUTFILE" + echo "rm -f \"$OUTPUT\"" >> "$OUTFILE" + echo "mv -f \"${OUTPUT%.*}_tmp$$.$CONFMT\" \"$OUTPUT\"" >> "$OUTFILE" + fi + ;; +esac if [ ! -z "$remuxcon" ]; then for i in $remuxcon; do echo "" >> "$OUTFILE" @@ -3372,6 +3416,19 @@ *) echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy $strict \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE" ;; esac echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE" + case "$i" in + mp4|mov|m4v) + if [ ! -z "$MP4COVER2" ]; then + case "$i" in + mp4|m4v) hint2="-hint" ;; + esac + echo "" >> "$OUTFILE" + echo "$MP4BOX -add \"${OUTPUT%.*}.$i\" $MP4COVER2 -mpeg4 $hint2 -new \"${OUTPUT%.*}.$i-tmp$$\" >/dev/null 2>&1" >> "$OUTFILE" + echo "rm -f \"${OUTPUT%.*}.$i\"" >> "$OUTFILE" + echo "mv -f \"${OUTPUT%.*}.$i-tmp$$\" \"${OUTPUT%.*}.$i\"" >> "$OUTFILE" + fi + ;; + esac done echo "echo" >> "$OUTFILE" 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
.