รายละเอียดสตรีมเอาท์พุทวิดีโอจาก ffmpeg หมายถึงอะไร


10

เมื่อคุณเรียกใช้ffmpeg -iไฟล์วิดีโอเป็นพารามิเตอร์อินพุต ffmpeg จะส่งกลับรายละเอียดบางอย่างของประเภทสตรีมเช่นตัวแปลงสัญญาณบิตเรตและความละเอียด ข้อมูลอื่นหมายถึงอะไร - "tbr", "tbn" และ "tbc" จากตัวอย่างด้านล่างของฉันคุณจะเห็นว่ามันมีความหลากหลายมาก

Stream #0.0(und): Video: h264, yuv420p, 1280x720, 25 tbr, 25 tbn, 50 tbc

Stream #0.0(eng): Video: h264, yuv420p, 640x480, 22050 tbr, 22050 tbn, 44100 tbc

Stream #0.1: Video: wmv3, yuv420p, 1280x720, 4000 kb/s, 29.97 tbr, 1k tbn, 1k tbc

คำถามรอง: ทำไมเรตไม่แสดงบิตเรตเสมอ?

คำตอบ:


6

สิ่งที่คุณเห็นคือส่วนกลับของฐานการประทับเวลาที่ใช้ใน FFmpeg และ en / ตัวถอดรหัส ฉันไม่สามารถอธิบายได้ดีขึ้นดังนั้นเพียงแค่อ้างรายการส่งจดหมาย FFmpeg :

tbnเป็นฐานเวลาใน AVStream ที่มาจากคอนเทนเนอร์ฉันคิดว่า มันถูกใช้สำหรับการประทับเวลา AVStream ทั้งหมด

tbcเป็นฐานเวลาใน AVCodecContext สำหรับตัวแปลงสัญญาณที่ใช้สำหรับสตรีมเฉพาะ มันถูกใช้สำหรับ AVCodecContext และการประทับเวลาที่เกี่ยวข้องทั้งหมด

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

ในท้ายที่สุดคุณต้องการรับtbrเนื่องจากค่าส่วนใหญ่อ้างถึงเป็น "framerate"

บิตเรตไม่ได้แสดงเสมอเนื่องจากสตรีมวิดีโออาจมีเนื้อหาบิตเรตแปรผันในกรณีนี้คุณไม่สามารถประมาณบิตเรตได้ สำหรับสตรีมบิตเรตคงที่มักจะแสดงบิตเรต มีบางกรณีที่ใช้บิตเรตแบบผันแปรและ FFmpeg แสดงค่าเฉลี่ย - อย่างน้อยก็ด้วยวิดีโอ h.264 ซึ่งบางครั้งก็ใช้งานได้

Video: h264, yuv420p, 640x480, 22050 tbr, 22050 tbn, 44100 tbc ดูเหมือนจะเป็นเสียงมากกว่าแน่นอน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.