Я не могу придумать решение, использующее только ffmpeg.Но если вы извлечете первые несколько ключевых кадров (например, включив -vframes 20), они могут быть проанализированы с помощью ImageMagic.При уменьшении изображения до одного оттенка серого будет выбрано среднее значение серого на изображении.Командная строка, такая как
convert avatar.jpeg -colors 1 -type grayscale -format '%c' histogram:info:
, которая будет выдавать результат, подобный
16384: ( 80, 80, 80) #505050 gray(80)
(я использовал картинку аватара Симона в качестве примера.) Последнее число наиболее интересно для вашего случая.Он выражает, насколько темное изображение, с 0 для идеального черного и 255 для чистого белого.Сценарий sed может легко извлечь его
convert ... | sed 's/^.*(\(.*\))$/\1/'
. Смешать его с некоторыми сценариями оболочки, чтобы найти первое изображение со значением серого, превышающим заданный порог, и использовать его в качестве эскиза.