Het is heel eenvoudig met ffmpeg, en het kan elke N seconden een frame uitvoeren zonder extra scripting. Om te exporteren als een beeldsequentie gebruik je gewoon myimage_%04d.png
of iets dergelijks als uitvoer. De %0xd
bit wordt geconverteerd naar een met nullen gevuld geheel getal van x
cijfers lang - het voorbeeld dat ik gaf krijgt uitvoer als
myimage_0000.png
,
myimage_0001.png
,
myimage_0002.png
Je kunt veel formaten voor stilstaande beelden gebruiken, png, jpeg, tga, wat dan ook (zie ffmpeg -formats
voor een volledige lijst).
*Ok dus nu weten we hoe we de film als een serie afbeeldingen kunnen exporteren, maar stel dat we niet elk frame willen exporteren? *
De truc is om simpelweg de framerate van de output te veranderen in wat we maar willen met de -r n
optie waarbij n
het aantal frames per seconde is. 1 frame per seconde zou -r 1
zijn, een frame elke vier seconden zou -r 0.25
zijn, een frame elke tien seconden zou -r 0.1
zijn enzovoort.
Dus om het allemaal samen te voegen, dit is hoe het eruit zou zien om een frame van input.mov
elke vier seconden op te slaan in output_0000.png
, output_0001.png
etc.:
ffmpeg -i input.mov -r 0.25 output_%04d.png
Merk op dat de -r 0.25
optie na het -i input.mov
gedeelte komt, omdat het de frame rate van de output regelt. Als je hem vóór de invoer zou zetten, zou hij het invoerbestand behandelen alsof het de opgegeven beeldsnelheid had.
Verander de %xd in zoveel cijfers als je nodig hebt, bijv. als het commando meer dan 10.000 frames zou maken, verander dan de %04d
in %05d
. Dit werkt ook voor invoerbestanden die een beeldreeks zijn. Lees meer hier .
Windows gebruikers : Op de opdrachtregel gebruik je %
voorbeeld: ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
In CMD en BAT Scripts gebruik je %%
voorbeeld: ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
Dus dubbele %%
in scripts, en enkele %
op de interactieve opdrachtregel. Als je het in beide situaties fout doet, krijg je een foutmelding.