ضغط الفيديو باستخدام FFmpeg: شرح CRF مقابل CBR مقابل VBR

التحكم في معدل البت: البدء من الأساسيات

لفهم الفرق بين CRF وCBR وVBR، علينا أولاً أن نتحدث عن معدل البت (bitrate).

معدل البت هو كمية بيانات الفيديو المنتجة لكل وحدة زمنية، ويُقاس عادةً بوحدة kbps (كيلوبت في الثانية) أو Mbps (ميغابت في الثانية). وهو يحدد مباشرةً وضوح الصورة وسلاسة الفيديو وحجم الملف النهائي. عند ثبات الدقة ومعدل الإطارات والترميز، فإن معدل البت الأعلى يحافظ على تفاصيل أكثر ولكنه ينتج ملفاً أكبر، بينما معدل البت الأقل يقلل حجم الملف على حساب التشويش والتدرجات اللونية وأضرار الحظر (blocking artifacts).

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

الهدف الأساسي من التحكم في معدل البت هو تخصيص البتات لكل إطار بشكل ذكي، ضمن ميزانية ثابتة للتخزين أو النطاق الترددي، وتحقيق أفضل توازن بين الجودة والحجم. الأوضاع الثلاثة —CRF وCBR وVBR— هي في جوهرها ثلاث استراتيجيات تخصيص مختلفة.

شرح أوضاع التحكم في معدل البت الثلاثة

CRF (Constant Rate Factor)

المبدأ التوجيهي لـ CRF هو الجودة الثابتة. يخصص المُرمِّز البتات ديناميكياً بناءً على تعقيد كل إطار: ينفق بتات أقل على المشاهد البسيطة وبتات أكثر على المشاهد المعقدة، مما يحافظ على ثبات الجودة المُدركة طوال الفيديو. سواء كان الإطار منظراً ثابتاً أو تسلسلاً مليئاً بالحركة، يختبر المشاهد تقريباً نفس الجودة البصرية.

يتم التحكم بـ CRF بواسطة عدد صحيح بين 0 و51 (لمُرمِّزات x264 وx265). القيمة الأقل تعني جودة أعلى وملفاً أكبر؛ والقيمة الأعلى تعني جودة أقل وملفاً أصغر. القيمة 0 تنتج ترميزاً بدون فقدان، و51 هي أدنى جودة، و23 عادةً هي نقطة المرجع الافتراضية للجودة البصرية بدون فقدان.

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

CBR (Constant Bitrate)

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

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

VBR (Variable Bitrate)

يسمح VBR لمعدل البت بالتذبذب ضمن نطاق محدد. يوازن المُرمِّز بين تعقيد المشهد وجودة مستهدفة، ويضبط معدل البت بين حد أدنى وأقصى مُهيأَين. يتطلب VBR عادةً تعيين معدل بت مستهدف (أو جودة مستهدفة) مع حدود عليا وسفلى، مما يجعله أكثر مرونة من CBR مع إضافة قيد على معدل البت يفتقر إليه CRF.

يُعد VBR شائعاً في السيناريوهات التي تحتاج إلى التحكم في حجم الملف الإجمالي مع الحفاظ على الجودة، مثل ترميز مقاطع البث. تجدر الإشارة إلى أن مُرمِّز x264 يوفر أيضاً وضع VBR ذو المسارين (2-pass): يقوم المسار الأول بمسح الفيديو بأكمله لتحليل توزيع التعقيد، ويخصص المسار الثاني البتات بدقة بناءً على ذلك التحليل. يتحكم هذا الوضع في الحجم المستهدف بدقة مع تحسين توزيع البتات، ولكنه يستغرق تقريباً ضعف وقت الترميز ذي المسار الواحد، مما يجعله مثالياً للمهام غير المتصة بمتطلبات حجم صارمة.

مقارنة تذبذبات معدل البت عبر الأوضاع الثلاثة

يُوضِّح المخطط أدناه سلوك الأوضاع الثلاثة على نفس الفيديو. CBR هو خط أفقي مستوٍ، بينما يرتفع وينخفض كل من CRF وVBR مع تعقيد المشهد. يتذبذب CRF بحرية أكبر، بينما يقيده VBR بحدوده الدنيا والعليا المُهيأَة.

FFmpeg video compression workflow: command-line parsing, decoding, encoding, output

كيف تؤثر قيمة CRF على الجودة والحجم

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

FFmpeg CRF bitrate control strategy diagram: constant quality vs variable bitrate compression effect comparison

أمثلة أوامر FFmpeg: ثلاثة سيناريوهات شائعة

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

السيناريو 1: البريد الإلكتروني (H.264 + 720p + CRF 28)

عادةً ما تكون لمرفقات البريد الإلكتروني حدود حجم، لذا يجب ضغط الفيديو بقوة. دقة 720p مع CRF 28 تحافظ على الملف صغيراً مع بقاءه قابلاً للمشاهدة.


ffmpeg -i input.mp4 \
  -c:v libx264 -preset medium -crf 28 \
  -vf "scale=-2:720" \
  -c:a aac -b:a 128k \
  output.mp4

السيناريو 2: النشر على الويب (H.264 + 1080p + CRF 26)

يحتاج فيديو الويب إلى الموازنة بين الوضوح وسرعة التحميل. 1080p مع CRF 26 هو مزيج شائع يوفر أيضاً أوسع توافق.


ffmpeg -i input.mp4 \
  -c:v libx264 -preset medium -crf 26 \
  -vf "scale=-2:1080" \
  -c:a aac -b:a 128k \
  output.mp4

السيناريو 3: الأرشفة (H.265 + الدقة الأصلية + CRF 20)

تعطي الأرشفة الأولوية للجودة وكفاءة الضغط. باستخدام مُرمِّز H.265 مع الحفاظ على الدقة الأصلية، يحقق CRF 20 جودة شبه بصرية بدون فقدان بحجم أصغر من H.264.


ffmpeg -i input.mp4 \
  -c:v libx265 -preset medium -crf 20 \
  -c:a aac -b:a 192k \
  output.mp4

ملاحظة سريعة عن المعلمات الأساسية: -c:v يضبط ترميز الفيديو، حيث يُوافِق libx264 ترميز H.264 وlibx265 يُوافِق H.265؛ و-preset يُقايض سرعة الترميز بكفاءة الضغط، حيث تُنتج الإعدادات المسبقة الأبطأ ضغطاً أفضل؛ و-crf يضبط مستوى الجودة؛ و-vf "scale=-2:720" يضبط الارتفاع إلى 720 بكسل مع حساب العرض تناسبياً وإبقائه زوجياً؛ و-c:a aac -b:a 128k يرمِّز الصوت بصيغة AAC بمعدل 128 kbps.

دليل اختيار قيمة CRF

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

نطاق CRFمستوى الجودةحجم الملفحالة الاستخدام
18-22جودة عاليةكبيرالأرشفة، نسخ احتياطي للمصدر، تشغيل عالي الجودة
23-26قياسيمتوسطالنشر على الويب، البث عند الطلب، التشغيل على الأجهزة المحمولة
27-30ضغط شديدصغيرالبريد الإلكتروني، المراسلة الفورية، التسليم ذو النطاق الترددي المحدود

مقارنة CRF مقابل CBR مقابل VBR

يقارن الجدول أدناه الأوضاع الثلاثة من حيث الجودة والحجم وسرعة الترميز وحالة الاستخدام لمساعدتك على الاختيار بناءً على احتياجاتك.

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

الأسئلة الشائعة

1. كيف أختار قيمة CRF المناسبة؟

لا توجد قيمة CRF صحيحة عالمياً؛ فهي تعتمد على الموازنة بين الجودة والحجم التي تفضلها. نقطة انطلاق جيدة هي CRF 23-26. إذا بدت الجودة جيدة،زد القيمة تدريجياً لتقليل حجم الملف أكثر؛ إذا كانت الجودة غير كافية، أنقص القيمة. لاحتياجات الأرشفة، 18-22 يعمل بشكل جيد، وللتسليم الحساس للحجم، 27-30 مناسب.

2. ماذا أفعل إذا بدا الفيديو المضغوط مشوشاً؟

يُعزى التشويش عادةً إلى معدل بت غير كافٍ أو تقليل الدقة بشكل مفرط. تحقق من أمور قليلة: أولاً، أنقص قيمة CRF، مثلاً من 28 إلى 24، لإعطاء المُرمِّز بتات أكثر؛ ثانياً، تحقق من أنك لم تقلل الدقة كثيراً وارفعها عند الحاجة؛ ثالثاً، بدّل إلى إعداد مسبق أبطأ (مثل slow أو slower) لمقايضة وقت الترميز بجودة ضغط أفضل؛ رابعاً، تأكد من أنك لم تطبق فلاتر إزالة التشويش أو إزالة التداخل القوية جداً، التي يمكنها أيضاً أن تجعل الصورة أقل حدة عند سوء التهيئة.

3. هل يجب أن أختار H.264 أم H.265؟

يتمتع H.264 بأوسع توافق، مدعوم من قبل جميع الأجهزة وأنظمة التشغيل والمتصفحات الحديثة تقريباً، مما يجعله مثالياً للتوزيع الواسع مثل تشغيل الويب والأجهزة المحمولة. H.265 (HEVC) أكثر كفاءة، حيث ينتج ملفات أصغر بنحو 30%-50% من H.264 عند نفس الجودة، لكنه يرمِّز ببطء أكبر ولا يدعمه بعض الأجهزة والمتصفحات القديمة. إذا كان هدفك الأرشفة أو التوزيع على أجهزة حديثة، فافضل H.265؛ وإذا كانت الأولوية هي أقصى توافق، فاختر H.264.

الخلاصة

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

في الممارسة العملية، إتقان ثلاث نقاط يغطي معظم الاحتياجات: اختيار وضع التحكم في معدل البت الذي يتطابق مع سيناريو الخاص بك، واختيار قيمة CRF معقولة وضبطها بعد ترميز اختباري، والاختيار بين H.264 وH.265 بناءً على متطلبات التوافق. بالاقتران مع مفتاح الإعداد المسبق (preset) لمقايضة السرعة بالكفاءة، يتيح لك FFmpeg إنتاج فيديوهات توازن بين الجودة والحجم في أي سيناريو.

مقالات ذات صلة:

هل تحتاج لضغط الملفات؟ جرّب SmartSlim

على أساس محرك ضغط Rust خاص، يدعم 10 فئات رئيسية و40+ صيغة بما في ذلك PDF/الصور/الفيديو/Office/OFD. معالجة محلية — البيانات لا تغادر نطاقك.