พจนานุกรม

Frame Rate คืออะไร?

อัตราเฟรมคือจำนวนเฟรมที่วิดีโอแสดงต่อวินาที มีหน่วยเป็น fps รายงานข้อมูลเมทาดาทาสามารถแสดงค่าในรูปเศษส่วนได้ ตัวอย่างเช่น 25/1

frame-rate

อัตราเฟรมคือจำนวนภาพนิ่งที่เรียกว่าเฟรมซึ่งวิดีโอแสดงในแต่ละวินาที หน่วยคือเฟรมต่อวินาที เขียนย่อว่า fps มาตรฐานทางเทคนิคเรียกมันว่า ความถี่เฟรม เช่นกัน

ในไฟล์วิดีโอ อัตราเฟรมเป็นค่าข้อมูลเมทาดาทาที่อธิบายสตรีมวิดีโอ ที่ 25 fps แต่ละเฟรมจะแสดงบนหน้าจอเป็นเวลา 1⁄25 วินาที หรือ 40 มิลลิวินาที

ไฟล์ใดที่มีรายการนี้อยู่

รูปแบบวิดีโอเช่น MP4, MOV, MKV, WebM, AVI, WMV และ FLV สามารถมีอัตราเฟรมได้ แต่ละรูปแบบจัดเก็บค่านี้ในวิธีของตนเอง:

  • MP4 และ MOV: ตาราง time-to-sample แสดงช่วงของเฟรมที่มีความยาวเท่ากัน ExifTool คำนวณ VideoFrameRate เป็นค่าเฉลี่ยจากตารางนี้ ไฟล์ MP4 บางไฟล์ยังเก็บค่าอัตราเฉลี่ยและอัตราสูงสุดไว้ในแท็กอย่าง VideoAvgFrameRate และ VideoMaxFrameRate
  • MKV: ฟิลด์ DefaultDuration ให้เวลาต่อเฟรมในหน่วยนาโนวินาที ฟิลด์ FrameRate ใช้เพื่อแสดงข้อมูลเท่านั้น
  • WebM: รูปแบบนี้เป็นส่วนหนึ่งของ Matroska และสามารถใช้ DefaultDuration ได้เช่นกัน แนวทางของ WebM ระบุว่า FrameRate เลิกใช้แล้ว
  • AVI: ค่าอัตราในส่วนหัวของสตรีมเมื่อหารด้วยค่า scale จะได้อัตราเฟรม
  • WMV และ FLV: ข้อมูลเมทาดาทาสามารถเก็บแท็กอัตราเฟรมได้

สตรีมเสียงไม่มีอัตราเฟรมแบบนี้ ffprobe ของ FFmpeg จะแสดงค่า 0/0 สำหรับสตรีมเสียง

ลักษณะของค่าเป็นอย่างไร

รายงานสามารถแสดงอัตราเฟรมเป็นเลขทศนิยม เช่น 29.97 หรือเป็นเศษส่วน เช่น 25/1 เศษส่วน 25/1 หมายถึง 25 เฟรมใน 1 วินาที เศษส่วนยังคงเป็นค่าที่แน่นอนเมื่ออัตราไม่ใช่จำนวนเต็ม

ค่าทั่วไปมีดังนี้:

  • 24/1: 24 fps อัตราทั่วไปของฟิล์มภาพยนตร์
  • 24000/1001: ประมาณ 23.976 fps ซึ่ง FFmpeg เรียกว่า ntsc-film
  • 25/1: 25 fps ซึ่ง FFmpeg เรียกว่า pal
  • 30000/1001: ประมาณ 29.97 fps ซึ่ง FFmpeg เรียกว่า ntsc
  • 50 และ 60: อัตราที่พบบ่อยสำหรับการอัปโหลดวิดีโอ ตามข้อมูลของ YouTube
  • 120: เป็นค่าขีดบน ไม่ใช่ค่าทั่วไป เป็นอัตราสูงสุดในมาตรฐาน ITU สำหรับโทรทัศน์ความละเอียดสูงพิเศษ

อัตราเฟรมคงที่และแปรผัน

เมื่อใช้อัตราเฟรมคงที่ แต่ละเฟรมจะมีความยาวเท่ากัน เมื่อใช้อัตราเฟรมผันแปร ระยะเวลาระหว่างเฟรมจะเปลี่ยนไปตลอดวิดีโอ

ffprobe ของ FFmpeg แสดง 2 ฟิลด์: avg_frame_rate คืออัตราเฉลี่ย และ r_frame_rate คืออัตราฐาน อัตราฐานคืออัตราต่ำสุดที่สามารถใช้แทนค่าเวลา (timestamp) ทั้งหมดได้อย่างแม่นยำ และเอกสารของ FFmpeg เรียกมันว่าเป็นค่าเดา

ตัวอย่างเช่น ถ้าเฟรมมีความยาว 1⁄25 หรือ 1⁄50 วินาที r_frame_rate จะเป็น 50/1 ค่าเฉลี่ยจะต่ำกว่า ดังนั้นทั้ง 2 ฟิลด์จึงต่างกัน ค่าเวลา (timestamp) จะนับในหน่วยของ time base

แหล่งที่มาของค่า

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

วิดีโอแบบ Interlaced สามารถแสดงค่าที่ต่างออกไป สำหรับวิดีโอนี้ เฟรมเวิร์ก AVFoundation ของ Apple รายงานค่า field rate ไม่ใช่ frame rate

ทำไมมันจึงสำคัญ

อัตราเฟรมมีผลหลักต่อความลื่นไหลของการเคลื่อนไหว อัตราที่สูงขึ้นทำให้การเคลื่อนไหวลื่นมากขึ้น แต่ประโยชน์จะลดลงเมื่ออัตราเพิ่มขึ้น ด้านล่างประมาณ 12 เฟรมต่อวินาที คุณจะเห็นเป็นภาพนิ่งต่อเนื่องกันแทนการเคลื่อนไหว

ตั้งแต่ 24 fps ขึ้นไป การเคลื่อนไหวมักจะดูลื่นไหล และ 30 หรือ 60 fps เป็นเป้าหมายที่ดี อัตราที่สูงขึ้นยังทำให้ไฟล์ที่บีบอัดแล้วมีขนาดใหญ่ขึ้น เว้นแต่ตัวเข้ารหัสจะลดอัตราลง ดังนั้น 60 fps จึงอาจดูลื่นกว่า 30 fps แต่ไฟล์จะใหญ่ขึ้น

YouTube แนะนำให้คุณอัปโหลดวิดีโอที่ใช้อัตราเฟรมเดียวกับตอนบันทึก หากเป็นอัตราคงที่ ค่าอัตราเมื่อคูณกับระยะเวลาจะได้จำนวนเฟรม ดังนั้น 25 fps เป็นเวลา 4 วินาที จะได้ 100 เฟรม

คีย์เมตา