Czy możliwe jest automatyczne przycinanie czarnych ramek wideo za pomocą ffmpeg?


16

Myślę, że ma filtr wideo „czerni”, który może ustalić, czy sekwencja obrazów jest czarna. Być może ma również filtr do automatycznego określania wartości kadrowania w celu usunięcia czarnych ramek z krawędzi wideo. A może w jakiś sposób można napisać skrypt za pomocą filtra „czerni”.

Odpowiedzi:


22

Tak to mozliwe.

Najpierw odtwórz film, aby sprawdzić, czy jest w porządku:

ffplay -i YourMovie.mp4 -vf "cropdetect=24:16:0"

Wartości cropdetectfiltrów to:

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

Jeśli wygląda OK, przytnij:

ffmpeg -i YourMovie.mp4 -vf "crop=640:256:0:36" YourCroppedMovie.mp4

Źródło i więcej informacji: blog René Calles renevolution.com


6
Przydaje się wprowadzenie punktu początkowego (-ss 00:05:00) podczas korzystania z funkcji cropdetect (przed wejściem -i), ponieważ niektóre wideo będą miały jednolity czarny ekran podczas uruchamiania.

Chciałbym użyć tego do przycinania python matplotlib.animationfilmów, które mają białą ramkę. Czy można zmienić kolor wykrywanej ramki?
ryanjdillon

1
Czy możesz określić coś innego niż czerń jako kolor obramowania? Na przykład biały?
DanMan

To nie odpowiada na pytanie, ponieważ nadal musisz wykonywać działania ręczne
Freedo

Hej @Cornelius, czy możesz mi pomóc znaleźć jedno polecenie - chcę przyciąć video.mp4 z Square do Round za pomocą ffmpeg - nie chcę używać do tego polecenia nakładki
Adil


4

Łączenie pozostałych dwóch odpowiedzi w skrypcie:

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

To pytanie zawiera kilka odpowiednich przykładów ffmpeg

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.