Возможно ли обрезать черные границы видео с помощью ffmpeg?


15

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

Ответы:


21

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

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

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


5
Может быть полезно указать начальную точку (-ss 00:05:00) при использовании функции обрезки (перед вводом -i), так как некоторые видео при запуске будут иметь сплошной черный экран.

Я хотел бы использовать это для обрезки python matplotlib.animationвидео, которые имеют белую рамку. Можно ли изменить цвет обнаруживаемой границы?
ryanjdillon

1
Можете ли вы указать что-то еще кроме черного в качестве цвета рамки? Белый например?
DanMan

Это не отвечает на вопрос, так как вам все еще нужно выполнять ручные действия
Freedo

Эй, @Cornelius, не могли бы вы помочь мне найти одну команду - я хочу обрезать video.mp4 из Square в Round, используя ffmpeg - не хочу использовать для этого команду оверлея
Adil


4

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.