Z 5 obrazami muszę stworzyć film 60 sekund w ffmpeg, każdy obraz musi być wyświetlany przez 15 sekund. po 15 sekundach pierwszy obraz musi zanikać, a drugi obraz musi zanikać, następnie drugi obraz musi zanikać, trzeci obraz musi zanikać ... itd. Proszę o wskazówki, jak to osiągnąć za pomocą komend ffmpeg.
27
Odpowiedzi:
Dip / fade to black
Przewiń w dół, aby przejść do metody przenikania.
Przykład, w którym każde zdjęcie jest wyświetlane przez 5 sekund, a każde ma zanikanie, które trwa 1 sekundę. Każde wejście obrazu ma tę samą szerokość, wysokość i przykładowy format obrazu. Jeśli różnią się wielkością, patrz przykład nr 3 poniżej.
Wyjście MP4
Z dźwiękiem
To samo co powyżej, ale z dźwiękiem:
Do obrazów wejściowych o różnych lub dowolnych rozmiarach
Jak w pierwszym przykładzie, ale z obrazami wejściowymi, które różnią się szerokością x wysokości. Zostaną wypełnione, aby zmieściły się w pudełku 1280 x 720:
Zobacz przykłady w sekcji Zmiana rozmiaru filmów, aby zmieściły się w odtwarzaczu o rozmiarze statycznym, jeśli chcesz przyciąć (wypełnić ekran) zamiast padu (letterbox / pillarbox) lub jeśli chcesz zapobiec skalowaniu.
Wyjście GIF
Dodaje filtry z Jak przekonwertować wideo na GIF przy użyciu ffmpeg, z rozsądną jakością?
Skorzystaj z
-loop
opcji wyjściowej, aby kontrolować liczbę pętli GIF. Domyślnie jest to pętla nieskończona, jeśli ta opcja nie jest używana. Wartością-1
jest brak pętli.Zastosowane opcje i filtry:
-t
aby ustawić czas trwania w sekundach dla każdego wejścia.-loop 1
zapętla obraz, w przeciwnym razie miałby czas trwania 1 klatki.-framerate
aby ustawić liczbę klatek na sekundę obrazu wejściowego (domyślnie, gdy wartość niezadeklarowana to 25). Przydatny do tworzenia GIF-ów.skaluj za pomocą pada, aby dopasować obrazy wejściowe do określonego, jednolitego rozmiaru (zastosowanego w przykładzie # 3).
zanikanie, zanikanie i zanikanie.
d
to czas trwania zanikania.st
jest kiedy się zaczyna.concat, aby połączyć (lub „połączyć”) każdy obraz.
format do wyprowadzania schematu podpróbkowania kolorów, który jest kompatybilny z odtwarzaczami nieopartymi na FFmpeg, jeśli wyprowadza MP4 i koduje z libx264 (domyślny koder dla wyjścia MP4, jeśli jest obsługiwany przez twoją kompilację).
podzielić, aby wykonać kopie danych wyjściowych filtra. Potrzebne przez filtry palety * do robienia wszystkiego za pomocą jednego polecenia.
palettegen i paletteuse do tworzenia ładnie wyglądającego GIF-a.
Crossfade
Przykład, w którym każde zdjęcie jest wyświetlane przez 5 sekund, a każde ma efekt przejścia, który trwa 1 sekundę. Każde wejście obrazu ma tę samą szerokość, wysokość i przykładowy format obrazu. Jeśli różnią się wielkością, dostosuj przykład 3 powyżej.
Wyjście MP4
Z dźwiękiem
Przejście między dwoma filmami z dźwiękiem
Wybierz 5 sekundowy segment z każdego wejścia i dodaj 1 sekundowe przenikanie:
Wyjście GIF
Skorzystaj z
-loop
opcji wyjściowej, aby kontrolować liczbę pętli GIF. Domyślnie jest to pętla nieskończona, jeśli ta opcja nie jest używana. Wartością-1
jest brak pętli.źródło
-t
w-loop 1 -t 1 -i 001.png
określa czas trwania poszczególnych ramek, a liczba następującaT/
wfilter_complex
bloku określa czas trwania przejścia? I czy w tym przykładzie liczony jest czas trwania ramki, w tym czas przejścia, czy nie?-preset ultrafast
.melt
.concat=n=9
części polecenia9
pochodzi z 5 obrazów w przykładzie + 4 przejścia między obrazami. Jeśli masz do czynienia z inną liczbą zdjęć, musisz odpowiednio to zmienić.Napisałem ogólny skrypt bash, który pobiera ścieżkę do folderu obrazów i wyświetla ffmpeg wideo crossfade:
https://gist.github.com/anguyen8/d0630b6aef6c1cd79b9a1341e88a573e
Skrypt zasadniczo przegląda obrazy w folderze i wypisuje polecenie, które jest podobne do odpowiedzi @ LordNeckbeard powyżej, i wykonuje polecenie. Ten skrypt pomaga, gdy masz wiele obrazów w folderze i nie chcesz ręcznie wpisywać przygnębiająco długiego polecenia.
źródło