Его можно запустить cropdetect и урожай в одной строке и получить большие пальцы от видео?
что-то вроде этого
ffmpeg -ss 1 -i 0.flv -vf cropdetect=24:16:0,crop=w:h:x:y -vcodec mjpeg -vframes 1 -an -f rawvideo -s 240x180 0.jpg
Или, возможно, нужно запустить в 2-х строках, сначала запустить cropdetect, а затем запустить обрезку и генерировать большие пальцы из видео, но таким образом мне нужно получить значение от cropдетекта?
cropdetect
на консоль, чтобы вы могли анализировать вывод, а затем использовать его как переменную:
ffmpeg -i input -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1
Это приведет к чему-то вроде:
crop=640:480:0:50
Затем запустите свою фактическую команду обрезки:
ffmpeg -i input -vf $cropvalue,scale=240:-1 -vframes 1 -qscale:v 2 output.jpg
-vcodec mjpeg
, -an
и -f rawvideo
являются излишними
Используйте -qscale:v
для управления качеством вывода jpg. Нормальный диапазон составляет 2-5 (более низкое значение – более высокое качество).
Используйте фильтр scale
вместо -s
; особенно если вы уже используете фильтры. Кроме того, фильтр scale
позволит вам установить определенную ширину или высоту, а с -1
он автоматически предоставит правильное значение для сохранения аспект. В противном случае, если вы попытаетесь навязать определенный размер, вы можете рискнуть раздавленным или растянутым выходом.
Очевидно, что я не кодер PHP, но это должно дать вам хотя бы идею.