Saya memiliki satu set bingkai video yang disimpan sebagai gambar dalam direktori, dan saya mencoba menyandikannya ke video berkualitas baik, namun setiap pengaturan dan format yang saya coba menghasilkan artefak yang sangat mencolok.
Perintah dasarnya adalah ini:
ffmpeg -r 25 -i %4d.png myvideo.mpg
dan saya sudah mencoba bendera minrate dan maxrate. Semua format {mpg, avi, mov, flv} bisa digunakan.
Ada saran untuk pengaturan? Ukuran file akhir tidak menjadi masalah.
video
ffmpeg
video-encoding
CakeMaster
sumber
sumber
ffmpeg -r 20 -f image2 -i myImage%04d.png -f mp4 -q:v 0 -vcodec mpeg4 -r 20 myVideo.mp4
. Saya menemukan bahwa untuk memaksa framerate, saya harus menentukannya untuk file input dan output. Codec ini tampaknya berfungsi untuk saya - Anda mungkin tidak perlu menentukannya. Saya hanya ingin memasukkan apa yang saya lakukan karena saya telah menghabiskan banyak waktu untuk mengerjakannya. Satu-satunya downside adalah bahwa gambar masukan saya memiliki kontras tinggi (bola biru dan merah dengan latar belakang putih) dan kemudian di film, semua bola mulai menjadi warna gelap yang sama - efek kontras yang tidak diinginkan.Jawaban:
Beberapa hal:
Anda perlu menyetel bitrate video. Saya belum pernah menggunakan minrate dan maxrate jadi saya tidak tahu persis bagaimana cara kerjanya, tetapi dengan menyetel bitrate menggunakan
-b
sakelar, saya bisa mendapatkan video berkualitas tinggi. Anda perlu menghasilkan bitrate yang menawarkan pertukaran yang baik antara kompresi dan kualitas video. Anda mungkin harus bereksperimen dengan ini karena semuanya tergantung pada ukuran bingkai, kecepatan bingkai, dan jumlah gerakan dalam konten video Anda. Perlu diingat bahwa DVD cenderung sekitar 4-5 Mbit / dtk rata-rata untuk 720x480, jadi saya biasanya mulai dari sana dan memutuskan apakah saya perlu lebih atau kurang dan kemudian hanya bereksperimen. Misalnya, Anda dapat menambahkan-b 5000k
ke baris perintah untuk mendapatkan lebih banyak atau lebih sedikit bitrate video DVD.Anda perlu menentukan codec video. Jika tidak, ffmpeg akan default ke MPEG-1 yang cukup lama dan tidak memberikan jumlah kompresi yang mendekati MPEG-4 atau H.264. Jika versi ffmpeg Anda dibuat dengan dukungan libx264, Anda dapat menentukannya
-vcodec libx264
sebagai bagian dari baris perintah. Jika tidak,-vcodec mpeg4
juga akan melakukan pekerjaan yang lebih baik daripada MPEG-1, tetapi tidak sebaik x264.Ada banyak opsi lanjutan lainnya yang akan membantu Anda mendapatkan kualitas terbaik pada bitrate terendah. Lihat di sini untuk beberapa contoh.
sumber
ffmpeg -i … -c:a copy -c:v libx264 -crf 18 -preset veryslow …
. 18 adalah CRF dengan kehilangan kualitas yang sangat marjinal, tetapi bitrate mungkin rendah. Dan Anda dapat mencoba nilai CRF yang lebih besar jika Anda membutuhkan ukuran file yang lebih kecil. Dan seperti yang Anda lihat, ini sangat sederhana.Anda perlu menentukan opsi -vb untuk meningkatkan bitrate video, jika tidak, Anda mendapatkan default yang menghasilkan video lebih kecil tetapi dengan lebih banyak artefak.
Coba sesuatu seperti ini:
ffmpeg -r 25 -i %4d.png -vb 20M myvideo.mpg
sumber
Pastikan PNG sepenuhnya buram sebelum membuat video
misalnya dengan imagemagick, beri mereka latar belakang hitam:
Dari pengujian saya, tidak ada bitrate atau codec yang cukup untuk membuat video terlihat bagus jika Anda memberi makan ffmpeg PNG dengan transparansi
sumber
Kecuali Anda melakukan semacam pekerjaan pasca-pemrosesan, video tidak akan pernah lebih baik dari bingkai aslinya. Juga seperti flip-book, jika Anda memiliki "lompatan" besar di antara bingkai utama, itu akan terlihat lucu. Anda biasanya membutuhkan cukup banyak "remaja" di antara bingkai utama untuk memberikan animasi yang halus. HTH
sumber