From 11204872071cc3b03f82899e544d4d42a022baf6 Mon Sep 17 00:00:00 2001 From: romanwarlock Date: Sat, 17 Aug 2019 20:22:21 +0200 Subject: [PATCH] Update th.sh --- th.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/th.sh b/th.sh index 2831665..6b3e62f 100644 --- a/th.sh +++ b/th.sh @@ -22,7 +22,7 @@ if [[ $# != 4 ]]; then echo "wrong number of arguments Usage: -./thumbnails.sh NFRAMES TILE SIZE INPUT +. th.sh NFRAMES TILE SIZE INPUT NFRAMES is the number of frames (thumbnails) to generate, e.g., 16; TILE is in the form 'MxN' (where M * N should match NFRAMES), e.g., 4x4; @@ -37,27 +37,28 @@ Example: " return 1 fi -#ffmpeg -start_at_zero -copyts -ss 00:00:14 -i Rammstein\ -\ Radio.mp4 -vf "drawtext=fontfile=/path/to/Arial.ttf:fontsize=45:fontcolor=yellow:box=1:boxcolor=black:x=(W-tw)/2:y=H-th-10:text='%{pts\:gmtime\:0\:%H\\\\\\:%M\\\\\:%S}'" -vframes 1 output.png NFRAMES=$1 TILE=$2 SIZE=$3 INPUT=$4 - -#DURATION=$(ffprobe -loglevel error -show_streams "$4" | grep duration= | cut -f2 -d= | head -1) +#duration in h:m:s for caption DURX=$(ffmpeg -i "$4" 2>&1 | grep Duration | awk '{print $2}' | tr -d ,) +#duraion in seconds for thumnail generatin DURATION=$(ffmpeg -i "$4" 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }') +#resolution of video for caption RES=$(ffmpeg -i "$4" 2>&1 | grep -oP 'Stream .*, \K[0-9]+x[0-9]+') +#filesize in Mb for catopn FILESIZE=$(du -sm "$4" | awk '{print $1}') # generate thumbnails in the /tmp folder TMPDIR=/tmp/thumbnails-${RANDOM}/ mkdir $TMPDIR -#filame for (( VARIABLE=0; VARIABLE>${TMPDIR}myfile.txt echo $RES >>${TMPDIR}myfile.txt echo "$FILESIZE Mb" >>${TMPDIR}myfile.txt echo $DURX >>${TMPDIR}myfile.txt - +#convert textfile in jpg, NB modified policy.xml is needed convert -size ${SIZE}x150 -fill black -interline-spacing 10 -background white -pointsize 20 -gravity west caption:@${TMPDIR}myfile.txt ${TMPDIR}text1.jpg - - +#resize combined thumbnails convert ${TMPDIR}output.jpg -resize ${SIZE}x${SIZE} ${TMPDIR}th.jpg +#resize info's width to match combined thumbnails thewidth=$(identify -ping -format %w ${TMPDIR}th.jpg) convert ${TMPDIR}text1.jpg -crop ${thewidth}x150+0+0 ${TMPDIR}text.jpg - - +#combine info and thumbnails into output file montage ${TMPDIR}text.jpg ${TMPDIR}th.jpg -background white -geometry +0+0 -tile 1x2 thumbnails-${RANDOM}.jpg