ffmpeg -i myvid.mp4 -r 25 -t 100 image-%d.jpeg
Apakah perintah yang saya gunakan untuk mengekstrak bingkai dan itu berfungsi seperti yang saya harapkan. Namun saya juga ingin melihat cap waktu bingkai. Apa pun ketepatannya. 100 milidetik cukup baik untukku. Bisakah ffmpeg melakukan ini?
Memberikan detail tambahan,
Ketika saya menjalankan perintah di atas saya mendapatkan sekitar 100 JPEG, saya kira ada korespondensi 1 banding 1 (atau banyak ke 1) antara JPEG dan frame video ini. Saya ingin tahu cap waktu bingkai yang dihasilkan sebagai gambar JPEG 'i'.
Selain itu saya mencoba ffprobe tapi saya menemukan laporannya bahkan durasi video tidak akurat :(
capture
waktu.ffmpeg
output konsol lengkap dari perintah Anda.Jawaban:
Apa yang dapat Anda lakukan adalah "mensimulasikan" proses penulisan gambar dengan memfilter dengan
fps
filter, lalu menggunakanffprobe
untuk menunjukkan cap waktu dari frame yang dihasilkan. Ini berarti bahwa pada 25 fps, bingkai ke-50 (seperti gambar ke-50 Anda) akan memiliki PTS 2,00 detik.Anda melakukannya seperti ini:
Akan menghasilkan:
Ini adalah cap waktu untuk setiap gambar keluaran. Anda sebenarnya dapat menggabungkan daftar bingkai dan cap waktu:
Akan membuat file dengan:
Perhatikan bahwa ini dapat menghasilkan garis asing jika ada terlalu banyak bingkai atau terlalu banyak garis keluaran info. Sepertinya sedikit tidak akurat di sana.
sumber
-vsync drop
, tetapi itu terjadi setelah pemfilteran, IIRC.