الترميز الأساسي

أساسيات ضغط الفيديو

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

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

ترميز بسيط

يعمل الأمر FFmpeg التالي على تحويل ملف إدخال إلى فيديو VP9 من خلال ملف Opus الصوتي. وهذا هو أسهل ترميز ممكن يستخدم الإعدادات التلقائية.

ffmpeg -i tears_of_steel_1080p.webm -c:v libvpx-vp9 -c:a libopus output.webm

يستخدم تشفير FFmpeg هذا معلمات سطر الأوامر التالية:

FFmpeg
-i <filename> تحديد اسم ملف الإدخال
-c:v libvpx-vp9 توجيه FFmpeg لإنشاء فيديو V9
-c:a libopus توجيه FFmpeg إلى إنشاء صوت Opus
output.webm تحدّد هذه السياسة اسم ملف الناتج

يستنتج FFmpeg نوع الملف الذي سيتم إنشاؤه من اسم ملف الناتج الذي تستخدمه. في هذا المثال، ستنتج FFmpeg ملف WebM لأننا طلبنا output.webm.

الدقة

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

FFmpeg
-vf scale=<width>x<height> عرض الإطار وارتفاعه

على سبيل المثال، سيؤدي الأمر التالي FFmpeg إلى إخراج فيديو WebM بحجم 640 × 480 بكسل.

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -c:v libvpx-vp9 -c:a libopus output.webm

أما درجات الدقة الصغيرة، فتكون أقل جودة، إلا أن درجات الدقة الأكبر تتطلب مزيدًا من معدل نقل البيانات ومزيدًا من طاقة المعالجة لفك الترميز، وقد لا تكون متوافقة مع الأجهزة القديمة. بالنسبة إلى VP9، تُعدّ 640x480 درجة دقة آمنة لمجموعة واسعة من الأجهزة الجوّالة وأجهزة الويب.

معدل نقل البيانات (معدل نقل البيانات)

يتوافق VP9 مع العديد من أوضاع معدل نقل البيانات المختلفة:

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

يوصى باستخدام وضع CQ للفيديو القائم على الملفات (بدلاً من البث المباشر). يتم استخدام مَعلمات سطر FFmpeg التالية في وضع CQ:

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

على سبيل المثال، سيؤدي الأمر FFmpeg التالي إلى إنشاء ملف فيديو متوسط الجودة 640x480 باستخدام وضع CQ، بمعدل نقل بيانات يبلغ 750 كيلوبت في الثانية والحد الأقصى للجودة يقتصر على 33.

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -b:v 750k -crf 33 -c:v libvpx-vp9 -c:a libopus output.webm

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

إعدادات الجودة والسرعة

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

يوفّر VP9 إعدادات متعدّدة لتحقيق التوازن بين الجودة والسرعة:

  • يوجّه إعداد الجودة برنامج الترميز إلى الأسلوب الذي يتّبعه لضغط الفيديو. وسائل النقل المتاحة هي الأفضل والجيدة وفي الوقت الفعلي.

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

يتم التحكم في هذين النوعين من الإعدادات بواسطة العديد من معلمات سطر الأوامر:

FFmpeg
-threads تشير إلى عدد سلاسل المحادثات المطلوب استخدامها أثناء الترميز.
-quality قد يتم ضبطه على good أو best أو realtime
-speed وتتسم هذه المعلَمة بمعانٍ مختلفة اعتمادًا على ما إذا تم ضبط الجودة على good أو realtime. تنطبق إعدادات السرعة على 0-4 عند بدء الفيديو المسجّل في good وbest، مع اعتبار 0 أعلى جودة و4 هي الأقلّ. Realtime من القيم الصالحة هي 5-8، ويشير انخفاض الأرقام إلى جودة أعلى.
-tile-columns يعمل تقسيم المربّع على تقسيم الفيديو إلى مناطق مستطيلة، مما يسمح بالسلاسل المتعددة للترميز وفك التشفير. عدد المربّعات هو دائمًا قوة اثنين. 0=1 البطاقة، 1=2، 2=4، 3=8، 4=16، 5=32.

سيؤدي أمر FFmpeg التالي إلى إنشاء ملف مقاس 640×480 مع ضبط الجودة على "'good'" مع تعيين السرعة على 0 (جودة عالية):

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -b:v 750k -quality good -speed 0 -crf 33 -c:v libvpx-vp9 -c:a libopus \
  output.webm

قد تختلف خيارات الجودة والسرعة باختلاف درجة الدقة وقوة المعالجة المتاحة. يمكنك العثور على مجموعة كاملة من الاقتراحات في القسم التالي.