این بخش توصیه های رمزگذاری VP9 را برای انواع پروفایل های رایج فهرست می کند:

  • ویدیوی بسیار بهینه شده برای وب و موبایل (VOD)
  • توزیع محتوای ممتاز (VOD)
  • ورزش، انیمیشن، محتوای 10 بیتی (VOD)
  • رمزگذاری زنده
  • WebRTC

مقدمه

هنگام رمزگذاری ویدیو، چند نکته وجود دارد:

  • آیا شما یک نسخه واحد از رسانه خود را ایجاد می کنید یا چندین نسخه با نرخ بیت و وضوح متفاوت؟
  • آیا در حال ایجاد یک جریان ویدیویی زنده یا فایل های ویدیویی درخواستی هستید؟
  • چه نوع رسانه ای را رمزگذاری می کنید - آیا حرکت زیادی دارد؟ جزئیات؟ انیمیشن؟
  • آیا برای حداکثر کیفیت (مثلاً محتوای ممتاز) یا سرعت (مثلاً کنفرانس وب؟) کدگذاری می‌کنید؟

این بخش با تنظیمات یک فایل ویدیویی اولیه بر اساس درخواست شروع می شود و سپس برای همه این سؤالات توصیه هایی ارائه می دهد.

تنظیمات اولیه

رمزگذاری میزان بیت

نرخ بیت زیر به عنوان خطوط پایه برای توزیع وب و موبایل پیشنهاد شده است. این پیشنهادات نرخ بیت را به حداقل می‌رسانند که کیفیت ویدیوی مناسب برای توزیع وب و موبایل مصرفی را به دست می‌آورد. آنها را به عنوان یک توصیه نرخ بیت "کم" در نظر بگیرید که هنوز هم می تواند به کیفیت معقولی دست یابد.

نرخ بیت هدف پیشنهادی

اندازه / نرخ فریم میانگین نرخ بیت (VOD، kbps) میانگین نرخ بیت (زنده، kbps)
320x240p @ 24,25,30 150 250
640x360p @ 24,25,30 276 386
640x480p @ 24,25,30 512 (LQ)، 750 (MQ) 720 (LQ)، 1024 (MQ)
1280x720p @ 24,25,30 1024 1440
1280x720p @ 50,60 1800 2500
1920x1080p @ 24,25,30 1800 2500
1920x1080p @ 50,60 3000 4200
2560x1440p @ 24,25,30 6000 8400
2560x1440p @ 50,60 9000 12600
3840x2160p @ 24,25,30 12000 16800
3840x2160p @ 50,60 18000 25200

شکل 2a: نرخ بیت هدف

تنظیمات رمزگذاری VOD

تنظیمات برای اکثر انواع محتوا

برای اکثر انواع محتوا، توصیه می کنیم از حالت کیفیت محدود (CQ) با درج نرخ بیت استفاده کنید. اکثر ویدیوها حاوی ترکیبی از صحنه‌های پرحرکت (مانند سکانس‌های اکشن) و صحنه‌هایی با جزئیات کمتر (مثلاً مکالمات) هستند. حالت CQ به رمزگذار اجازه می دهد تا سطح کیفیت معقولی را در طول صحنه های طولانی تر و آسان تر (بدون هدر دادن بیت ها) حفظ کند و در عین حال بیت های بیشتری را برای دنباله های دشوار اختصاص دهد.

همچنین توصیه می کنیم با استفاده از مقادیر کیفیت همانطور که در نمودار زیر نشان داده شده است، محدوده بیت ریت را از 50٪ تا 150٪ هدف مجاز کنید. این حالت نیاز به رمزگذاری دو پاس دارد و توصیه می‌شود از تنظیمات سریع‌تر برای HD و بالاتر همانطور که در زیر نشان داده شده است استفاده کنید.

تنظیمات رمزگذار برای رمزگذاری CQ

ارتفاع قاب کیفیت هدف (CQ) حالت رمزگذاری
240 37 TWO_PASS_MEDIUM
360 36 TWO_PASS_MEDIUM
480 34 (کیفیت پایین) یا 33 (کیفیت متوسط) TWO_PASS_MEDIUM
720 32 TWO_PASS_FAST
1080 31 TWO_PASS_FAST
1440 24 TWO_PASS_FAST
2160 15 TWO_PASS_FAST

شکل 2b: تنظیمات پیشنهادی CQ

ما در نهایت 240 فریم ویدیو بین فریم های کلیدی را توصیه می کنیم (برای محتوای 30 فریم بر ثانیه این به 8 ثانیه ترجمه می شود). فریم های کلیدی فریم های ویدئویی هستند که خودکفا هستند. آنها برای ارائه به هیچ فریم دیگری متکی نیستند (برای توضیح بیشتر به ساختار GOP مراجعه کنید). برای پخش وب و موبایل، ما فاصله سخاوتمندانه بین فریم‌های کلیدی را مجاز می‌کنیم، زیرا این امکان را به رمزگذار می‌دهد تا «بهترین» قرارگیری فریم‌های کلیدی را برای به حداکثر رساندن کیفیت انتخاب کند.

نمونه پارامترهای خط فرمان: ویدیو 640x360

از بالا، توصیه هایی برای ویدیوی 360p به شرح زیر است:

  1. سطح CQ 36 (شکل 2b را ببینید)
  2. نرخ بیت هدف 276 کیلوبیت در ثانیه (شکل 2a را ببینید)
  3. حداقل نرخ بیت مجاز 138 کیلوبیت در ثانیه (50 درصد هدف)
  4. حداکثر نرخ بیت مجاز 414 کیلوبیت در ثانیه (150٪ هدف)
  5. حداکثر فاصله فریم های کلیدی 240 ثانیه
  6. پروفایل دو پاس، "متوسط".

این پارامترهای خط فرمان زیر را برای libvpx و FFmpeg می دهد:

libvpx

--end-usage=cq --cq-level=36 --target-bitrate=276 --minsection-pct=50 \
  --maxsection-pct=150 --kf-max-dist=240 --passes=2 --good --cpu-used=2

FFmpeg

-crf 36 -b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2

تنظیمات محتوای ممتاز

در مثال‌های بالا، از تنظیمات رمزگذاری نسبتاً سریع برای ایجاد کارآمد جریان‌های ویدیویی استفاده کردیم. با این حال، برای برخی از محتواها (مانند فیلم های پریمیوم) ارزش دارد که زمان بیشتری را در طول رمزگذاری صرف کنید تا خروجی با کیفیت بالاتری داشته باشید.

برای محتوای ممتاز، تنظیمات مشابه بالا را توصیه می‌کنیم، اما با از پیش تنظیم‌های مختلف، به رمزگذار دستور می‌دهیم زمان بیشتری را برای بهینه‌سازی کیفیت صرف کند:

حالت های رمزگذاری محتوای ممتاز و پارامترهای خط فرمان

ارتفاع قاب حالت رمزگذاری libvpx FFmpeg
240 TWO_PASS_VERY_SLOW --good --cpu-used 0 -good -speed 0
360 TWO_PASS_VERY_SLOW --good --cpu-used 0 -good -speed 0
480 TWO_PASS_VERY_SLOW --good --cpu-used 0 -good -speed 0
720 TWO_PASS_SLOW --good --cpu-used 1 -good -speed 1
1080 TWO_PASS_MEDIUM --good --cpu-used 2 -good -speed 2
1440 TWO_PASS_MEDIUM --good --cpu-used 2 -good -speed 2
2160 TWO_PASS_MEDIUM --good --cpu-used 2 -good -speed 2

شکل 2c: حالت های رمزگذاری محتوای ممتاز

ورزش، تنظیمات محتوای با حرکت بالا

ما رمزگذاری VBR را برای محتوای ورزشی توصیه می کنیم. ورزش‌ها سطح نسبتاً ثابتی از حرکت و پیچیدگی بالایی دارند و با استفاده از VBR کیفیت بالاتری را در دوره‌های حرکت پایین‌تر از رمزگذاری QP به دست می‌آورند.

برای خط فرمان، تفاوت اصلی بین حالت QP و VBR این است که سطح CQ را مشخص نمی‌کنید. در غیر این صورت، تنظیمات توصیه شده یکسان است.

مثال پارامترهای خط فرمان VBR: ویدئو 640x360

libvpx

--end-usage=vbr --target-bitrate=276 --minsection-pct=50 --maxsection-pct=150 \
  --kf-max-dist=240 --passes=2 --good --cpu-used=2

FFmpeg

-b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2

تنظیمات انیمیشن و بازی

تنظیمات محتوای پر سر و صدا / با کیفیت پایین

برای محتوای پر سر و صدا، توصیه می کنیم تعداد و قدرت فریم های alt-ref را افزایش دهید. فریم‌های مرجع جایگزین، قاب‌های نامرئی هستند که هرگز به کاربر نشان داده نمی‌شوند، اما هنگام ایجاد فریم‌های نهایی به عنوان مرجع استفاده می‌شوند (اطلاعات بیشتر را می‌توانید در اینجا بخوانید).

پارامترهای زیر برای دستور دادن به VP9 برای استفاده بیشتر از فریم های alt-ref توصیه می شود:

libvpx

--auto-alt-ref=1 --lag-in-frames-16 --arnr-maxframes=5 --arnr-strength=3

FFmpeg

رمزگذاری 10 بیتی/HDR

برای رمزگذاری 10 بیتی، می خواهید از VP9 Profile 2 استفاده کنید. رمزگذاری در 10 بیت به بیت های بیشتری نیاز ندارد، بنابراین بقیه پارامترها یکسان هستند:

libvpx

--profile=2

FFmpeg

-profile 2

تنظیمات رمزگذاری زنده

پخش زنده

رمزگذاری زنده معمولاً به صورت CBR انجام می شود که توانایی رمزگذار را برای به حداکثر رساندن کیفیت محدود می کند. به همین دلیل، همانطور که در شکل 2 الف نشان داده شده است، از نرخ بیت بالاتر استفاده خواهیم کرد.

برای رمزگذاری زنده، ما همچنین می‌خواهیم threading را به حداکثر برسانیم. این کار توسط:

  1. اجازه دادن به VP9 برای تقسیم ویدیو به ستون‌هایی (که نمی‌توانند کمتر از 256 پیکسل عرض داشته باشند و باید توان دو باشند).
  2. برای استفاده بیشتر از قدرت CPU به VP9 نشان می دهد. جدول زیر توصیه هایی را برای هر قطعنامه فهرست می کند.

توصیه های کاشی کاری و نخ زنی

تنظیمات رمزگذار برای رمزگذاری CQ
اندازه قاب تعداد کاشی-ستون تعداد رشته ها
320x240 1 2
640x360 2 4
640x480 2 4
1280x720 4 8
1920x1080 4 8
2560x1440 8 16
3840x2160 8 16

شکل 2d. کاشی کاری و نخ برای رمزگذاری زنده توصیه می شود

رمزگذاری زنده همچنین برای اطمینان از عملکرد، ضرب‌الاجل را روی «زمان واقعی» تنظیم می‌کند و به فریم‌های alt-ref دستور می‌دهد که به آینده نگاه نکنند (که باعث تأخیر می‌شود):

از این رو، توصیه هایی برای ویدیوی زنده 360p به شرح زیر است:

  1. CBR، نرخ بیت هدف 386 کیلوبیت در ثانیه (شکل 2a را ببینید)
  2. 2 ستون کاشی (شکل 2d را ببینید)
  3. 4 رشته (شکل 2d را ببینید)
  4. عملکرد زمان واقعی
  5. بدون تاخیر به دلیل فریم های متناوب (بدون تاخیر فریم)

این پارامترهای خط فرمان زیر را برای libvpx و FFmpeg می دهد:

libvpx

--end-usage=cbr --target-bitrate=386 --cpu-used=4 --tile-columns=2 --rt --lag-in-frames=0

FFmpeg

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -r 29.97 -b:v 386k \
  -minrate 386k -maxrate 386k -c:v libvpx-vp9 -c:a libopus output.webm

رمزگذاری زنده VP9 برای DASH/YouTube

رمزگذاری WebRTC