خلاصة أولًا: لضغط الفيديو في FFmpeg ثلاثة أوضاع للتحكم في معدل البت — CRF (جودة صورة ثابتة) مناسب للأرشفة والتخزين المحلي، وCBR (معدل بت ثابت) للبث المباشر، وVBR (معدل بت متغير) للفيديو حسب الطلب. لنفس فيديو 1080p، ينتج CRF 23 حجمًا قدره 42MB بأفضل جودة، وCBR 4Mbps حجمًا 38MB بأكثر معدل بت استقرارًا، أما VBR فينتج 36MB بأصغر حجم لكن مع تذبذب في الجودة. اختيار الوضع الخاطئ يكلّفك إما هدرًا في الحجم أو تراجعًا في الجودة. فيما يلي شرح مفصّل لاختيار الوضع المناسب من ثلاثة جوانب: المبدأ، والأوامر، والاختبار العملي.
إذا لم تكن على دراية بالأساليب العامة لضغط الفيديو، فننصح بقراءة دليل ضغط الفيديو.
أولًا: مقارنة مبادئ أوضاع معدل البت الثلاثة
يحدد وضع التحكم في معدل البت في تشفير الفيديو كيفية تخصيص موارد البت من قِبل المُرمِّز. الفرق الجوهري بين الأوضاع هو «ما الذي يجب ضمانه أولًا» — CRF يضمن جودة الصورة، وCBR يضمن استقرار معدل البت، وVBR يحقق توازنًا بينهما. فهم مبادئ هذه الأوضاع الثلاثة هو أساس ضغط الفيديو الجيد.
| بُعد المقارنة | CRF (Constant Rate Factor) | CBR (Constant Bitrate) | VBR (Variable Bitrate) |
|---|---|---|---|
| الاسم الكامل | معامل المعدل الثابت | معدل البت الثابت | معدل البت المتغير |
| الهدف الأساسي | جودة صورة ثابتة | معدل بت ثابت | حجم قابل للتحكم |
| توزيع البت | توزيع ديناميكي بحسب تعقيد المشهد | معدل بت ثابت لكل إطار | تذبذب ضمن الحدود |
| اتساق الجودة | ★★★★★ | ★★☆☆☆ | ★★★☆☆ |
| قابلية التحكم بالحجم | ★★☆☆☆ | ★★★★★ | ★★★★☆ |
| سرعة الترميز | متوسطة | الأسرع | أبطأ |
| السيناريوهات المناسبة | أرشفة / تخزين محلي | البث المباشر | الفيديو حسب الطلب |
ببساطة: CRF يجعل المُرمِّز «يوزع معدل البت بحسب صعوبة المشهد» — فيمنح أفلام الحركة قدرًا أكبر من البت، والمشاهد الثابتة قدرًا أقل، لتتسق جودة كل إطار في النهاية؛ أما CBR فيعطي «قدرًا ثابتًا من البت بصرف النظر عن تعقيد المشهد» — فيهدر البت في المشاهد البسيطة، ويقلّ في المشاهد المعقدة مما يسبب ظهور البكسلات (mosaic)؛ VBR يقع بينهما، فيعين نطاقًا لمعدل البت ويترك للمُرمِّز حرية الضبط.
ثانيًا: أمثلة أوامر FFmpeg ومعاملاتها
تختلف صياغة الأوضاع الثلاثة في FFmpeg، وتختلف معاملاتها الرئيسية. فيما يلي نموذج الأمر القياسي لكل وضع وشرح المعاملات.
| الوضع | المعامل الرئيسي | شرح المعامل | النطاق النموذجي |
|---|---|---|---|
| CRF | -crf | معامل جودة الصورة، كلما صغرت القيمة ارتفعت الجودة | 0-51 (18-28 شائع) |
| CRF مقيد | -maxrate / -bufsize | تحديد ذروة معدل البت | maxrate 2-8Mbps |
| CBR | -b:v / -minrate / -maxrate | ضبط المعاملات الثلاثة على قيمة واحدة لتحقيق CBR | 2-8Mbps |
| VBR | -b:v | معدل البت المستهدف للمتوسط | 2-6Mbps |
| نطاق VBR | -minrate / -maxrate | نطاق تذبذب معدل البت | min 1-2Mbps / max 4-8Mbps |
| عام | -preset | التوازن بين سرعة الترميز ومعدل الضغط | ultrafast-fast-medium-slow |
1. أمر وضع CRF
CRF هو وضع الأرشفة الأنسب. يوزع المُرمِّز معدل البت تلقائيًا بحسب تعقيد المشهد لضمان اتساق جودة كل إطار. قيمة CRF 23 هي الافتراضية لـ H.264 وتناسب معظم السيناريوهات.
وضع CRF الخالص (دون تحديد حد أعلى لمعدل البت):
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
وضع CRF المقيد (تحديد ذروة معدل البت، مناسب للسيناريوهات التي تتطلب حدًا أعلى):
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -maxrate 4M -bufsize 8M -preset medium output.mp4
2. أمر وضع CBR
يحقق CBR معدل البت الثابت من خلال ضبط minrate وmaxrate وb:v على نفس القيمة. يجب استخدام CBR في البث المباشر لضمان استقرار معدل البت.
وضع CBR القياسي:
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -minrate 4M -maxrate 4M -bufsize 8M -preset fast output.mp4
وضع البث المباشر (مع RTMP):
ffmpeg -i input.mp4 -c:v libx264 -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 8000k -g 60 -preset fast -f flv rtmp://server/live/stream
3. أمر وضع VBR
يحدد VBR معدل البت المستهدف للمتوسط، ويترك للمُرمِّز حرية الضبط في النطاق. مناسب للفيديو حسب الطلب الذي يحتاج تقديرًا للحجم.
وضع VBR القياسي:
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -preset medium -c:a aac -b:a 128k output.mp4
تشفير VBR بمرحلتين (Two-pass، تحكم أدق بالحجم):
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 4M -pass 1 -an -f mp4 /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -pass 2 -c:a aac -b:a 128k output.mp4
ثالثًا: بيانات الاختبار العملي — مقارنة الأوضاع الثلاثة على نفس الفيديو
استخدمنا مقطع اختبار بدقة 1080p/30fps (حجم أصلي 350MB، ترميز H.264، مدة 5 دقائق) لضغطه بالأوضاع الثلاثة، ومقارنة الحجم والجودة وزمن الترميز.
| الوضع | المعاملات | حجم الإخراج | معدل الضغط | تقييم الجودة | زمن الترميز |
|---|---|---|---|---|---|
| CRF 18 | -crf 18 -preset medium | 85.2MB | 75.7% | ★★★★★ | 142 ثانية |
| CRF 23 | -crf 23 -preset medium | 42.1MB | 88.0% | ★★★★☆ | 128 ثانية |
| CRF 28 | -crf 28 -preset medium | 22.5MB | 93.6% | ★★★☆☆ | 115 ثانية |
| CBR 4M | -b:v 4M -minrate 4M -maxrate 4M | 38.3MB | 89.1% | ★★★☆☆ | 98 ثانية |
| CBR 2M | -b:v 2M -minrate 2M -maxrate 2M | 19.4MB | 94.5% | ★★☆☆☆ | 92 ثانية |
| VBR 4M | -b:v 4M -preset medium | 36.8MB | 89.5% | ★★★★☆ | 135 ثانية |
| VBR 4M بمرحلتين | -b:v 4M -pass 2 | 36.2MB | 89.7% | ★★★★☆ | 268 ثانية |
تكشف البيانات عن عدة استنتاجات جوهرية: يحقق CRF 23 أفضل توازن بين الجودة والحجم (42MB، جودة أربع نجوم ونصف)؛ CBR 4M قريب في الحجم من CRF 23 لكن أقل جودة بقليل (تظهر بكسلات في المشاهد المعقدة)؛ VBR بمرحلتين أدق في الحجم لكن زمن الترميز يتضاعف. لسيناريوهات الأرشفة، يظل CRF 23 الخيار الأمثل.
لننظر في تأثير preset المختلفة على CRF 23:
| preset | حجم الإخراج | زمن الترميز | فارق الحجم | السيناريو الموصى به |
|---|---|---|---|---|
| ultrafast | 58.2MB | 32 ثانية | +38% | معاينة فورية |
| fast | 45.6MB | 68 ثانية | +8% | ضغط سريع |
| medium | 42.1MB | 128 ثانية | مرجع | افتراضي عام |
| slow | 39.8MB | 285 ثانية | -5% | أرشفة عالية الجودة |
| slower | 38.5MB | 612 ثانية | -9% | ضغط بأقصى جودة |
مرجع معدلات البت الموصى بها بحسب الدقة، يساعد في اختيار معدل البت المستهدف المناسب لـ CBR/VBR:
| الدقة | معدل الإطارات | معدل بت CBR الموصى به | معدل بت VBR المستهدف | قيمة CRF الموصى بها | السيناريو المناسب |
|---|---|---|---|---|---|
| 480p | 30fps | 1.0Mbps | 1.0Mbps | CRF 24 | جوال منخفض الدقة |
| 720p | 30fps | 2.5Mbps | 2.5Mbps | CRF 23 | دقة قياسية للويب |
| 1080p | 30fps | 4.0Mbps | 4.0Mbps | CRF 23 | عالي الدقة عام |
| 1080p | 60fps | 6.0Mbps | 6.0Mbps | CRF 22 | عالي الدقة بمعدل إطارات مرتفع |
| 1440p | 30fps | 8.0Mbps | 8.0Mbps | CRF 22 | جودة 2K |
| 2160p(4K) | 30fps | 16.0Mbps | 16.0Mbps | CRF 20 | أرشفة فائقة الدقة |
رابعًا: توصيات حسب السيناريو — اختر الوضع المناسب لكل غرض
تتفاوت متطلبات الجودة والحجم واستقرار معدل البت بحسب سيناريو الاستخدام، وجوهر اختيار وضع البت هو مطابقة متطلبات السيناريو.
| سيناريو الاستخدام | الوضع الموصى به | المعاملات الموصى بها | سبب الاختيار | معدل الضغط المتوقع |
|---|---|---|---|---|
| التخزين الأرشيفي المحلي | CRF | -crf 23 -preset medium | الجودة أولًا، الحجم الأمثل | 85%–90% |
| أرشفة عالية الجودة | CRF | -crf 18 -preset slow | قريبة من عدم الفقدان، حفظ طويل الأمد | 70%–80% |
| البث المباشر | CBR | -b:v 4M -minrate 4M -maxrate 4M | معدل بت مستقر، يمنع التقطع | حسب المصدر |
| الفيديو حسب الطلب | VBR بمرحلتين | -b:v 4M -pass 2 | حجم دقيق وجودة متوازنة | 80%–90% |
| تشغيل على الجوال | CRF مقيد | -crf 26 -maxrate 2M -bufsize 4M | تحديد معدل البت ليتناسب مع شبكة الجوال | 90%–95% |
| فيديو الويب | CRF مقيد | -crf 24 -maxrate 3M -bufsize 6M | التوازن بين الجودة وسرعة التحميل | 88%–92% |
| تسجيلات المراقبة | CBR | -b:v 1M -minrate 1M -maxrate 1M | معدل بت ثابت لتسهيل حساب التخزين | حسب المصدر |
| فيديو البريد الإلكتروني | CRF | -crf 28 -preset fast | الحجم أولًا، جودة مقبولة | 93%–96% |
يستخدم SmartSlim في ضغط الفيديو محرك ضغط Rust المطوّر داخليًا، مع مكتبة معاملات مبنية على السيناريو — 4 مستويات ضغط × 15 سيناريو × 5 مستويات أداء = 300 تركيبة، يختار تلقائيًا أفضل وضع للمعدل البت ومعاملاته بحسب غرض الفيديو، دون الحاجة لكتابة أوامر FFmpeg يدويًا. كما يمكن لمستخدمي المؤسسات دمجه في أنظمتهم عبر SDK لأتمتة ضغط الفيديو.
لمزيد من مقارنات ترميز الفيديو، يمكنك الرجوع إلى مقارنة ترميز H.264 مقابل H.265 مقابل AV1 وطرق تقييم جودة ضغط الفيديو.
خامسًا: الأسئلة الشائعة FAQ
س1: لضغط الفيديو في FFmpeg، أيهما أفضل CRF أم VBR؟
للأرشفة والتخزين المحلي يُستحسن CRF. يهدف CRF إلى جودة صورة ثابتة، فيخصص معدل بت أكبر للمشاهد المعقدة وأقل للبسيطة، فتتسم الجودة بالاتساق ويكون الحجم أمثلًا. نطاق CRF الموصى به 18-28؛ 18 قريب من عدم الفقدان البصري، 23 نقطة التوازن الافتراضية، 28 جودة مقبولة وحجم أصغر. VBR مناسب للسيناريوهات التي تتطلب تحديد حد أعلى لمعدل البت مثل البث، لكن جودته أقل استقرارًا من CRF.
س2: ما قيمة CRF التي تعطي أفضل جودة؟
كلما صغرت قيمة CRF ارتفعت الجودة وزاد الحجم. في ترميز H.264: CRF 0 بدون فقدان، CRF 18 قريب من عدم الفقدان البصري (الحجم نحو 50% من الأصل)، CRF 23 هو القيمة الافتراضية في FFmpeg (الحجم نحو 25% من الأصل)، CRF 28 جودة مقبولة (الحجم نحو 12% من الأصل). النطاق الموصى به 18-28، وفي معظم السيناريوهات يكفي CRF 23، وللجودة العالية استخدم 18-20.
س3: للبث المباشر، أيهما CBR أم VBR؟
للبث المباشر يُنصح بـ CBR. يتطلب البث استقرارًا شديدًا لمعدل البت — فيحافظ CBR على معدل بت ثابت، ويتجنب التقطع الناجم عن تذبذب الشبكة. تفرض منصات البث عادةً معدل بت ثابتًا (مثل Twitch 6000kbps، Bilibili 4000kbps)، ويستطيع CBR مطابقتها بدقة. قد يقفز VBR في المشاهد المعقدة متجاوزًا سقف النطاق الترددي مما يسبب فقدان الإطارات، بينما يظل CBR مستقرًا دائمًا. للبث استخدم CBR مع maxrate = bufsize = معدل البت المستهدف.
س4: ما الفرق بين وضعي VBR في FFmpeg؟
يقدم FFmpeg مستويين من VBR: -crf مع maxrate/bufsize هو VBR مقيد (constrained VBR)، تقترب جودته من CRF الخالص لكن مع تحديد ذروة البت؛ و-b:v مع -minrate/-maxrate هو VBR تقليدي، يتذبذب البت في النطاق. VBR المقيد أنسب للاستخدام الفعلي، إذ يضمن الجودة مع التحكم بذروة البت. VBR التقليدي مناسب للسيناريوهات التي تتطلب تحكمًا دقيقًا بنطاق البت، كالتوافق مع بيئات نطاق ترددي محددة.
الخلاصة
كل وضع من أوضاع معدل البت الثلاثة في FFmpeg له سيناريو مثالي: CRF يقدّم الجودة أولًا ومناسب للأرشفة (نوصي بـ CRF 23)، CBR يقدّم الاستقرار أولًا ومناسب للبث المباشر (نوصي بـ 4Mbps ثابت)، VBR يقدّم التحكم بالحجم أولًا ومناسب للفيديو حسب الطلب (نوصي بترميز بمرحلتين). اختيار الوضع الصحيح هو الخطوة الأولى في ضغط الفيديو — اختر CRF للأرشفة، وCBR للبث، وVBR للفيديو حسب الطلب، وبهذا المبدأ لن تخطئ.
إذا كنت لا ترغب في كتابة أوامر FFmpeg يدويًا، فإن SmartSlim يوفر حل ضغط فيديو جاهزًا للاستخدام، مبنيًا على محرك ضغط Rust المطوّر داخليًا، ويضم 300 تركيبة معاملات مبنية على السيناريو، ويدعم 8 صيغ فيديو منها mp4/mkv/avi/mov/wmv/flv/webm/m4v، وضغط محلي لا تغادر فيه البيانات نطاقك.
هل تحتاج إلى ضغط الملفات؟ جرّب SmartSlim
مبني على محرك ضغط Rust مطوّر داخليًا، يدعم أكثر من 40 صيغة في 10 فئات تشمل PDF والصور والفيديو وOffice وOFD، مع ضغط محلي لا تغادر فيه البيانات نطاقك.