Aby utworzyć miniaturę wideo za ffmpeg
pomocą tego polecenia:
ffmpeg -itsoffset -4 -i video.mp4 -vframes 1 thumb.jpg
To daje mi miniaturę o tym samym rozmiarze filmu (który ma nieznany rozmiar, np. 960 x 540). Ale potrzebuję kwadratowej ( przyciętej ) miniatury o danym rozmiarze (np. 200 x 200). Nie można zmieniać rozmiaru wyniku, ale przyciąć go od środka, a proporcje nie powinny się zmienić.
Jak można tego dokonać?
-itsoffset
zamiast-ss
? Ostatnio zauważyłem zwiększone wykorzystanie tego przez użytkowników tworzących obrazy z filmów.-itsoffset
vs-ss
.: superuser.com/questions/538031/...Odpowiedzi:
Możesz użyć
crop
filtra wideo:Domyślnie przycięcie zostanie wyśrodkowane.
Użyj
-ss
zamiast,-itsoffset
aby wybrać czas przesunięcia.Możesz kontrolować jakość wyjściową JPEG za pomocą
-qscale:v
. Używanie wartości 2-5 jest zwykle dobre; niższa wartość oznacza wyższą jakość.crop
Filtr może również przyjąć szerokość wejścia i wyjścia oraz wysokość jak wartości:iw
,ih
,ow
,oh
. Pozwala to na bardziej elastyczne i kreatywne filtrowanie:crop=iw-100:ih-50
.Możesz przetestować za pomocą,
ffplay
aby uzyskać podgląd:Oryginalny obraz (wygenerowany za pomocą
testsrc
filtra źródłowego:Przycięty obraz:
źródło
Możesz go najpierw przeskalować, a następnie przyciąć, aby uzyskać lepszą wydajność;)
źródło