Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาดของ Windows

วิธีแก้ไขข้อผิดพลาด 'ระยะเวลาที่ผ่านมามากเกินไป' ใน FFmpeg

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

วิธีแก้ไขข้อผิดพลาด  ระยะเวลาที่ผ่านมามากเกินไป  ใน FFmpeg

อะไรทำให้เกิดข้อผิดพลาด "ระยะเวลาที่ผ่านมามากเกินไป" ใน FFmpeg

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

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

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

แนวทางที่ 1:การเพิ่มเฟรมอินพุต

หากไม่ได้เพิ่มอัตราเฟรมอินพุตของวิดีโอ อาจส่งผลให้บางเฟรมหลุดและเกิดข้อผิดพลาดขึ้น ดังนั้น ในขั้นตอนนี้ เราจะเพิ่มเฟรมอินพุตสำหรับสิ่งนั้น:

  1. สังเกตการประชุมที่คุณใช้ในการแปลงวิดีโอ มันอาจจะคล้ายกัน ต่อไปนี้
    ffmpeg -i %05d.png -r 24 -c:v libx264 -crf 5 out.mkv
  2. ตอนนี้เพียง เพิ่ม อัตราเฟรม ไปยังการประชุมที่ใช้ดังนี้
    ffmpeg -framerate 24 -i %05d.png -c:v libx264 -crf 5 out.mkv
  3. ตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่

โซลูชันที่ 2:การใช้แฟล็กการซิงค์

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

  1. ในขั้นตอนนี้ คุณต้องกำลังใช้งาน การประชุมต่อไปนี้
    ffmpeg -framerate 24 -i %05d.png -c:v libx264 -crf 5 out.mkv
  2. อย่างไรก็ตาม แทนที่จะ ใช้ การประชุมต่อไปนี้
    ffmpeg -framerate 24 -i %05d.png -c:v libx264 -crf 5 out.mkv -async 1 -vsync 1
  3. โปรดทราบว่าเราเพิ่งเพิ่ม “-async 1 -vsync1 ” ในการเรียกประชุมและต้องเพิ่มข้อมูลนี้เมื่อสิ้นสุดการประชุมที่คุณใช้
    หมายเหตุ:  การประชุมครั้งแรกของคุณอาจแตกต่างจากที่ใช้เป็นตัวอย่าง อย่างไรก็ตาม การเปลี่ยนแปลงที่เพิ่มเข้ามาในการประชุมไม่ควรแตกต่างกัน