diff --git a/kiss/ffmpeg_splitter.sh b/kiss/ffmpeg_splitter.sh index 647c76f15c798591344137a8aca3476e53e7865c..2ef387d22e719bc3608bf0da4531530b6e710aa0 100755 --- a/kiss/ffmpeg_splitter.sh +++ b/kiss/ffmpeg_splitter.sh @@ -2,7 +2,8 @@ # dirty little script to split a video into 15 minutes parts with ten # seconds overlap (for upload to youtube) - +# Author: milan <milan.santosi@gmail.com> +# # USAGE: read comments and adjust where necessary, then: # ./ffmpeg_splitter.sh <inputfile> #################################################################### @@ -25,13 +26,16 @@ else fi -# get length and calculate amount of segments -let vidlen=$(ffprobe -show_format $1 | grep duration | cut -d "." -f 1 | cut -d "=" -f 2)+1 -let segcount=$vidlen/890 +# get length of the original video, calculate amount of segments and +# combined length of all parts (with overlap) +let vidlen=$(ffprobe -show_format $bname-keyframes.$ext | grep duration | cut -d "." -f 1 | cut -d "=" -f 2) +let segcount=$vidlen/900 +let withoverlap=$vidlen+$segcount*10 +let newsegcount=$withoverlap/900 -# loop until it's done -for (( i = 1; i <= $segcount; i++)) +# loop until it's done (actually one more time, just to make sure) +for (( i = 1; i <= $newsegcount+1; i++)) do ffmpeg -vcodec copy -acodec copy -ss $[i*890 - 890] -t 899.999 -i $bname-keyframes.$ext $bname-part0$i.$ext done