นี่ควรเป็นความคิดเห็นที่โพสต์โดย @thomasrutter แต่ฉันยังไม่สามารถแสดงความคิดเห็นได้ (ขาดชื่อเสียง)
สัญลักษณ์แสดงหัวข้อย่อยของคุณเกี่ยวกับ MJPEG กับ AVC นั้นไม่ถูกต้องทั้งหมด เป็นความจริงที่MPEG-4 ตอนที่ 10 (AVC / H.264) มักจะไม่บันทึกทุกเฟรมเป็น I-frame (คีย์ / ฟูลเฟรม) ไม่มีอะไรในสเปคที่ห้ามสิ่งนี้แม้ว่ากล้องบางตัวจะบันทึกเฉพาะ I-frames
สิ่งที่คุณคิดผิดคือประโยชน์ของ MJPEG ที่สูงกว่า H.264 และข้อโต้แย้งของคุณเกี่ยวกับสาเหตุ ฉันจะเริ่มต้นด้วยคำอธิบายสั้น ๆ เกี่ยวกับวิธีการสร้างเฟรมใหม่จาก H.264 (หรือรูปแบบตัวแปลงสัญญาณวิดีโออื่น ๆ ) วิดีโอจะได้รับการเข้ารหัสในสามประเภทที่แตกต่างกันของเฟรม, เฟรมภายในรหัส (I-frames), เฟรมทำนายรหัส (P-frames) และเฟรมเข้ารหัสทำนายทิศทาง (B-frames) แบบสองทิศทาง I-frame เป็นเวอร์ชันบีบอัดของเฟรม "raw" แบบเต็ม สามารถสร้างใหม่ได้เช่นเดียวกับ JPEG (หรือเฟรมเดี่ยวในสตรีม MJPEG) เฟรม P บนการอ้างอิงมืออื่น ๆ ก่อนหน้า I- และ P- เฟรมและจะต้องมีการสร้างขึ้นใหม่เหล่านี้ เฟรม B ยังสามารถอ้างอิงต่อไปนี้ I- และ P-frames มันเป็นข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ใน Wikipedia
ความแตกต่างระหว่าง H.264 และ MJPEG คือการบีบอัดทำงานอย่างไรและไม่ดีเท่าไหร่ ทุกเฟรมในวิดีโอดิจิทัลสามารถสร้างขึ้นใหม่ได้อย่างสมบูรณ์โดยใช้ข้อมูลที่อยู่ในไฟล์วิดีโอ / -stream H.264 จะให้ผลลัพธ์ที่ดีกว่า MJPEG แม้ว่าคุณจะส่งออกหนึ่งเฟรมด้วยบิตเรตเดียวกัน สิ่งนี้ใช้ได้สำหรับบิตเรตส่วนใหญ่ (ไม่แน่ใจว่าบิตเรตที่ต่ำมาก) มีข้อมูลมากขึ้นและมีการทดสอบหลายในบรรทัดและสถานที่ที่ดีที่จะเริ่มต้นcompression.ru
ข้อเสียเดียวกับ H.264 คือความซับซ้อนในการคำนวณในการสร้างเฟรมเดียว H.264 ต้องการพลังการประมวลผลมากกว่า MJPEG มาก นี่ไม่ใช่ปัญหาบนคอมพิวเตอร์ที่ทันสมัยแม้ว่า