Можно ли автообрезка черных полос по краям видео через FFmpeg?

Я думаю, что у него есть видео фильтр" чернота", который может определить, является ли последовательность изображений черной. Возможно, он также имеет фильтр для автоматического определения значений обрезки, чтобы удалить черные границы из краев видео. А может быть можно как-то написать скрипт с помощью фильтра "чернота".

2
задан Konstantin
26.02.2023 1:24 Количество просмотров материала 2976
Распечатать страницу

3 ответа

Да, это возможно.

сначала воспроизвести видео, чтобы увидеть, если это нормально:

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

13
отвечен Cornelius 2023-02-27 09:12

от: 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
9
отвечен Jannes 2023-02-27 11:29

собираем два других ответа вместе в скрипт:

#!/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

2
отвечен Alexx Roche 2023-02-27 13:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

automation
crop
ffmpeg
script
video
Вверх