الترميز الأساسي
أساسيات ضغط الفيديو
يتناول هذا القسم الخيارات الأساسية لترميز 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 إنشاء فيديو VP9 |
-c:a libopus |
يطلب من FFmpeg إنشاء ملف صوتي بتنسيق Opus |
output.webm |
تحدِّد هذه السمة اسم ملف الإخراج. |
يستنتج FFmpeg نوع الملف الذي سيتم إنشاؤه من اسم ملف الإخراج الذي تستخدمه. في هذا المثال، ستنتج أداة FFmpeg ملف WebM لأنّنا طلبنا output.webm
.
الدقة
يتضمّن كل فيديو حجم إطار (يشير إلى عرض الصورة وارتفاعها بالبكسل). يمكن استخدام مَعلمة سطر الأوامر التالية في FFmpeg للتحكّم في حجم إطار الفيديو الناتج لترميز VP9:
FFmpeg | |
---|---|
-vf scale=<width>x<height> |
عرض الإطار وارتفاعه |
على سبيل المثال، سينتج عن أمر FFmpeg التالي فيديو WebM بتنسيق VP9 بدقة 640x480.
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> |
يضبط معدّل نقل البيانات المستهدَف (مثل 500 ألف) |
-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 عدة إعدادات لتحقيق التوازن بين الجودة والسرعة:
يحدّد إعداد الجودة الطريقة التي يتّبعها برنامج الترميز لضغط الفيديو. الأوضاع المتاحة هي "الأفضل" و"جيد" و"في الوقت الفعلي".
تسمح إعدادات سلاسل التعليمات لبرنامج الترميز باستخدام سلاسل تعليمات متعددة لوحدة المعالجة المركزية لترميز الفيديو. قد تؤدي هذه الإعدادات إلى خفض الجودة قليلاً، ولكنّها يمكن أن تحسّن سرعة الترميز وفك الترميز بشكل كبير.
يتم التحكّم في هذين النوعين من الإعدادات من خلال عدة مَعلمات في سطر الأوامر:
FFmpeg | |
---|---|
-threads |
يشير إلى عدد سلاسل التعليمات البرمجية التي سيتم استخدامها أثناء الترميز. |
-quality |
يمكن ضبطها على good أو best أو realtime |
-speed |
تختلف دلالة هذه المَعلمة حسب ما إذا كانت الجودة مضبوطة على good أو realtime . تنطبق إعدادات السرعة 0-4 على الفيديو عند الطلب في good وbest ، حيث تكون 0 هي أعلى جودة و4 هي أدنى جودة. القيم الصالحة لـ Realtime هي 5-8 ، وتشير الأرقام الأصغر إلى جودة أعلى. |
-tile-columns |
تقسّم التجانب الفيديو إلى مناطق مستطيلة، ما يتيح استخدام عدة سلاسل محادثات للترميز وفك الترميز. يكون عدد المربّعات دائمًا مضاعفًا للرقم 2. 0 =1 مربّع، 1 =2، 2 =4، 3 =8، 4 =16، 5 =32 |
سينشئ أمر FFmpeg التالي ملفًا بدقة 640x480 مع ضبط الجودة على "جيدة" والسرعة على 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
قد تختلف خياراتك لإعدادات الجودة والسرعة حسب الدقة وقوة المعالجة المتاحة. يمكنك الاطّلاع على مجموعة كاملة من الاقتراحات في القسم التالي.