Saya tidak memiliki pengetahuan apa pun tentang pengkodean video, saya memiliki aplikasi yang ditulis dalam OpenGL dan saya menyimpan frame yang dihasilkannya menjadi png
gambar. Frame dari aplikasi saya ada di 7 FPS dan saya mencoba membuat video dari itu.
Untuk itu saya menggunakan ffmpeg seperti ini
ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
yang diambil dari situs ini , namun saya bertanya-tanya apakah mungkin untuk memiliki video yang menunjukkan animasi pada 30 FPS?
-framerate
parameter untuk mendapatkan hasil yang diinginkan.Jawaban:
Saya menggunakan kode di bawah ini untuk melakukan hal yang sama.
Meruntuhkan perintah:
Ini membaca input pada 30 fps (
-framerate 30
opsi) dan mengkodekannya menggunakanlibx264
codec dengan faktor laju konstan 23 (-crf 23
opsi).sumber
Ada dua frame rate yang perlu dipertimbangkan: input dan output.
Secara default rate frame input adalah 25, dan output akan menggunakan frame rate yang sama dengan input kecuali Anda memberi tahu sebaliknya.
Frame rate yang sama untuk input dan output
Jika Anda ingin input dan output memiliki frame rate yang sama, maka cukup berikan frame rate input. Contoh ini akan menetapkan kecepatan bingkai 30000/1001 (video NTSC):
Atau, dalam contoh ini, Anda bisa menggunakan
ntsc
alih-alih30000/1001
, tetapi jangan gunakan29.97
karena itu tidak akurat atau benar. Lihat alias laju bingkai lainnya .Karena frame rate input default adalah 25, dan jika Anda hanya menetapkan frame rate output, maka frame akan turun atau digandakan untuk mengkompensasi. Itulah sebabnya frame rate input diatur dalam situasi ini.
Frame rate berbeda untuk input dan output
Kadang-kadang Anda mungkin ingin frame rate input dan frame rate output berbeda. Misalnya, Anda mungkin ingin memasukkan frame pada kecepatan tertentu, dan kemudian menduplikasi atau menjatuhkan frame sehingga output memiliki frame rate yang berbeda. Anda mungkin ingin melakukan ini karena masalah kompatibilitas dengan wadah format output, pemutar, dan / atau perangkat Anda:
Dalam contoh ini frame akan diduplikasi untuk beralih dari 10 menjadi 25. Output konsol akan memberi tahu Anda jika frame sedang dijatuhkan atau diduplikasi.
The file gambar demuxer penggunaan
-framerate
, sementara frame rate output diatur menggunakan-r
.Anda mungkin harus menambahkan
-pix_fmt yuv420p
opsi dalam beberapa keadaan jika Anda menghasilkan video H.264 (ffmpeg
output konsol akan memperingatkan Anda jika memang perlu). Ini akan menggunakan skema subsampling kroma yang kompatibel dengan semua pemain.sumber
Option framerate not found.
:-(-framerate
tidak ada lagi. Saya akan menghapus komentar saya, karena tidak ada hubungannya dengan mengubah serangkaian gambar ke video dengan framerate tertentu.-framerate
memang ada. Ini digunakan oleh demuxers gambar dan video mentah dan beberapa perangkat input seperti x11grab dan v4l2.-framerate
didokumentasikan? Saya sudah membacaman ffmpeg
halamannya, tetapi saya tidak dapat menemukannya. Pointer apa saja, mungkin?FFMPEG-DEVICES(1)
.akan cukup dalam versi terbaru dari ffmpeg.
sumber