Projects
Multimedia
ffhevc
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 154
View file
ffhevc.changes
Changed
@@ -1,4 +1,17 @@ ------------------------------------------------------------------- +Sat Oct 19 07:16:00 UTC 2019 - neutrino8@opensuse.org + +- Update to version 3.9.1 +* Use atomicparsley to add cover art for the mp4/m4v + containers. This removes dependence on MP4Box and + makes it possible to copy over metadata info in + an easy way +* Add +frag_keyframe to the -movflags option when + output is mp4 +* Renamed variable METACOVER to MKVCOVER +* Updated the man page + +------------------------------------------------------------------- Fri Oct 18 04:56:00 UTC 2019 - neutrino8@opensuse.org - Update to version 3.9.0
View file
ffhevc.spec
Changed
@@ -17,7 +17,7 @@ Name: ffhevc -Version: 3.9.0 +Version: 3.9.1 Release: 0 Summary: A small shell script for encoding to H.265/HEVC with ffmpeg License: GPL-2.0+ @@ -27,7 +27,7 @@ Requires: ffmpeg Requires: bc Requires: MPlayer -Requires: gpac +Requires: AtomicParsley BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch
View file
ffhevc-3.9.0.tar.gz/ChangeLog -> ffhevc-3.9.1.tar.gz/ChangeLog
Changed
@@ -1,3 +1,13 @@ +----------- - ffhevc 3.9.1 + * Use atomicparsley to add cover art for the mp4/m4v + containers. This removes dependence on MP4Box and + makes it possible to copy over metadata info in + an easy way + * Add +frag_keyframe to the -movflags option when + output is mp4 + * Renamed variable METACOVER to MKVCOVER + * Updated the man page + 2019-10-18 - ffhevc 3.9.0 * Bugfix: use correct video track for crop preview with MPlayer
View file
ffhevc-3.9.0.tar.gz/ffhevc -> ffhevc-3.9.1.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.9.0 -# Date: 2019-10-18 +# Version: 3.9.1 +# Date: 2019-10-19 # # 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.9.0" +version="3.9.1" CFG="$HOME/.ffhevc" -cfgversion="47" +cfgversion="48" genconfig_func() { cat<<EOF>>"$CFG" @@ -126,7 +126,7 @@ FFMPEG="" FFPROBE="" MPLAYER="" -MP4BOX="" +ATOMICPARSLEY="" # Add a custom comment to your encodes # Leave empty to disable/ask each time @@ -387,17 +387,17 @@ fi fi -if [ ! -z "$MP4BOX" ]; then - if [ ! -x "$MP4BOX" ]; then - error "-> MP4Box is missing from your system!" +if [ ! -z "$ATOMICPARSLEY" ]; then + if [ ! -x "$ATOMICPARSLEY" ]; then + error "-> atomicparsley 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!" + ATOMICPARSLEY="$(which atomicparsley 2>/dev/null)" + if [ ! -x "$ATOMICPARSLEY" ]; then + error "-> atomicparsley is missing from your system!" echo exit 1 fi @@ -433,7 +433,7 @@ CONFMT="$(echo "$CONFMT" | tr '[:upper:]' '[:lower:]')" if [ ! -z "$CONFMT" ]; then case "$CONFMT" in - mp4|mov) movflags="-movflags +faststart" ;; + mp4|mov) movflags="-movflags +faststart+frag_keyframe" ;; mkv|m2ts|mts|ts) true ;; *) error "-> HEVC video not supported by the chosen container!" @@ -651,7 +651,7 @@ fi case "$CONFMT" in - mkv|mp4|mov) + mkv|mp4|m4v) printf "Specify a Cover Image in JPG/PNG format [press 'Enter' to skip]: " read -e cover if [ ! -z "$cover" ]; then @@ -668,16 +668,9 @@ ;; esac case "$CONFMT" in - mkv) METACOVER="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" ;; - *) MP4COVER="-itags cover=\"$(readlink -e "$cover")\"" ;; + mkv) MKVCOVER="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" ;; + mp4|m4v) MP4COVER="1" ;; esac - if [ ! -z "$remuxcon" ]; then - for i in $remuxcon; do - case "$i" in - mp4|mov) MP4COVER2="-itags cover=\"$(readlink -e "$cover")\"" ;; - esac - done - fi fi fi ;; @@ -3424,20 +3417,20 @@ case "$1" in 1p|crf) test "$encmode" = "1p" && passone="bitrate=$vbitrate" || passone="crf=$CRF" - OPTS1="${audparams[*]} $subparams $strict $movflags $METACOVER \"$OUTPUT\"" + OPTS1="${audparams[*]} $subparams $strict $movflags $MKVCOVER \"$OUTPUT\"" ;; 2p) passone="stats=\"${OUTFILE%.*}.log\":pass=1:bitrate=$vbitrate" passtwo="stats=\"${OUTFILE%.*}.log\":pass=2:bitrate=$vbitrate" OPTS1="-an -f null -y /dev/null" - OPTS2="${audparams[*]} $subparams $strict $movflags $METACOVER \"$OUTPUT\"" + OPTS2="${audparams[*]} $subparams $strict $movflags $MKVCOVER \"$OUTPUT\"" ;; 3p) passone="stats=\"${OUTFILE%.*}.log\":pass=1:bitrate=$vbitrate" passtwo="stats=\"${OUTFILE%.*}.log\":pass=3:bitrate=$vbitrate" OPTS1="-an -f null -y /dev/null" OPTS2="-an -f null -y /dev/null" - OPTS3="${audparams[*]} $subparams $strict $movflags $METACOVER \"$OUTPUT\"" + OPTS3="${audparams[*]} $subparams $strict $movflags $MKVCOVER \"$OUTPUT\"" ;; esac echo "nice -n $NICE $FFMPEG -i \"$input\" $VIDOPTS -c:v libx265 -x265-params $passone$X265PARAMS $OPTS1" @@ -3484,14 +3477,14 @@ encoder_func $encmode >> "$OUTFILE" echo "" >> "$OUTFILE" case "$CONFMT" in - mp4|mov) + mp4|m4v) if [ ! -z "$MP4COVER" ]; then - case "$CONFMT" in - mp4) 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" + echo "echo" >> "$OUTFILE" + echo "green \"-> Adding cover image...\"" >> "$OUTFILE" + echo "$ATOMICPARSLEY \"$OUTPUT\" --artwork \"$(readlink -e "$cover")\" --overWrite >/dev/null 2>&1" >> "$OUTFILE" + echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE" + echo "echo" >> "$OUTFILE" + echo "" >> "$OUTFILE" fi ;; esac @@ -3500,19 +3493,24 @@ echo "" >> "$OUTFILE" echo "echo" >> "$OUTFILE" echo "green \"-> Remuxing to $i...\"" >> "$OUTFILE" - echo "" >> "$OUTFILE" - echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy $strict \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE" + case "$i" in + mkv) + if [ ! -z "$MP4COVER" ]; then + MKVCOVER2="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" + fi + ;; + *) MKVCOVER2="" ;; + esac + echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy $strict $MKVCOVER2 $METATITLE $METAGENRE $METAYEAR $METACOMMENT ${audmeta[*]} ${audlang[*]} ${sublang[*]} ${sublng[*]} \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE" echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE" case "$i" in - mp4|mov) - if [ ! -z "$MP4COVER2" ]; then - case "$i" in - mp4) hint2="-hint" ;; - esac + mp4|m4v) + if [ ! -z "$MKVCOVER" ]; then echo "" >> "$OUTFILE" - echo "$MP4BOX -add \"${OUTPUT%.*}.$i\" $MP4COVER2 -mpeg4 $hint2 -new \"${OUTPUT%.*}_tmp$$.$i\" >/dev/null 2>&1" >> "$OUTFILE" - echo "rm -f \"${OUTPUT%.*}.$i\"" >> "$OUTFILE" - echo "mv -f \"${OUTPUT%.*}_tmp$$.$i\" \"${OUTPUT%.*}.$i\"" >> "$OUTFILE" + echo "echo" >> "$OUTFILE" + echo "green \"-> Adding cover image...\"" >> "$OUTFILE" + echo "$ATOMICPARSLEY \"${OUTPUT%.*}.$i\" --artwork \"$(readlink -e "$cover")\" --overWrite >/dev/null 2>&1" >> "$OUTFILE" + echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE" fi ;; esac
View file
ffhevc-3.9.0.tar.gz/ffhevc.1 -> ffhevc-3.9.1.tar.gz/ffhevc.1
Changed
@@ -3,7 +3,7 @@ .de IPs .IP "\\$1" .. -.TH ffhevc 1 "Oct 18, 2019" +.TH ffhevc 1 "Oct 19, 2019" .SH NAME ffhevc @@ -30,7 +30,7 @@ .br - MPlayer (for crop preview only) .br -- MP4Box from GPAC (for mp4/mov cover art only) +- atomicparsley, version 0.9.2 or higher (for mp4 cover art only) .br - bc
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
.