Я думаю, что у него есть видеофильтр "черноты", который может определить, является ли последовательность изображения черной. Возможно, он также имеет фильтр для автоматического определения значений кадрирования, чтобы удалить черные границы с краев видео. Или, может быть, можно как-то написать сценарий, используя фильтр "blackness".
3 ответа
14
Да, это возможно.
Сначала воспроизведите видео, чтобы увидеть, все ли в порядке:
ffplay -i YourMovie.mp4 -vf "cropdetect=24:16:0"
cropdetect
фильтра обрезания :
cropdetect=limit:round:reset
limit = black threshold (default 24)
round = output resolution must be divisible to this
reset = after how many frames the detection process will start over
Если все выглядит хорошо, обрежьте его:
ffmpeg -i YourMovie.mp4 -vf "crop=640:256:0:36" YourCroppedMovie.mp4
Источник и дополнительная информация: блог Рене Кальес renevolution.com
9
От: https://stackoverflow.com/questions/17265381/ffmpeg-get-value-from-cropdetect
ffmpeg -i input -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1
3
Объединение двух других ответов в сценарий:
#!/bin/sh
#ffmpeg_zoom ver 20180128202453
I="$@";X=${I##*.};O=${I%.*}_zoomed.${X};f=$(which ffmpeg 2>/dev/null)
if [ ! "$f" ]||[ "$f" = '' ];then echo "Install ffmpeg";exit 1;fi
C=$($f -i "$I" -t 1 -vf cropdetect -f null - 2>&1|awk '/crop/{print $NF}'|tail -n1)
echo $f -i "$I" -vf "$C" "$O"; $f -i "$I" -vf "$C" "$O"
Этот вопрос имеет несколько соответствующих примеров ffmpeg