Ini sangat sederhana dengan ffmpeg, dan dapat menghasilkan satu frame setiap N detik tanpa skrip tambahan. Untuk mengekspor sebagai urutan gambar cukup gunakan myimage_%04d.png
atau mirip dengan output. The %0xd
bit dikonversi menjadi nol-empuk bilangan bulat x
digit - contoh yang saya berikan mendapat output
myimage_0000.png
,
myimage_0001.png
,
myimage_0002.png
dll ..
Anda dapat menggunakan banyak format gambar diam, png, jpeg, tga, apa pun (lihat ffmpeg -formats
daftar lengkap).
Ok jadi sekarang kita tahu bagaimana mengekspor film sebagai urutan gambar, tetapi katakan kita tidak ingin mengekspor setiap frame?
Caranya adalah dengan hanya mengubah frame rate dari output ke apa pun yang kita inginkan menggunakan -r n
opsi di mana n
jumlah frame per detik. 1 frame per detik adalah -r 1
satu frame setiap empat detik -r 0.25
, satu frame setiap sepuluh detik, -r 0.1
dan seterusnya.
Jadi untuk menyatukan semuanya, beginilah tampilannya untuk menyimpan satu frame dari input.mov
setiap empat detik output_0000.png
, output_0001.png
dll.:
ffmpeg -i input.mov -r 0.25 output_%04d.png
Perhatikan bahwa -r 0.25
opsi pergi setelah itu -i input.mov
sebagian, karena itu mengendalikan frame rate dari keluaran . Jika Anda meletakkannya sebelum input, itu akan memperlakukan file input seolah-olah itu memiliki frame rate yang ditentukan.
Ubah% xd menjadi berapa banyak digit yang Anda butuhkan, misalnya jika perintah akan membuat lebih dari 10.000 frame, ubah %04d
menjadi %05d
. Ini juga berfungsi untuk file input yang merupakan urutan gambar. Baca lebih lanjut di sini .
Pengguna Windows : Pada baris perintah digunakan%
contoh: ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
Dalam CMD dan Script BAT digunakan %%
contoh: ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
Jadi gandakan %%
dalam skrip, dan lajang %
di baris perintah interaktif. Melakukan kesalahan di kedua situasi akan menghasilkan kesalahan.