Jest to bardzo proste z ffmpeg, i może wyprowadzać jedną klatkę co N sekund bez dodatkowego skryptowania. Aby wyeksportować jako sekwencję obrazów, wystarczy użyć myimage_%04d.png lub podobnego jako wyjścia. Bit %0xd jest konwertowany na wypełnioną zerem liczbę całkowitą o długości x cyfr - w podanym przeze mnie przykładzie wyjdzie jako
myimage_0000.png,
myimage_0001.png,
myimage_0002.png
Możesz użyć wielu formatów obrazów, png, jpeg, tga, cokolwiek (zobacz ffmpeg -formats po pełną listę).
*Ok, więc teraz wiemy, jak wyeksportować film jako sekwencję obrazów, ale powiedzmy, że nie chcemy eksportować każdej pojedynczej klatki? *
Sztuczka polega na tym, by po prostu zmienić liczbę klatek na wyjściu na taką, jaką chcemy, używając opcji -r n, gdzie n to liczba klatek na sekundę. 1 klatka na sekundę to -r 1, jedna klatka co cztery sekundy to -r 0.25, jedna klatka co dziesięć sekund to -r 0.1 i tak dalej.
Tak więc, aby zebrać to wszystko razem, tak wyglądałoby zapisywanie jednej klatki z input.mov co cztery sekundy do output_0000.png, output_0001.png itd.:
ffmpeg -i input.mov -r 0.25 output_%04d.png
Zauważ, że opcja -r 0.25 jest umieszczona po części -i input.mov, ponieważ kontroluje ona częstotliwość odświeżania wyjścia. Gdybyś umieścił ją przed wejściem, traktowałaby plik wejściowy tak, jakby miał określoną częstotliwość odświeżania.
Zmień %xd na tyle cyfr, ile potrzebujesz, np. jeśli komenda miałaby utworzyć więcej niż 10,000 klatek zmień %04d na %05d. Działa to również dla plików wejściowych, które są sekwencją obrazów. Czytaj więcej tutaj .
Użytkownicy Windows : W linii poleceń użyj %
przykład: ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
W skryptach CMD i BAT użyj %%
przykład: ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
Czyli podwójne %% w skryptach i pojedyncze % w interaktywnej linii poleceń. Pomylenie się w obu sytuacjach spowoduje wygenerowanie błędu.