ffmpeg - Buat video dari bingkai gambar dengan awal dan cout

18

Saya membuat video dari bingkai gambar, dan itu berfungsi dengan baik. Masalahnya adalah saya tidak ingin menggunakan semua gambar di folder saya. Saya memiliki 200 bingkai di folder saya, tetapi saya ingin video dari 1 hingga 100

Bagaimana saya bisa membuat speficy jumlah frame atau frame end?

ffmpeg -start_number n -i test_% d.jpg -vcodec mpeg4 test.avi

Saya tidak dapat menemukan caranya

Terima kasih!

DarkPixel
sumber
Saya tidak tahu banyak tentang program ini, tetapi jika menggunakan setiap gambar dalam folder tertentu, mengapa tidak membuat folder baru dan hanya memasukkan 100 frame yang Anda inginkan?
philipthegreat
2
Itu akan menjadi "solusi hack" saya jika tidak bisa melakukannya dengan ffmpeg :)
DarkPixel

Jawaban:

29

Anda melakukan ini dengan menyatakan jumlah bingkai yang Anda inginkan:

-vframes 100  

Begitu efektif dalam kasus Anda:

ffmpeg -start_number 1 -i test_%d.jpg -vframes 100 -vcodec mpeg4 test.avi

Anda mungkin perlu menentukan parameter lain seperti pix_fmtdll tergantung pada faktor lain.

Juga, biasanya seseorang menggunakan sesuatu seperti test_%05d.jpgdengan urutan bernomor yang memiliki nol sebelumnya dan 5 digit. Jika Anda tidak memilikinya dalam format itu, Anda mungkin perlu menggunakan pola globbing. Lihat ini .

Rajib
sumber
3

Ini adalah kode yang selalu bekerja untuk saya dengan baik.

ffmpeg -i yourfile.mp4 -r 1 -ss 15 -t 16 -f image2 snapshot.jpg
                                ^     ^ 
                                ^     ^
                              start  end
                               time   time

waktu hanya dalam hitungan detik. Jika 2 menit lebih cepat dari reel, maka itu 120. Satu file gambar selalu bernilai satu detik, jadi hitung gambar keinginan Anda dengan pendekatan itu.

yourfile.mp4 = klip video Anda

snapshot.jpg = file gambar baru Anda

PENTING: biarkan image2 sendiri. Ini satu-satunya cara untuk mendapatkan apa yang saya inginkan.

Faron
sumber
4
Saya menghargai perintah ini, karena ini berfungsi dengan yang lama ffmpegyang harus saya gunakan sekarang; satu-satunya -tadalah bukan "waktu akhir", man ffmpegmenyatakan itu adalah "durasi"; jadi waktu selesai akan menjadi durasi + awal. Bersulang!
sdaau