Lihat Membuat tayangan slide video dari gambar - FFmpeg
Jika video Anda tidak menunjukkan bingkai dengan benar. Jika Anda mengalami masalah, seperti gambar pertama dilewati atau hanya ditampilkan untuk satu frame, maka gunakan filter video fps, bukan -r untuk framerate output
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
Atau filter video format dapat ditambahkan ke rantai filter untuk menggantikan -pix_fmt yuv420p seperti "fps = 25, format = yuv420p" . Keuntungan dari metode ini adalah Anda dapat mengontrol filter mana yang lebih dulu
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
Saya menguji parameter di bawah ini, itu berhasil untuk saya
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4
parameter di bawah ini juga berfungsi tetapi selalu melompati gambar pertama
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4
membuat video dari gambar yang ditempatkan di folder yang berbeda
Pertama, tambahkan jalur gambar ke imagepaths.txt seperti di bawah ini.
# this is a comment details https://trac.ffmpeg.org/wiki/Concatenate
file 'E:\images\png\images__%3d.jpg'
file 'E:\images\jpg\images__%3d.jpg'
Contoh penggunaan sebagai berikut;
"h:\ffmpeg\ffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:\images\imagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:\out.mp4"
Parameter -safe 0 mencegah nama file tidak aman kesalahan
Tautan yang berhubungan
FFmpeg membuat video dari gambar yang ditempatkan di folder yang berbeda
FFMPEG Panduan Menengah / urutan gambar
Concatenate - FFmpeg
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
,, tampaknya berfungsi tetapi pada akhirnya menghasilkan video yang tidak dapat dibaca oleh pemain mana pun (di Ubuntu). VNC berkata, "moov atom tidak ditemukan". Mencoba untuk memperbaiki ini denganqt-faststart
menghasilkan kesalahan "atom terakhir dalam file bukan atom moov"-pattern_type glob
Opsi hebat ini memudahkan untuk memilih gambar dalam banyak kasus.
Video tayangan slide dengan satu gambar per detik
Tambahkan beberapa musik ke dalamnya, potong ketika audio agak lama ketika gambar berakhir:
Berikut adalah dua demo di YouTube:
Jadilah hippie dan gunakan format video Theora patent-unencumbered :
Gambar Anda tentu saja harus disortir berdasarkan abjad, biasanya sebagai:
dan seterusnya.
Saya juga pertama-tama akan memastikan bahwa semua gambar yang akan digunakan memiliki rasio aspek yang sama, mungkin dengan memotongnya dengan
imagemagick
atau nomacs sebelumnya, sehingga ffmpeg tidak harus membuat keputusan sulit. Secara khusus, lebar harus dapat dibagi 2, jika tidak konversi gagal dengan: "lebar tidak dapat dibagi 2".Video kecepatan normal dengan satu gambar per bingkai pada 30 FPS
Begini tampilannya:
GIF dihasilkan dengan: /ubuntu/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Tambahkan beberapa audio ke dalamnya:
Hasil: https://www.youtube.com/watch?v=HG7c7lldhM4
Ini adalah media uji yang saya gunakan: a
Gambar yang dihasilkan dengan: Bagaimana cara menggunakan GLUT / OpenGL untuk membuat file?
Sangat keren untuk mengamati seberapa banyak video mengompres urutan urutan gambar lebih baik daripada ZIP karena mampu mengompresi seluruh frame dengan algoritma khusus:
opengl-rotating-triangle.mp4
: 340Kopengl-rotating-triangle.zip
: 7.3MKonversi satu file musik ke video dengan gambar tetap untuk unggahan YouTube
Dijawab di: /superuser/700419/how-to-convert-mp3-to-youtube-allowed-video-format/1472572#1472572
Pengaturan studi kasus slideshow penuh realistis langkah demi langkah
Ada sedikit lebih banyak untuk membuat tayangan slide daripada menjalankan perintah ffmpeg tunggal, jadi inilah contoh detail yang lebih menarik yang terinspirasi oleh timeline ini .
Dapatkan media input:
Sekarang kita memiliki pandangan cepat pada semua ukuran gambar untuk memutuskan rasio aspek akhir:
yang keluaran:
jadi rasio aspek 480p (640x480 == 4/3) klasik tampak tepat.
Lakukan satu konversi dengan pengubahan ukuran minimal untuk membuat lebar rata (TODO mengotomatiskan untuk lebar apa pun, di sini saya hanya melihat
identify
keluaran secara manual dan mengurangi lebar dan tinggi per satu):Ini menghasilkan output yang mengerikan, karena dilihat dari:
ffmpeg hanya mengambil ukuran gambar pertama, 556x494, dan kemudian mengonversi semua yang lain ke ukuran yang tepat, melanggar rasio aspek mereka.
Sekarang mari kita konversi gambar ke rasio aspek target 480p secara otomatis dengan memotong sesuai ImageMagick: bagaimana cara memangkas gambar secara minimal ke rasio aspek tertentu?
Jadi sekarang, rasio aspeknya baik, tetapi mau tidak mau beberapa pemotongan harus dilakukan, jenis potongan mana yang menarik dari gambar.
Pilihan lain adalah untuk pad dengan latar belakang hitam untuk memiliki rasio aspek yang sama seperti yang ditunjukkan pada: Ubah ukuran agar sesuai dalam kotak dan mengatur latar belakang menjadi hitam pada bagian "kosong"
Namun secara umum, Anda idealnya dapat memilih gambar dengan rasio aspek yang sama atau serupa untuk menghindari masalah tersebut.
Tentang opsi CLI
Namun perlu dicatat bahwa meskipun namanya,
-glob
ini tidak umum seperti patters shell Glob, misalnya:-i '*'
gagal: https://trac.ffmpeg.org/ticket/3620 (tampaknya karena filetype disimpulkan dari ekstensi).-r 30
membuat-framerate 1
video 30 FPS untuk mengatasi bug pada pemain seperti VLC untuk framerate rendah: VLC membeku untuk video 1 FPS rendah yang dibuat dari gambar dengan ffmpeg Oleh karena itu ia mengulangi setiap frame 30 kali untuk menjaga efek 1 gambar per detik yang diinginkan.Langkah selanjutnya
Anda juga ingin:
potong bagian audio yang Anda inginkan sebelum bergabung: Memotong video berdasarkan waktu mulai dan berakhir menggunakan ffmpeg
TODO: belajar memotong dan menggabungkan beberapa file audio ke dalam video tanpa file perantara, saya cukup yakin itu mungkin:
Diuji pada
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliografi
sumber
'
dalam nama file input dan output. Kalau tidak, ia tidak akan menemukan file.ffmpeg-static
tidak mengimplementasikan glob. (Pattern type 'glob' was selected but globbing is not supported by this libavformat build
)-pix_fmt
menyebabkanTrailing options were found on the commandline.
kesalahanffmpeg -framerate 1 -pattern_type glob -i '*.png' -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
pada Ubuntun 19.10 ffmpeg 4.1.4 tadi, apa versi Anda dan perintah yang tepat?Versi Sederhana dari Documents
Bekerja sangat bagus untuk gambar Google Earth Studio :
sumber
%3d
atau%03d
?cat *.png | ffmpeg -f image2pipe -i - output.mp4
dari wiki
sumber