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

مقدمة

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

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

الضغط

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

السؤال:

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

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

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

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

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

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

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

mpmpeg
-b:v 0 بوضع علامة على معدل نقل بيانات الفيديو بأنه 0، نحدِّد الوضع "&&;&&العبري"بشكل صريح
-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 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، وسيُطبَّق هذا الإعداد تلقائيًا على -crf على 10، وبالتالي، ستكون لدينا النتيجة نفسها بدون تضمين أيٍّ من المعلّمة في المثال الثاني من بين الأمثلة الثلاثة:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 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 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 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 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:
mpmpeg
-b:v <arg> لضبط معدل نقل البيانات المستهدف (على سبيل المثال 500k)
-minrate <arg>
-maxrate <arg>
إعداد الحد الأدنى والحد الأقصى لمعدل نقل البيانات.
-crf <arg> تضبط هذه السياسة الحد الأقصى لمستوى الجودة. تتراوح القيم الصالحة بين 0 و63، وتكون الأرقام المنخفضة ذات جودة أعلى.
وضع معدل البُعد CQ: أمثلة على FFmpeg

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

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 vp9  -b:v 1000k \
  -minrate 750k -maxrate 1400k -crf 10  -c:a libvorbis \
  CQ_1400_750_crf_10_120s_tears_of_steel_1080pp.webm

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

رقم VBR

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

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

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

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

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

يتم استخدام معلمات سطر الأوامر FFmpeg التالية لوضع VBR:
mpmpeg
-quality good وفي حال توفّر هذه السمة، سيأخذ FFmpeg في الاعتبار الإعداد -speed التالي.
-speed <arg> بالنسبة إلى فيديو DEMAND، تكون القيم الصالحة 0-4، حيث يعني 0 أعلى جودة و4 هي أدنى قيمة. (بالنسبة إلى البث المباشر، يتراوح النطاق بين 5 و8، يُرجى الاطّلاع على CBR أدناه).
وضع معدل نقل البيانات VBR: أمثلة FFmpeg
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5  -c:a libvorbis \
  VBR_good_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 8  -c:a libvorbis \
  VBR_good_8_120s_tears_of_steel_1080pp.webm

CBR

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

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

يُحدِّد نظام التقييم البيئي (CBR) معدّل نقل البيانات العلوي باعتباره "سقفًا صارمًا"& وهذا يعني أنّ عملية الترميز لا يمكنها إنتاج بيانات بمعدل يتعذّر على الشبكة تنفيذه.

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

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

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

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

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

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 0 -c:a libvorbis \
  CBR_2000_realtime_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
  CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 0 -c:a libvorbis \
  CBR_500_realtime__0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
  CBR_500_realtime_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v vp9  -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
  CBR_500_realtime_8_120s_tears_of_steel_1080p.webm

النتائج

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

  • المعالج: وحدة معالجة مركزية من فئة Intel(R) Core(TM) 4x i5-6500 بسرعة 3.20 غيغاهرتز
  • الذاكرة (ذاكرة الوصول العشوائي): 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 ميغابايت
VBR_good_8_120s_tears_of_steel_1080p.webm 1 23.9 ميغابايت
CBR_2000_realtime_speed_0_120s_tears_of_steel_1080p.webm 98 21 ميغابايت
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_0_120s_tears_of_steel_1080p.webm 73 6.2 ميغابايت
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&P39، ويمكن دمجها مع العديد من الوسيطات والمعلمات الأخرى لاستهداف حالات الاستخدام على وجه التحديد. وقد تكون إحدى حالات الاستخدام النموذجية هي إعادة ضبط أبعاد فيديو الفيديو لاحتواء جهاز معين.

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

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

وضع Q
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 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 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

جدول نتائج تغيير الحجم

ملف ترميز دقائق حجم الملف على القرص
640×480_Q_crf_10_120s_tears_of_steel_1080p.webm 5 3.4 ميغابايت
640×480_CQ_crf_0_120s_tears_of_steel_1080p.webm 2 22.4 ميغابايت
640×480_VBR_good_5_120s_tears_of_steel_1080p.webm 1 22.6 ميغابايت
640×480_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)، فقد يزيد هذا من الوقت المستغرق لإنتاج ملف الإخراج. لا تفترض أنه يمكن دائمًا تسليم ملف أصغر بشكل أسرع من خلال عملية الترميز.

تغيير الحجم وخفض معدل نقل البيانات بالاقتران معًا

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

وضع CQ
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v 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 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 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

جدول نتائج تغيير معدل البت الهدف وخفضه

ملف ترميز دقائق حجم الملف على القرص
640×480_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 ميغابايت
640×480_CBR_500_realtime_5_120s_tears_of_steel_1080p.webm 1 7.6 ميغابايت

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