Я ищу хороший короткий простой способ создать серию миниатюр для любого видео файла. Я почти там использую ffmpeg, вот что у меня есть:
ffmpeg -i /tmp/video.avi -r 1 -ss 60 -r 1 foo-%03d.jpeg`
Единственная проблема в том, что это занимает выстрел каждую секунду, и я хотел бы делать это каждую минуту или около того. Я попытался установить значение -r
на 1/60
или .02
безрезультатно.
Для справки вот старый скрипт, который я использовал, который работал только для некоторых файлов:
#!/bin/bash
# grab a screenshot every 60 seconds
file=$1
orig_dir=`pwd`
mins=`exiftool "$file" | grep "Duration" | awk -F : '{print $2}' | grep --only-matching '[0-9]*'`
dir="$file-screenshots"
mkdir "$dir"
cd "$dir"
mplayer -vo png -vf screenshot -sstep 60 -frames $mins -ao null "../$file"
cd "$orig_dir"
Это не обязательно должно быть в командной строке, просто всегда получается проще.