ffmpeg_utils/random-screenshots.sh
2023-08-12 23:21:37 +03:00

29 lines
527 B
Bash
Executable File

#!/bin/sh
PROGNAME="$0"
set -e
#set -x
usage() {
echo "usage: $PROGNAME FILENAME NUMBER"
exit
}
get_duration() {
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$1" | awk '{print int($1+0.5)}'
}
[ $# -lt 2 ] && usage
file="$1"
left="$2"
duration=$(get_duration "$file")
#echo "duration: $duration"
for n in $(seq 1 $left); do
time=$(shuf -i 1-$duration -n 1)
ffmpeg -y -nostats -loglevel error -ss $time -i "$file" -frames:v 1 -q:v 2 "${file}_$n.jpg" </dev/null || true
done