أوضاع معدّل نقل بيانات VP9 بالتفصيل

مقدمة

على الرغم من أنّنا نقدّم تفاصيل عامة حول أوضاع معدل نقل البيانات في صفحات الترميز الأساسي، إلا أنّها تتناول وضع CQ (الجودة المحدودة) فقط.

يوضّح هذا المستند طرقًا عملية أخرى يمكنك من خلالها تخصيص معدّلات نقل البيانات في VP9 لتحسين الأداء في مجموعة متنوعة من السيناريوهات. تستخدِم الأمثلة أدناه FFmpeg.

الضغط

تهدف تكنولوجيات ضغط الفيديو، مثل VP9، إلى تقليل مقدار البيانات اللازمة لنقل صورة مفهومة وإحساس بالحركة إلى المستخدمين النهائيين.

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

تم توضيح عملية التكميم (أو "Q") بشكل جيد في مقالة ويكيبيديا الخاصة بها.

في VP9، يتم إجراء التكميم على معاملات التحويل. يؤدي ذلك إلى تقليل معدل نقل البيانات المطلوب للحفاظ على الجودة المرئية، وذلك من خلال إضافته إلى الترميز.

في النهاية، عندما يكون هناك المزيد من التكميم (رقم Q أعلى)، يتم فقدان التفاصيل وتنخفض الجودة، ولكن يلزم تخزين بيانات أقل للإطار. في معظم الحالات، يحقّق برنامج الترميز VP9 أهداف معدّل نقل البيانات من خلال تغيير Q بمرور الوقت، وذلك حسب مدى تعقيد كل إطار.

تحسين حالات الاستخدام

للسماح للمستخدم "بضبط" ضغط VP9 وفقًا لاحتياجاته المحدّدة، يمكن تعديل توازن الجودة ومعدّل نقل البيانات في وقت الضغط الأولي من خلال عدد من واجهات البرمجة.

يوفّر برنامج الترميز موازنة متغيرة بين السرعة والجودة ومعدّل نقل البيانات.

  • إذا كان المستخدم يركّز على الجودة، يجب أن يكون مستعدًا لفترات ترميز أطول أو توفير موارد معالجة أسرع وأكثر وفرة.

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

  • إذا كان المستخدِم يركّز بشكل أساسي على سرعة التسليم (على سبيل المثال، في بث مباشر على الويب أو مؤتمر فيديو ثنائي الاتجاه)، قد تكون عملية التكميم تابعة تمامًا للقيود المفروضة على معدل نقل وحدات البايت القابلة للاستخدام من البيانات عبر الشبكة (أي "معدل نقل البيانات").

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

أوضاع معدّل نقل بيانات VP9

لنبدأ بإلقاء نظرة على أوضاع معدل نقل البيانات الرئيسية التي يتيحها VP9:

الوضع
محدد الكمية الثابت (Q) تتيح لك تحديد قيمة ثابتة للمكمّم، وسيتفاوت معدّل نقل البيانات
الجودة المقيّدة (CQ) تتيح لك ضبط الحدّ الأقصى لمستوى الجودة. قد تختلف الجودة ضمن معلَمات معدّل نقل البيانات
معدل نقل بيانات متغيّر (VBR) توازن بين الجودة ومعدل نقل البيانات بمرور الوقت ضمن قيود على معدل نقل البيانات
معدل نقل البيانات الثابت (CBR) محاولات للحفاظ على معدّل نقل البيانات ثابتًا إلى حدّ ما مع اختلاف الجودة

Q

الرسم البياني لوضع Q

يُعدّ وضع "محدد الكمية الثابت" خيارًا جيدًا في الحالات التي تكون فيها المخاوف بشأن حجم الملف ومعدل نقل البيانات أقل أهمية من الجودة النهائية.

يمكن العثور على حالات استخدام إعدادات Q في دور السينما الرقمية أو مجموعات التعديل الرقمية أو تطبيقات اللافتات الرقمية، حيث يمكن تقديم المحتوى على وسيط تخزين مادي أو على مدار وقت غير محدود، أي قبل وقت طويل من استخدام المحتوى فعليًا، وحيث يجب أن تكون جودة الإخراج المرغوبة هي الأعلى من حيث الجودة المرئية.

تحسين معدل نقل البيانات في وضع Q لبرنامج الترميز VP9

يتطلّب وضع "المكمّم الثابت" الحد الأدنى من الإعداد. وكما يوحي الاسم، يركّز وضع Q على الحفاظ على مستوى "جودة" مستهدف للمكمّم، والسماح للمكمّم بتحديد تدفق البيانات التي يريد معالجتها. كل ما يحتاج المستخدم إلى تحديده هو الجودة المستهدَفة.

يمكنك الاطّلاع على مزيد من المعلومات حول تفاصيل الجودة المستهدَفة من منظور معالجة الصور (وليس معدل نقل البيانات) في مقالة الترميز الأساسي.

استخدِم مَعلمات سطر الأوامر التالية في FFmpeg لتحسين معدّل نقل البيانات في الوضع Q:

ffmpeg
-b:v 0 من خلال وضع علامة 0 على معدل البت للفيديو، نضبط وضع "Q" بشكل صريح
-g <arg> تضبط هذه السمة "فاصل الإطارات الرئيسية" في الإطارات (القيمة التلقائية هي 240).
-crf <arg> تضبط هذه السمة الحد الأقصى لمستوى الجودة. تتراوح القيم الصالحة بين 0 و63. الأرقام الأقل تشير إلى جودة أعلى
-quality good -speed 0 الإعداد التلقائي والمُقترَح لمعظم التطبيقات ‫best هي أداة بحث أكثر من كونها أداة كتابة، مع تحسّن طفيف مقارنةً بـ -quality good -speed 0
-lossless وضع "جودة بلا فقدان"

معدل نقل البيانات في وضع Q : أمثلة على FFmpeg

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

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -crf 0 -quality good \
  -speed 0 -lossless 1 -c:a libvorbis Q_g_1_crf_0_120s_tears_of_steel_1080p.webm.webm

للمقارنة بين تأثير -crf، تختلف الأمثلة التالية في -crf فقط. يُرجى العِلم أنّ -g غير محدّد، لذا سيتم تلقائيًا استخدام 240، وفي الواقع، يتم تلقائيًا استخدام 10 بدلاً من -crf، لذا كان سيتم الحصول على النتيجة نفسها بدون تضمين أيّ من المَعلمتَين في المثال الثاني من الأمثلة الثلاثة:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 0 -quality good \
  -speed 0 -c:a libvorbis Q_crf_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -c:a libvorbis Q_crf_10_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 63 -quality good \
  -speed 0 -c:a libvorbis Q_crf_63_120s_tears_of_steel_1080p.webm

يختلف ناتج هذه الأمثلة في الحجم على القرص. عند ضبط -crf على 0، كان حجم الملف 711.8 ميغابايت، وعند ضبط -crf على 10، كان حجم الملف 125.3 ميغابايت، وعند ضبط -crf على 63، كان حجم الملف 4.5 ميغابايت. ببساطة شديدة، يشير ذلك إلى أنّنا خفّضنا جودة الملف الناتج الذي تم ترميزه باستخدام VP9 من خلال رفع قيمة الوسيطة -crf. يتوفّر ملخّص كامل لجميع ملفات الإخراج في جدول النتائج أدناه.

لنقارن الآن تأثير تغيير إعداد -g.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -quality good \
  -speed 0  -c:a libvorbis Q_g_1_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 240 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_240_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 480 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_480_120s_tears_of_steel_1080p.webm

نلاحظ أنّ إعداد -g 1 ينتج ملفًا كبيرًا جدًا، يبلغ حجمه 25.9 ميغابايت. قارِن ذلك بتغيير -g 240 (ضبط القيمة نفسها بشكل صريح كما هي القيمة التلقائية) حيث ينتهي بنا الأمر بملف بحجم 4.5 ميغابايت، و-g 480 حيث ينتهي بنا الأمر بملف بحجم 4.4 ميغابايت.

CQ

CQ هو وضع يُنصح به للفيديوهات المستندة إلى ملفات.

الرسم البياني لوضع CQ

بالنسبة إلى معظم أنواع المحتوى، ننصح باستخدام وضع الجودة المحدودة (CQ) مع حدود قصوى لمعدل نقل البيانات. تحتوي معظم الفيديوهات على مزيج من المشاهد التي تتضمّن حركة سريعة (مثل مشاهد الحركة) والمشاهد التي تتضمّن تفاصيل أقل (مثل المحادثات). يتيح وضع CQ للمشفّر الحفاظ على مستوى جودة معقول خلال المشاهد الأطول والأسهل (بدون إهدار وحدات البت)، مع تخصيص المزيد من وحدات البت للتسلسلات الصعبة.

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

بالإضافة إلى ذلك، يجب أيضًا ضبط حدّ الكمّاز. في VP9، يمكن تغيير الحد الأدنى لمستوى التكميم من 0 إلى 63.

يتم استخدام مَعلمات سطر الأوامر التالية في FFmpeg لوضع CQ:
ffmpeg
-b:v <arg> يضبط معدّل نقل البيانات المستهدَف (مثل 500 ألف)
-minrate <arg>
-maxrate <arg>
تضبط هذه السمة الحدّ الأدنى والأقصى لمعدّل نقل البيانات.
-crf <arg> تضبط هذه السمة الحد الأقصى لمستوى الجودة. تتراوح القيم الصالحة بين 0 و63، وتشير الأرقام الأصغر إلى جودة أعلى.
وضع معدل نقل البيانات بجودة ثابتة: أمثلة على FFmpeg

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

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1000k -maxrate 4000k -crf 10  -c:a libvorbis \
  CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm

في هذه الحالة، كان حجم ملف الإخراج 20.2 ميغابايت على القرص، وهو حجم أصغر بشكل ملحوظ من عملية الترميز في الوضع Q في الأمثلة أعلاه.

في المقابل، قصرنا معدل نقل البيانات في المثال التالي على نطاق محدّد بشكل أكبر.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10  -c:a libvorbis \
  CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm

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

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 1000k \
  -minrate 750k -maxrate 1400k -crf 10  -c:a libvorbis \
  CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm

في هذا المثال الأخير، تم تقليل حجم الناتج بشكل كبير، حيث انخفض إلى 13.2 ميغابايت على القرص.

VBR

يُنصح باستخدام وضع معدّل نقل البيانات المتغيّر (VBR) لبث ملفات الفيديو عند الطلب التي تتضمّن محتوًى يتضمّن الكثير من الحركة (مثل الرياضة). وهي مناسبة تمامًا للتسليم المستند إلى HTTP.

الرسم البياني لوضع معدّل البت المتغيّر

في نموذج معدّل البت المتغيّر، قد يتم ترميز مشاهد الحركة بمعدّل بت أعلى من المشاهد "الأسهل"، والتي تتوافق مع إطار المفتاح.

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

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

يتم استخدام مَعلمات سطر الأوامر التالية في FFmpeg لوضع معدّل البت المتغيّر:
ffmpeg
-quality good جودة good مناسبة للفيديو عند الطلب
-speed <arg> بالنسبة إلى VIDEO ON DEMAND، تتراوح القيم الصالحة بين 0 و5، حيث يمثّل الرقم 0 أعلى جودة والرقم 5 أدنى جودة. (بالنسبة إلى البث المباشر، يتراوح معدّل نقل البيانات بين 5 و9 ميغابت في الثانية - يُرجى الاطّلاع على معدّل نقل البيانات الثابت أدناه)
وضع معدّل نقل البيانات المتغيّر (VBR): أمثلة على FFmpeg
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 0  -c:a libvorbis \
  VBR_good_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5  -c:a libvorbis \
  VBR_good_5_120s_tears_of_steel_1080p.webm

‫CBR

يُنصح باستخدام وضع معدّل نقل البيانات الثابت (CBR) للبث المباشر باستخدام VP9.

الرسم البياني لوضع CBR

تضبط معدّل نقل البيانات الثابت بشكل أساسي معدّل نقل البيانات الأقصى كـ "حدّ أقصى ثابت". وهذا يعني أنّ عملية الترميز لا يمكنها إنتاج بيانات بمعدّل لا يمكن للشبكة تحمّله.

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

يتم استخدام مَعلمات سطر الأوامر التالية في FFmpeg لوضع معدّل البت الثابت:
ffmpeg
-quality realtime جودة realtime مناسبة للبث المباشر
-speed <arg> بالنسبة إلى البث المباشر، تتراوح القيم الصالحة بين 5 و9، حيث يشير الرقم 5 إلى أعلى جودة والرقم 9 إلى أدنى جودة. (بالنسبة إلى خدمة "الفيديو عند الطلب"، تتراوح هذه القيم بين 0 و5. راجِع VBR أعلاه.)
-minrate <arg>
-maxrate <arg>
تضبط هذه السمة الحدّ الأدنى والأقصى لمعدّل نقل البيانات ** يجب ضبط هذه السمة على قيمة معدّل نقل البيانات نفسها في وضع معدّل نقل البيانات الثابت** .-b:v

بأبسط العبارات، نضبط معدّل نقل البيانات المستهدف والحد الأدنى والحد الأقصى على القيمة نفسها، ونخبر أداة تحديد الكمية بأنّ العمليات حساسة للوقت.

وضع معدّل نقل البيانات الثابت (CBR): أمثلة على FFmpeg

تستكشف الأمثلة أدناه إعداد معدّل نقل البيانات على قيمتَي 2 ميغابت في الثانية و500 كيلوبت في الثانية:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
  CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 8 -c:a libvorbis \
  CBR_2000_realtime__8_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
  CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
  CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm

النتائج

تم إجراء كل عمليات الترميز المذكورة أعلاه على نظام Ubuntu Linux بالمواصفات التالية:

  • المعالج: 4 معالجات Intel(R) Core(TM) i5-6500 بسرعة 3.20 غيغاهرتز
  • الذاكرة (RAM): 8060 ميغابايت (1492 ميغابايت مستخدَمة)
  • الرسومات: Intel HD Graphics 530 (Skylake GT2)
  • نظام التشغيل: Ubuntu 16.04 LTS

في جميع الحالات، كان الملف المصدر مقطعًا مدته دقيقة واحدة وعشرون ثانية (1:20) مأخوذًا من فيلم Tears Of Steel.

ملف دقائق الترميز حجم الملف على القرص
Q_g_1_crf_0_120s_tears_of_steel_1080p.webm 81 ‫1.06 غيغابايت
Q_crf_0_120s_tears_of_steel_1080p.webm 131 ‫711.8 ميغابايت
Q_crf_10_120s_tears_of_steel_1080p.webm 118 ‫125.3 ميغابايت
Q_crf_63_120s_tears_of_steel_1080p.webm 27 ‫4.5 ميغابايت
Q_g_1_120s_tears_of_steel_1080p.webm 51 ‫25.9 ميغابايت
Q_g_240_120s_tears_of_steel_1080p.webm 28 ‫4.5 ميغابايت
Q_g_480_120s_tears_of_steel_1080p.webm 10 ‫4.4 ميغابايت
CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm 11 ‫20.2 ميغابايت
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm 9 ‫24.1 ميغابايت
CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm 50 ‫13.2 ميغابايت
VBR_good_0_120s_tears_of_steel_1080p.webm 3 ‫23.4 ميغابايت
VBR_good_5_120s_tears_of_steel_1080p.webm 4 ‫23.9 ميغابايت
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 2 ‫24.8 ميغابايت
CBR_2000_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 ‫21 ميغابايت
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 ‫8.5 ميغابايت
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 ‫7.1 ميغابايت

وقد تبيّن أنّ ضبط قيم -speed أعلى من 5 يؤدي إلى تغيير سرعة معالجة VP9. على الرغم من أنّ هذا يمثّل زيادة كبيرة في التكميم (كما يظهر من خلال التأثير "المتموّج" بشكل كبير على معدلات نقل البيانات السريعة ذات الجودة المنخفضة جدًا)، يظلّ برنامج الترميز VP9 قادرًا على إنتاج فيديو بدقة 1080p بمعدل نقل بيانات منخفض جدًا، مع أنّه يكون مناسبًا بشكل أفضل للأجهزة الجوّالة الصغيرة مقارنةً بالشاشات الأكبر حجمًا.

اعتبارات لحالات الاستخدام التي تتضمّن إعادة التحجيم

من الواضح أنّ أوضاع معدّل نقل البيانات في VP9 ليست معزولة، ويمكن دمجها مع العديد من الوسيطات والمعلَمات الأخرى لاستهداف حالات استخدام محدّدة. أحد الاستخدامات الشائعة هو إعادة ضبط حجم أبعاد الفيديو الناتج لاستهداف جهاز معيّن.

من الأمثلة الكلاسيكية على ذلك تغيير بث عالي الدقة إلى إخراج بدقة عادية. مرة أخرى، سيكون لهذا تأثير كبير على وقت المعالجة ومعدل نقل البيانات الناتج. في سيناريو يكون فيه أمران من أوامر FFmpeg متطابقَين تمامًا، سيؤدي تعديل حجم الفيديو الناتج إلى تغيير حجم الملف الناتج، وكذلك معدل نقل البيانات في نموذج البث.

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

وضع Q
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -vf scale=640x480 -c:a libvorbis 640x480_Q_crf_10_120s_tears_of_steel_1080p.webm
وضع CQ
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10 -vf scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
وضع معدّل البت المتغيّر (VBR)
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
وضع CBR
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

جدول نتائج إعادة القياس

ملف دقائق الترميز حجم الملف على القرص
640x480_Q_crf_10_120s_tears_of_steel_1080p.webm 5 ‫3.4 ميغابايت
640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm 2 ‫22.4 ميغابايت
640x480_VBR_good_5_120s_tears_of_steel_1080p.webm 1 ‫22.6 ميغابايت
640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm 4 ‫23 ميغابايت

لتسهيل المقارنة، إليك أوامر FFmpeg نفسها من الأمثلة السابقة بدون تغيير الحجم:

ملف دقائق الترميز حجم الملف على القرص
Q_crf_10_120s_tears_of_steel_1080p.webm 56 ‫126 ميغابايت
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm 9 ‫24.1 ميغابايت
VBR_good_5_120s_tears_of_steel_1080p.webm 4 ‫23.9 ميغابايت
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 ‫24.8 ميغابايت

كما سترى، هناك انخفاض ملحوظ في أحجام الملفات الناتجة لكل منها، وعلى الرغم من أنّ هناك انخفاضًا في وقت الترميز في معظم الأمثلة، إلا أنّ وقت الترميز زاد في وضع Q. يتطلّب ضغط الفيديو "بشكل أكبر" مجهودًا أكبر، لذا حتى إذا كان من المتوقّع أن يكون حجم ملف الإخراج أصغر إذا لم تكن الجودة محدودة (كما هو الحال في وضع Q)، قد يؤدي ذلك في الواقع إلى زيادة الوقت المستغرَق لإنتاج ملف الإخراج. لا تفترض أنّ عملية الترميز ستتم بشكل أسرع دائمًا إذا كان حجم الملف أصغر.

إعادة ضبط حجم و تقليل معدّل نقل البيانات معًا

لإجراء مقارنة نهائية، تعيد الأمثلة التالية تشغيل أمثلة CQ وVBR وCBR الخاصة بإعادة التحجيم، ولكننا سنحصر معدل نقل البيانات المستهدف هذه المرة بمستوى 500 كيلوبت في الثانية، أي حوالي الربع (بما يتوافق مع تصغير حجم الصورة).

وضع CQ
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 350k -maxrate 550k -crf 10 -vf scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
وضع معدّل البت المتغيّر (VBR)
ffmpeg -i "120s_tears_of_steel_1080p.webm" -c:v libvpx-vp9 -b:v 500k \
  -minrate 350k -maxrate 500k -quality good -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
وضع CBR
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

جدول النتائج لإعادة التحجيم وخفض معدّل نقل البيانات المستهدَف

ملف دقائق الترميز حجم الملف على القرص
640x480_CQ_500_crf_0_120s_tears_of_steel_1080p.webm 1 ‫7 ميغابايت
640x480_VBR_500_good_5_120s_tears_of_steel_1080p.webm 1 ‫7 ميغابايت
640x480_CBR_500_realtime_5_120s_tears_of_steel_1080p.webm 1 ‫7.6 ميغابايت

كما تلاحظ، تم تقليل وقت الترميز بشكل أكبر.