كيفية إصلاح خطأ "المدة الماضية أكبر من اللازم" في FFmpeg؟

FFmpeg هو برنامج مجاني ومفتوح المصدر يستخدم لمعالجة الفيديو والصوت وتدفقات الوسائط المتعددة الأخرى. تم تصميم البرنامج للتعامل مع معالجة سطر الأوامر بناءً على معالجة ملفات الفيديو والصوت. ومع ذلك ، في الآونة الأخيرة ، ظهرت الكثير من التقارير عن خطأ " المدة الماضية أكبر من اللازم " أثناء ترميز الفيديو أو تصغيره.

FFmpeg الشعار

ما الذي يسبب خطأ "المدة الماضية أكبر من اللازم" في FFmpeg؟

بعد تلقي العديد من التقارير من عدة مستخدمين ، قررنا التحقيق في المشكلة ووضع مجموعة من الحلول لتصحيحها تمامًا. أيضًا ، نظرنا في الأسباب التي أدت إلى حدوث هذا الخطأ وأدرجتها كما يلي:

  • مفقود إدخال الإطارات : في معظم الحالات ، تحدث المشكلة بسبب عدم إدخال إدخال الإطارات للصور. ينتج عن هذا البرنامج افتراض أن معدل إطارات الإدخال 25 إطارًا في الثانية مما قد يسبب مشاكل إذا لم يكن الأمر كذلك.
  • إعدادات المزامنة غير مطبقة: مع معظم المستخدمين ، يؤدي تطبيق إعدادات مزامنة معينة إلى حل المشكلة. في بعض الأحيان ، قد لا تتم مزامنة الإطارات بشكل صحيح بسبب احتمال إسقاط إطارات معينة وقد يتم تشغيل هذا الخطأ.

الآن بعد أن أصبح لديك فهم أساسي لطبيعة المشكلة ، سننتقل إلى الحلول. تأكد من تنفيذ هذه بالترتيب المحدد الذي يتم به لتجنب التعارض.

الحل 1: إضافة إطارات الإدخال

إذا لم تتم إضافة معدل إطارات الفيديو ، فقد ينتج عنه إسقاط بعض الإطارات ويتم تشغيل الخطأ. لذلك ، في هذه الخطوة ، سنضيف إطارات الإدخال لذلك:

  1. راقب الدعوة التي استخدمتها لتحويل الفيديو ، وقد تكون مشابهة لما يلي
     ffmpeg -i٪ 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. الآن ببساطة إضافة framerate إلى الدعوة المستخدمة على النحو التالي
     ffmpeg -framerate 24-i٪ 05d.png -c: v libx264 -crf 5 out.mkv 
  3. تحقق لمعرفة ما إذا كانت المشكلة لا تزال قائمة.

الحل 2: استخدام مزامنة الإشارات

يمكن أن تساعد إضافة علامات Sync في مزامنة الإخراج ومقاطع الفيديو المدخلة وفقًا للإطارات الأولية للفيديو. لذلك ، إذا لم تتم إضافة أوامر المزامنة ، فمن المحتمل ألا تتم مزامنة الإطارات بشكل صحيح. في هذه الخطوة ، سنضيف أوامر المزامنة

  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 " إلى الدعوة ويجب إضافة هذا في نهاية الدعوة التي تستخدمها.

    ملاحظة: قد يختلف دعوتك الأولية عن تلك المستخدمة كمثال. التغييرات التي تمت إضافتها إلى الدعوة ، يجب ألا تختلف.

مقالات مثيرة للاهتمام