วิธีการแก้ไขข้อผิดพลาด 'ช่วงเวลาที่ผ่านมามีขนาดใหญ่เกินไป' ใน FFmpeg
FFmpeg เป็นโปรแกรมโอเพนซอร์ซที่ใช้งานได้ฟรีที่ใช้สำหรับการจัดการวิดีโอ, เสียง, และสตรีมมัลติมีเดียอื่น ๆ โปรแกรมได้รับการออกแบบมาเพื่อจัดการกับบรรทัดคำสั่งในการจัดการการประมวลผลของไฟล์วิดีโอและเสียง อย่างไรก็ตามเมื่อเร็ว ๆ นี้มีรายงานจำนวนมากเกิดข้อผิดพลาด“ ช่วงเวลาที่ผ่านมามีขนาดใหญ่เกินไป ” ในขณะที่เข้ารหัสหรือลดขนาดวิดีโอ
ทำให้เกิดข้อผิดพลาด "ช่วงเวลาที่ผ่านมาใหญ่เกินไป" ใน FFmpeg อะไร
หลังจากได้รับรายงานจำนวนมากจากผู้ใช้หลายคนเราตัดสินใจที่จะตรวจสอบปัญหาและคิดค้นชุดโซลูชันเพื่อแก้ไขปัญหาโดยสมบูรณ์ นอกจากนี้เรายังค้นหาสาเหตุเนื่องจากข้อผิดพลาดนี้ถูกเรียกใช้และแสดงรายการดังต่อไปนี้:
- การป้อนเฟรมที่ขาดหายไป: ในกรณีส่วนใหญ่ปัญหานี้เกิดจากการใส่เฟรมเฟรมที่ไม่ได้ใส่ลงในภาพ ผลลัพธ์นี้ในโปรแกรมโดยสมมติว่าอินพุต framerate คือ 25 fps ซึ่งอาจทำให้เกิดปัญหาหากไม่เป็นเช่นนั้น
- ไม่ใช้การตั้งค่าการซิงค์: สำหรับผู้ใช้ส่วนใหญ่การใช้การตั้งค่าการซิงค์บางอย่างจะช่วยแก้ไขปัญหาได้ บางครั้งเฟรมอาจไม่ได้รับการซิงค์อย่างถูกต้องเนื่องจากเฟรมบางเฟรมอาจถูกทิ้งและข้อผิดพลาดนี้อาจถูกเรียกใช้
ตอนนี้คุณมีความเข้าใจพื้นฐานเกี่ยวกับลักษณะของปัญหาแล้วเราจะดำเนินการแก้ไขปัญหาต่อไป ตรวจสอบให้แน่ใจว่าได้ใช้สิ่งเหล่านี้ตามลำดับเฉพาะที่นำเสนอเพื่อหลีกเลี่ยงความขัดแย้ง
โซลูชันที่ 1: การเพิ่มเฟรมอินพุต
หากยังไม่มีการเพิ่มเฟรมอินพุทของวิดีโออาจทำให้เฟรมบางเฟรมหลุดและเกิดข้อผิดพลาดขึ้น ดังนั้นในขั้นตอนนี้เราจะเพิ่มเฟรมอินพุตสำหรับ:
- สังเกตการประชุมที่คุณใช้ในการแปลงวิดีโอมันอาจจะ คล้าย กับต่อไปนี้
ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv
- ตอนนี้เพียง เพิ่ม เฟรม ไปยังการประชุมที่ใช้ดังนี้
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
- อย่างไรก็ตามแทนที่จะใช้สิ่งนี้ให้ ใช้ การประชุมต่อไปนี้
ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1
- โปรดทราบว่าเราเพิ่งเพิ่ม“ -async 1 -vsync1 ” ในการประชุมและต้องเพิ่มเมื่อสิ้นสุดการประชุมที่คุณกำลังใช้
หมายเหตุ: การประชุมเริ่มต้นของคุณอาจแตกต่างจากที่ใช้เป็นตัวอย่าง อย่างไรก็ตามการเปลี่ยนแปลงที่เพิ่มในการประชุมจะไม่แตกต่างกัน