Dengan 5 gambar saya harus membuat video 60 detik di ffmpeg, setiap gambar harus ditampilkan selama 15 detik. setelah 15 detik, gambar pertama harus memudar dan gambar ke-2 harus memudar, setelah itu gambar ke-2 harus memudar, gambar ke-3 harus memudar ke dalam .. dll Tolong bimbing saya bagaimana saya bisa mencapai ini menggunakan perintah ffmpeg.
27
Jawaban:
Celupkan / pudar menjadi hitam
Gulir ke bawah untuk metode crossfade.
Contoh di mana setiap gambar ditampilkan selama 5 detik dan masing-masing memiliki pudar yang berlangsung 1 detik. Setiap input gambar memiliki rasio aspek lebar, tinggi, dan sampel yang sama. Jika ukurannya bervariasi, lihat contoh # 3 di bawah ini.
Output MP4
Dengan audio
Sama seperti di atas tetapi dengan audio:
Untuk input gambar dengan ukuran bervariasi atau sewenang-wenang
Seperti contoh pertama, tetapi dengan input gambar yang bervariasi lebar x tinggi. Mereka akan diisi agar sesuai dalam kotak 1280x720:
Lihat contoh dalam Mengubah ukuran video agar pas dengan pemutar berukuran statis jika Anda ingin memotong (mengisi layar) alih-alih kertas (kotak surat / kotak pilar), atau jika Anda ingin mencegah peningkatan.
Output GIF
Menambahkan filter dari Bagaimana cara mengkonversi video ke GIF menggunakan ffmpeg, dengan kualitas yang masuk akal?
Gunakan
-loop
opsi output untuk mengontrol berapa kali loop GIF. Default adalah infinite loop jika opsi ini tidak digunakan. Nilai-1
is no loop.Opsi dan filter yang digunakan:
-t
untuk mengatur durasi dalam detik dari setiap input.-loop 1
loop gambar jika tidak akan memiliki durasi 1 frame.-framerate
untuk mengatur laju bingkai gambar input (default ketika dideklarasikan adalah 25). Berguna untuk membuat GIF.skala dengan pad untuk menyesuaikan gambar input ke dalam ukuran seragam yang spesifik (digunakan dalam contoh # 3).
fade menjadi fade in dan out.
d
adalah durasi fade.st
adalah saat dimulai.concat ke concatenate (atau "gabung") setiap gambar.
format untuk menampilkan skema subsampling kroma yang kompatibel dengan pemain berbasis non-FFmpeg jika mengeluarkan MP4 dan penyandian dengan libx264 (penyandi default untuk keluaran MP4 jika didukung oleh build Anda).
terpecah untuk membuat salinan dari output filter. Dibutuhkan oleh palette * filter untuk melakukan semuanya dalam satu perintah.
palettegen dan paletteuse untuk membuat GIF terlihat bagus.
Crossfade
Contoh di mana setiap gambar ditampilkan selama 5 detik dan masing-masing memiliki crossfade yang berlangsung 1 detik. Setiap input gambar memiliki rasio aspek lebar, tinggi, dan sampel yang sama. Jika ukurannya berbeda, maka adaptasi contoh # 3 di atas.
Output MP4
Dengan audio
Persilangan antara dua video dengan audio
Pilih segmen 5 detik dari setiap input dan tambahkan crossfade 1 detik:
Output GIF
Gunakan
-loop
opsi output untuk mengontrol berapa kali loop GIF. Default adalah infinite loop jika opsi ini tidak digunakan. Nilai-1
is no loop.sumber
-t
di-loop 1 -t 1 -i 001.png
mendefinisikan durasi frame individu, dan bahwa nomor-nomor berikutT/
dalamfilter_complex
blok mendefinisikan durasi transisi ini? Dan apakah durasi bingkai dalam contoh ini dihitung termasuk durasi transisi atau tidak?-preset ultrafast
.melt
.concat=n=9
bagian perintah, yang9
berasal dari 5 gambar dalam contoh + 4 transisi antara gambar. Jika Anda menangani jumlah gambar yang berbeda, Anda harus menyesuaikannya.Saya menulis skrip bash umum yang mengambil jalur ke folder gambar , dan menghasilkan video crossfade dengan ffmpeg:
https://gist.github.com/anguyen8/d0630b6aef6c1cd79b9a1341e88a573e
Script pada dasarnya melihat gambar dalam folder dan mencetak perintah yang mirip dengan jawaban oleh @LordNeckbeard di atas, dan menjalankan perintah. Script ini membantu ketika Anda memiliki banyak gambar di folder dan tidak ingin mengetikkan perintah yang panjang secara manual.
sumber