จะรู้ได้อย่างไรว่าฉันควรใช้ framerate ในการจับภาพเว็บแคมด้วย ffmpeg?


2

ฉันจับภาพวิดีโอจากเว็บแคมของฉันด้วยคำสั่งต่อไปนี้:

ffmpeg -r 30 -f v4l2 -video_size 160x120 -i /dev/video0 output.avi

ตัวเลือก -r ระบุอัตราเฟรมที่ฉันต้องการ อย่างไรก็ตามไม่ใช่ว่าฉันต้องการ 30 FPS เป็นเพียงแค่นั้นไม่เช่นนั้นจะทำงานไม่ถูกต้อง

หากไม่มีการรวมเฟรมการจับภาพจะค่อนข้างมาก (ฉันเดาว่ามันจะพยายามจับภาพมากเกินไป แต่ไม่สามารถติดตามได้)

ด้วยการตั้งค่าเฟรมภาพไว้ที่ 15 วิดีโอเอาต์พุตจะยาวขึ้นเป็นสองเท่าของระยะเวลาการจับภาพ (ชนิดของการเคลื่อนไหวช้า)

ด้วยอัตราเฟรมที่ 30 ดูเหมือนว่าจะเป็นจริง

ฉันจะแน่ใจได้อย่างไรว่าฉันควรใช้ 30 fps หากฉันต้องการบันทึก 15 fps ฉันควรทำอย่างไรเพื่อให้ได้การเล่นที่ถูกต้อง

ข้อมูลเกี่ยวกับเว็บแคมของฉัน:

co@macbook2008:~$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
  Index       : 0
  Type        : Video Capture
  Pixel Format: 'YUYV'
  Name        : YUV 4:2:2 (YUYV)
    Size: Discrete 160x120
      Interval: Discrete 0.033s (30.000 fps)
      Interval: Discrete 0.036s (27.500 fps)
      Interval: Discrete 0.040s (25.000 fps)
      Interval: Discrete 0.044s (22.500 fps)
      Interval: Discrete 0.050s (20.000 fps)
      Interval: Discrete 0.057s (17.500 fps)
      Interval: Discrete 0.067s (15.000 fps)
      Interval: Discrete 0.080s (12.500 fps)
      Interval: Discrete 0.100s (10.000 fps)
      Interval: Discrete 0.133s (7.500 fps)
      Interval: Discrete 0.200s (5.000 fps)
    Size: Discrete 176x144
      Interval: Discrete 0.033s (30.000 fps)
      ... and so on for other resolutions

ขอบคุณ


ถ้าฉันจะเสี่ยงอันตรายเดา วิดีโอต้นฉบับยังมี 30 fps ผลลัพธ์ของคำสั่งที่คุณออกมายืนยันสิ่งนี้
Ramhound

มันยืนยันได้อย่างไรว่ามีเฟรมต่อวินาทีจำนวนมาก คนแรกที่ใช้?
chocopoche

ฉันไม่เข้าใจ คุณออกคำสั่งv4l2-ctl --list-formats-extและเอาต์พุตแสดงอัตราเฟรมที่รองรับและความละเอียดของอุปกรณ์ต้นทางซึ่งแท้จริงแล้วระบุว่า 30 fps สูงสุดที่จะรองรับ
Ramhound

คุณสามารถตั้งค่า fps เป็น 27.5 หากคุณต้องการโดยเปลี่ยนค่าและออกคำสั่งต่อไปนี้:ffmpeg -r 27.5 -f v4l2 -video_size 160x120 -i /dev/video0 output.avi
Ramhound

เมื่อฉันทำffmpeg -r 15 -f v4l2 -video_size 160x120 -i /dev/video0 output.avi15 วินาทีฉันจะได้รับ 30 วินาที ดังนั้นการv4l2-ctl --list-formats-extบอกว่าฉันสามารถจับภาพที่ 15 fps แต่ฉันจะไม่สามารถเล่นด้วยความเร็วที่เหมาะสม ฉันเดาว่ามันใช้กับ 27.5 fps แต่ฉันไม่สามารถทดสอบได้อย่างแน่นอน
chocopoche
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.