قاموس

ما هي إطارات B في الفيديو؟

إطار B هو إطار فيديو يمكنه استخدام إطار سابق وإطار لاحق. تعرّف على كيفية عمل إطارات B وما الذي يعنيه حقل Has B Frames في ملفك.

b-frames

إطار B هو إطار فيديو يمكنه استخدام إطار أقدم وإطار أحدث لبناء صورته. تشير B إلى ثنائي الاتجاه (bidirectional). تقدم إطارات B مستوى أعلى من الضغط مقارنة بأنواع الإطارات الأخرى، مما يساعد على إبقاء حجم الفيديو صغيرًا.

في بيانات وصف ملف الفيديو (metadata)، قد ترى حقلًا باسم Has B Frames، ويُكتب أيضًا has_b_frames. يشير الاسم إلى إجابة بنعم أو لا، لكن القيمة رقم. يوضح الرقم عدد الإطارات التي يجب أن يستطيع برنامج فك التشفير الاحتفاظ بها في الذاكرة لعرض الفيديو بالترتيب الصحيح.

كيف تختلف إطارات B عن إطارات I وإطارات P

يعمل ضغط الفيديو عمومًا عن طريق مقارنة الإطارات وتسجيل الفروق بينها. يعرّف فيديو MPEG-2 ثلاثة أنواع من الإطارات:

  • إطار I: يُشفّر من دون الرجوع إلى إطارات أخرى، لذلك يمكن بدء فك التشفير من هنا
  • إطار P: يمكنه استخدام إطار I السابق أو إطار P السابق
  • إطار B: يمكنه استخدام إطار I السابق وإطار I اللاحق أو إطار P السابق وإطار P اللاحق

يمكن أن يعتمد إطار B على إطار يأتي لاحقًا في الزمن، لذلك يجب تخزين هذا الإطار اللاحق أولًا. لذلك يختلف ترتيب التخزين عن الترتيب الذي تراه على الشاشة. يبدو تسلسل MPEG-2 نموذجي على هذا النحو:

  • ترتيب العرض: B1 B2 I3 B4 B5 P6 B7 B8 P9 B10 B11 P12
  • ترتيب التخزين: I3 B1 B2 P6 B4 B5 P9 B7 B8 P12 B10 B11

كيف تبدو القيم

قيمة Has B Frames عدد صحيح. يصف FFmpeg هذه القيمة بأنها حجم ذاكرة تخزين إعادة ترتيب الإطارات في برنامج فك التشفير. لفيديو MPEG-2، يعرّف FFmpeg قيمتين:

  • 0: فيديو بزمن تأخير منخفض يحتوي فقط على إطارات I وP
  • 1: فيديو يحتوي على إطارات I وP وB

يمكن لمشفّرات H.264 وHEVC أيضًا الاحتفاظ ببعض إطارات B كإطارات مرجعية لإطارات أخرى. توضح ملفات الاختبار الخاصة بـ FFmpeg لـ H.264 كيف يغير ذلك القيمة. توضح أسماء الملفات إعدادات المشفّر:

  • بحد أقصى 3 إطارات B متتالية، ولا يُحتفَظ بأي منها كمرجع: 1
  • بحد أقصى 3 إطارات B متتالية، مع الاحتفاظ ببعضها كمرجع: 2
  • بحد أقصى 4 إطارات B متتالية، مع الاحتفاظ ببعضها كمرجع: 2

إذًا فالقيمة ليست عدد إطارات B. يوضح برنامج ffprobe نوع كل إطار باستخدام قيمة pict_type: I أو P أو B. يقدّم الحقل NB Frames عدد الإطارات، لا أنواعها.

من أين تأتي القيمة

يأتي اسم الحقل من FFmpeg، حيث يعرض برنامج ffprobe القيمة has_b_frames لتدفقات الفيديو. يمكن لتدفق H.264 أن يذكر الرقم في ترويسة خاصة به. إذا لم تذكر الترويسة الرقم، يستنتجه FFmpeg من الإطارات وأوقاتها.

تحدد إعدادات المشفّر ما إذا كان الفيديو يستخدم إطارات B. في FFmpeg وفي مشفّر Microsoft H.264، يؤدي الإعداد 0 إلى إيقاف إطارات B.

ما هي الملفات التي تحمله

يوجد الحقل لتدفقات الفيديو فقط. يمكنك رؤية الحقل للفيديو في ملفات MP4 وMOV وMKV وWebM وAVI. يخزّن ملف MOV يحتوي على إطارات معاد ترتيبها أيضًا جدولًا يوضح الزمن بين فك التشفير والعرض لكل إطار.

يقرر برنامج الترميز (codec) ما إذا كانت إطارات B ممكنة أم لا. يمكن لفيديو MPEG-2 وملف تعريف H.264 Main استخدامها، لكن ملف تعريف H.264 Baseline لا يمكنه ذلك. لا يحتوي برنامج الترميز VP8، المستخدم في ملفات WebM، على إطارات B لأن إطاراته لا تُتنبأ أبدًا من إطارات لاحقة.

لماذا هو مهم

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

يحتوي الفيديو المعاد ترتيبه أيضًا على زمنين مختلفين لكل إطار: وقت فك التشفير ووقت العرض. يعطي FFmpeg كلاهما على شكل طوابع زمنية (timestamps) ضمن نظام الزمن الأساسي للتدفق.

مفاتيح الميتا