อัตราเฟรมคือจำนวนภาพนิ่งที่เรียกว่าเฟรมซึ่งวิดีโอแสดงในแต่ละวินาที หน่วยคือเฟรมต่อวินาที เขียนย่อว่า 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-film25/1: 25 fps ซึ่ง FFmpeg เรียกว่าpal30000/1001: ประมาณ 29.97 fps ซึ่ง FFmpeg เรียกว่าntsc50และ60: อัตราที่พบบ่อยสำหรับการอัปโหลดวิดีโอ ตามข้อมูลของ YouTube120: เป็นค่าขีดบน ไม่ใช่ค่าทั่วไป เป็นอัตราสูงสุดในมาตรฐาน 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 เฟรม