VP9 Bit Hızı Modları Hakkında Ayrıntılı Bilgi

Giriş

Temel Kodlama sayfalarımızda bit hızı modları hakkında üst düzey ayrıntılar versek de bu bilgiler yalnızca CQ (Sınırlı Kalite) modunu ele alır.

Bu belgede, çeşitli senaryolara göre optimize etmek için VP9 bit hızlarını uyarlayabileceğiniz diğer pratik yöntemler ayrıntılı olarak açıklanmaktadır. Aşağıdaki örneklerde FFmpeg kullanılmaktadır.

Sıkıştırma

VP9 gibi video sıkıştırma teknolojileri, son kullanıcılara anlaşılır bir görüntü ve hareket hissi sunmak için gereken veri miktarını azaltmayı amaçlar.

Bunu sağlamak için kullanılan temel tekniklerden biri nicelendirmedir. Bir nicemleyici, görüntünün çeşitli dijitalleştirilmiş öğelerini matematiksel olarak basitleştirir. Örneğin, kullanılan renk aralığını azaltabilir ve ayrıca azaltılmış renk aralığında algılanan ince çözünürlük eksikliğini "yumuşatmak" için veriler üzerinde matematiksel işlevler gerçekleştirebilir. Bu tür birçok işlev vardır.

Kuantalama (veya "Q") Wikipedia makalesinde ayrıntılı olarak açıklanmıştır.

VP9'da nicemleme, dönüştürme katsayıları üzerinde gerçekleştirilir. Bu, kodlamaya ekleme yaparak algılanan kaliteyi korumak için gereken bit hızını azaltır.

Sonuç olarak, daha fazla nicemleme (daha yüksek bir Q sayısı) olduğunda ayrıntılar kaybolur ve kalite düşer ancak kareyi depolamak için daha az veri gerekir. Çoğu durumda VP9 kodlayıcı, her bir karenin karmaşıklığına bağlı olarak zaman içinde Q değerini değiştirerek bit hızı hedeflerine ulaşır.

Kullanım alanı optimizasyonu

Kullanıcının VP9 sıkıştırmasını kendi özel ihtiyaçlarına göre "ayarlamasına" olanak tanımak için ilk sıkıştırma sırasında kalite ve bit hızı dengesini çeşitli programlama arayüzleri aracılığıyla ayarlamak mümkündür.

Kodlayıcı, hız, kalite ve bit hızı arasında kayan bir dengeye sahiptir.

  • Kaliteye odaklanan kullanıcılar, daha uzun kodlama sürelerine veya daha hızlı ve daha fazla işleme kaynağı sağlamaya hazır olmalıdır.

  • Kullanıcı, çıkış VP9 kodlu dosyanın küçük olmasını ve hızlı bir şekilde yayınlanabilmesini sağlamaya odaklanıyorsa görüntünün nicelendirici tarafından işlenebileceği süreyi azaltmaya hazır olmalıdır. Bu da nicelendiricinin çalışabileceği ayrıntı düzeyinin düşmesine neden olur.

  • Bir kullanıcı tamamen yayın hızına odaklanıyorsa (ör. canlı web yayını veya iki yönlü video konferans) nicemleme, verilerin ağ üzerinden iletilebileceği hızla (yani "bit hızı") ilgili kısıtlamalara tamamen tabi olabilir.

Doğru seçim, her kullanım alanına göre değişir. VP9, bu dengeyi kullanım alanınıza göre ayarlamayı kolaylaştırmak için dört "bit hızı modunda" basit yapılandırmayı destekler.

VP9 bit hızı modları

VP9'un desteklediği temel bit hızı modlarına göz atarak başlayalım:

Mod
Sabit nicemleyici (Q) Sabit bir nicemleyici değeri belirtmenize olanak tanır; bit hızı değişir.
Sınırlı Kalite (CQ) Maksimum kalite seviyesi ayarlamanıza olanak tanır. Kalite, bit hızı parametreleri içinde değişiklik gösterebilir.
Değişken Bit Hızı (VBR) Bit hızıyla ilgili kısıtlamalar dahilinde zaman içinde kalite ve bit hızını dengeler.
Sabit bit hızı (CBR) Kalite değişirken bit hızını oldukça sabit tutmaya çalışır.

Q

Q modu grafiği

Sabit nicemleyici modu, dosya boyutu ve bit hızıyla ilgili endişelerin nihai kaliteye tamamen bağlı olduğu senaryolar için iyi bir seçimdir.

Q ayarlarının kullanım alanları arasında, içeriğin fiziksel bir depolama ortamında veya sınırsız bir süre boyunca (içerik kullanılmadan çok önce) yayınlanabildiği ve istenen çıkışın en yüksek görsel kalitede olması gerektiği dijital sinema, dijital düzenleme paketleri veya dijital tabela uygulamaları yer alabilir.

VP9 Q modu bit hızı optimizasyonu

Sabit nicemleyici modu için minimum yapılandırma gerekir. Adından da anlaşılacağı gibi, Q modu, nicemleyiciyi hedef "kalite" seviyesinde tutmaya ve nicemleyicinin işlemek istediği veri akışını belirlemesine olanak tanımaya odaklanır. Kullanıcının tanımlaması gereken tek şey hedef kalitedir.

Temel Kodlama makalesinde, hedef kalitenin görüntü işleme odaklı (bit hızı odaklı değil) ayrıntıları hakkında daha fazla bilgi verilmektedir.

Kalite modu bit hızı optimizasyonu için aşağıdaki FFmpeg komut satırı parametrelerini kullanın:

ffmpeg
-b:v 0 Video bit hızını 0 olarak işaretleyerek "Q" modunu açıkça ayarlıyoruz.
-g <arg> Animasyon kareleri arasındaki aralığı kare cinsinden ayarlar (varsayılan değer 240'tır).
-crf <arg> Maksimum kalite düzeyini ayarlar. Geçerli değerler 0-63 arasındadır. Daha düşük sayılar daha yüksek kaliteyi gösterir.
-quality good -speed 0 Çoğu uygulama için varsayılan ve önerilen ayardır. best, -quality good -speed 0'e kıyasla küçük bir iyileştirme sunan daha çok bir araştırma aracıdır.
-lossless Kayıpsız mod

Q modu bit hızı : FFmpeg örnekleri

İlk örnek, çok uç bir Q modu ayarıdır ve yalnızca açıklama amaçlı verilmiştir. (Bu örneklerdeki 120 saniyelik klipin işlenmesi bile birkaç saat sürer ve oluşturulan çıktı dosyası genellikle orijinal kaynaktan çok daha büyüktür.)

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -crf 0 -quality good \
  -speed 0 -lossless 1 -c:a libvorbis Q_g_1_crf_0_120s_tears_of_steel_1080p.webm.webm

-crf etkisini karşılaştırmak için aşağıdaki örneklerde yalnızca -crf farklıdır. -g tanımlanmadığı için varsayılan olarak 240 değerini alacağını ve uygulamada -crf değerinin varsayılan olarak 10 değerini alacağını unutmayın. Bu nedenle, üç örnekten ikincisine parametrelerden hiçbiri dahil edilmeden de aynı sonucu elde ederdik:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 0 -quality good \
  -speed 0 -c:a libvorbis Q_crf_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -c:a libvorbis Q_crf_10_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 63 -quality good \
  -speed 0 -c:a libvorbis Q_crf_63_120s_tears_of_steel_1080p.webm

Bu örneklerin çıkışları, diskteki boyut açısından farklılık gösterir. -crf 0 olarak ayarlandığında dosya boyutu 711,8 MB, -crf 10 olarak ayarlandığında dosya boyutu 125,3 MB ve -crf 63 olarak ayarlandığında dosya boyutu 4,5 MB idi. Bu, çok basit bir şekilde, -crf bağımsız değişkeninin değeri artırılarak sonuçtaki VP9 kodlu dosyanın kalitesinin düşürüldüğünü gösterir. Tüm çıkış dosyalarının tam özeti aşağıdaki Sonuç Tablosu'nda yer almaktadır.

Şimdi -g ayarını değiştirmenin etkisini karşılaştıralım.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -quality good \
  -speed 0  -c:a libvorbis Q_g_1_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 240 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_240_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 480 -b:v 0 -quality good \
  -speed 0 -c:a libvorbis Q_g_480_120s_tears_of_steel_1080p.webm

-g 1 ayarının 25, 9 MB boyutunda çok büyük bir dosya oluşturduğunu fark ettik. Bunu, -g 240 (varsayılanla aynı olacak şekilde açıkça ayarlama) değiştirildiğinde 4,5 MB'lık bir dosya elde ettiğimiz ve -g 480 değiştirildiğinde 4,4 MB'lık bir dosya elde ettiğimiz durumla karşılaştırın.

CQ

CQ, dosya tabanlı video için önerilen bir moddur.

CQ modu grafiği

Çoğu içerik türü için bit hızı sınırlarıyla birlikte sınırlı kalite (CQ) modunu kullanmanızı öneririz. Çoğu videoda hem çok hareketli sahneler (ör. aksiyon sekansları) hem de daha az ayrıntılı sahneler (ör. sohbetler) yer alır. CQ modu, kodlayıcının daha uzun ve kolay sahnelerde makul bir kalite düzeyini korumasına (bitleri boşa harcamadan) olanak tanırken zorlu diziler için daha fazla bit ayırır.

Bununla birlikte, yine de bir üst aralık sağlayarak süreci kısıtlamamız gerekir. Aksi takdirde hiç sıkıştırma yapılmayabilir. Ayrıca, görüntü siyah olsa ve kodlama sürecinin neredeyse hiçbir ilgisi olmasa bile bu verileri yine de işleyeceğimiz daha düşük bir aralık da belirleyebiliriz. Bu durumda veriler, belki de olabileceğinden daha az verimli bir şekilde işlenir ancak sonuç olarak siyah bile önemli ölçüde sıkıştırılmaz ve "çok siyah" görünür.

Ayrıca quantizer eşiğini de ayarlamamız gerekir. VP9'da nicemleyici eşiği 0 ile 63 arasında değiştirilebilir.

CQ modu için aşağıdaki FFmpeg komut satırı parametreleri kullanılır:
ffmpeg
-b:v <arg> Hedef bit hızını ayarlar (ör. 500k)
-minrate <arg>
-maxrate <arg>
Minimum ve maksimum bit hızını ayarlar.
-crf <arg> Maksimum kalite düzeyini ayarlar. Geçerli değerler 0 ile 63 arasındadır. Daha düşük sayılar daha yüksek kaliteyi ifade eder.
CQ bit hızı modu: FFmpeg örnekleri

İlk örnek, makul ölçüde geniş bir kısıtlama sağlar. Ancak, yukarıda Q için verilen örneklerle karşılaştırıldığında, bunun bit hızlarını daha yüksek bir aralığa zorladığını ve çıkış kalitesinin belirgin şekilde daha yüksek olduğunu görüyoruz. Dosya boyutu belirgin şekilde daha büyük.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1000k -maxrate 4000k -crf 10  -c:a libvorbis \
  CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm

Bu örnekteki çıkış dosyası, diskte 20,2 MB'tı.Bu da yukarıdaki örneklerdeki Q modu kodlamasından belirgin şekilde daha küçüktü.

Bunun aksine, bir sonraki örnekte bit hızı çok daha dar bir aralıkla sınırlandırılmıştır.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10  -c:a libvorbis \
  CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm

Bu örnekte çıkış dosyasının boyutu 24,1 MB'tır.Yüksek karmaşıklık ve hareket anlarında video kalitesi, önceki örneğe kıyasla gözle görülür şekilde düşüktür.

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 1000k \
  -minrate 750k -maxrate 1400k -crf 10  -c:a libvorbis \
  CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm

Bu son örnekte, çıkış boyutu önemli ölçüde küçülerek diskte 13, 2 MB'a düştü.

VBR

Yüksek hareketli içeriklerin (ör. spor) seç-izle video dosyalarının yayınlanması için değişken bit hızı modu (VBR) önerilir. HTTP tabanlı yayın için uygundur.

VBR modu grafiği

VBR modelinde, aksiyon sahneleri, anahtar kareyle tutarlı olan "daha kolay" sahnelerden daha yüksek bit hızıyla kodlanabilir.

Büyük akış yayını modellerinde VBR'nin avantajları hem dağıtım hem de altyapı açısından önemli ölçüde artabilir. Aynı altyapı tarafından çok sayıda VBR akışı sunulduğunda bu durum, sistemi kullanan tüm izleyicilere avantaj sağlayabilir.

VP9 VBR, spor ve diğer yüksek hareketli içeriklerin kodlanması için de önerilir. Bu tür yüksek karmaşıklıkta içeriklerde VBR, daha az hareketin olduğu dönemlerde daha yüksek kalite elde eder.

VBR modu için aşağıdaki FFmpeg komut satırı parametreleri kullanılır:
ffmpeg
-quality good good kalitesi, seç-izle videolar için uygundur
-speed <arg> SEÇ-İZLE için geçerli değerler 0-5'tir. 0 en yüksek, 5 ise en düşük kalitedir. (Canlı yayın için aralık 5-9'dur. Aşağıdaki CBR bölümüne bakın.)
VBR bit hızı modu: FFmpeg örnekleri
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 0  -c:a libvorbis \
  VBR_good_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5  -c:a libvorbis \
  VBR_good_5_120s_tears_of_steel_1080p.webm

CBR

VP9 ile canlı yayın için Sabit Bit Hızı (CBR) modu önerilir.

CBR modu grafiği

CBR, üst bit hızını esasen "sert bir tavan" olarak ayarlar. Bu, kodlama işleminin, ağın taşıyamayacağı bir hızda veri üretemeyeceği anlamına gelir.

Örneğin, gerçek zamanlı iletişim (video konferans) akışlarında kodlama uygulamasının, taşıyabileceğinden daha fazla veriyle ağı doldurmaması önemlidir. Bu durumda, ses/video senkronizasyon sorunları veya donmuş kareler, kullanıcı deneyimini sıkıştırma verimliliğinin düşmesinden çok daha fazla etkiler. Üst sınırın tanımlandığından emin olarak VP9, bu sınıra ulaşıldığında kaliteyi düşürür.

CBR modu için aşağıdaki FFmpeg komut satırı parametreleri kullanılır:
ffmpeg
-quality realtime realtime kalitesi canlı yayın için uygundur
-speed <arg> Canlı yayın için geçerli değerler 5 ile 9 arasındadır. 5 en yüksek, 9 ise en düşük kalitedir. (Seç-izle videolar için bu değerler 0 ile 5 arasındadır. Yukarıdaki VBR bölümüne bakın.)
-minrate <arg>
-maxrate <arg>
Minimum ve maksimum bit hızını ayarlar ** Bunlar, CBR modu için aynı -b:v bit hızı değerine ayarlanmalıdır** .

Çok basit bir şekilde hedef, minimum ve maksimum bit hızlarını aynı değere sabitliyor ve nicemleyiciye işlemlerin zamana duyarlı olduğunu söylüyoruz.

CBR bit hızı modu: FFmpeg örnekleri

Aşağıdaki örneklerde, bit hızının 2 Mb/sn ve 500 kb/sn hedeflerine ayarlanması ele alınmaktadır:

ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
  CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 8 -c:a libvorbis \
  CBR_2000_realtime__8_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
  CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
  CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm

Sonuçlar

Yukarıdaki kodlamaların her biri, aşağıdaki özelliklere sahip bir Ubuntu Linux sisteminde gerçekleştirilmiştir:

  • İşlemci: 4x Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
  • Bellek (RAM): 8060 MB (1492 MB kullanılıyor)
  • Grafik: Intel HD Graphics 530 (Skylake GT2)
  • OS: Ubuntu 16.04 LTS

Her durumda kaynak dosya, Tears Of Steel filminden alınmış bir dakika yirmi saniyelik (1:20) bir klipti.

Dosya Kodlama Dakikası Diskteki Dosya Boyutu
Q_g_1_crf_0_120s_tears_of_steel_1080p.webm 81 1,06 GB
Q_crf_0_120s_tears_of_steel_1080p.webm 131 711,8 MB
Q_crf_10_120s_tears_of_steel_1080p.webm 118 125,3 MB
Q_crf_63_120s_tears_of_steel_1080p.webm 27 4,5 MB
Q_g_1_120s_tears_of_steel_1080p.webm 51 25,9 MB
Q_g_240_120s_tears_of_steel_1080p.webm 28 4,5 MB
Q_g_480_120s_tears_of_steel_1080p.webm 10 4,4 MB
CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm 11 20,2 MB
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm 9 24,1 MB
CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm 50 13,2 MB
VBR_good_0_120s_tears_of_steel_1080p.webm 3 23,4 MB
VBR_good_5_120s_tears_of_steel_1080p.webm 4 23,9 MB
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 2 24,8 MB
CBR_2000_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 21MB
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 8,5 MB
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm 1 7,1 MB

-speed değerlerinin 5'ın üzerinde ayarlanmasının VP9 işleme hızını değiştirdiği fark edildi. Bu, nicemlemede önemli bir artış olsa da (çok düşük kaliteli hızlı bit hızlarında güçlü bir "titreme" efektiyle görülür) VP9, daha büyük ekranlardan ziyade daha küçük mobil cihazlar için daha uygun olsa da çok iyi bir düşük bit hızlı 1080p çıkış üretebilir.

Yeniden ölçeklendirme (yeniden boyutlandırma) içeren kullanım alanlarıyla ilgili dikkat edilmesi gereken noktalar

VP9'un bit hızı modları bağımsız değildir ve kullanım alanlarını özel olarak hedeflemek için diğer birçok bağımsız değişken ve parametreyle birleştirilebilir. Tipik bir kullanım alanı, belirli bir cihazı hedeflemek için çıkış videosunun boyutlarını yeniden ölçeklendirmek olabilir.

Bunun klasik bir örneği, HD akışın SD çıkışa dönüştürülmesidir. Bu durum, işleme süresi ve çıkış bit hızı üzerinde önemli etkilere neden olur. Aksi takdirde iki FFmpeg komutunun aynı olduğu bir senaryoda, yalnızca çıkış videosunun boyutu ayarlanarak sonuçtaki dosyanın boyutu ve akış modelindeki bit hızı değiştirilir.

Bunu örneklemek için her bit hızı modundan bir orta nokta örneği aldık ve yeniden ölçeklendirme parametrelerini ekledik.

Q modu
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
  -speed 0 -vf scale=640x480 -c:a libvorbis 640x480_Q_crf_10_120s_tears_of_steel_1080p.webm
CQ modu
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -crf 10 -vf scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
VBR modu
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 1500k -maxrate 2500k -quality good -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
CBR modu
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
  -minrate 2000k -maxrate 2000k -quality realtime -speed 5 -vf  scale=640x480 \
  -c:a libvorbis 640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

Yeniden ölçeklendirme sonuçları tablosu

Dosya Kodlama Dakikası Diskteki Dosya Boyutu
640x480_Q_crf_10_120s_tears_of_steel_1080p.webm 5 3,4 MB
640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm 2 22,4 MB
640x480_VBR_good_5_120s_tears_of_steel_1080p.webm 1 22,6 MB
640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm 4 23MB

Karşılaştırmayı kolaylaştırmak için bunlar, önceki örneklerimizdeki aynı FFmpeg komutlarıdır ancak ölçeklendirme olmadan:

Dosya Kodlama Dakikası Diskteki Dosya Boyutu
Q_crf_10_120s_tears_of_steel_1080p.webm 56 126MB
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm 9 24,1 MB
VBR_good_5_120s_tears_of_steel_1080p.webm 4 23,9 MB
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm 1 24,8 MB

Gördüğünüz gibi, her birinde çıkış dosyası boyutlarında önemli bir azalma var. Çoğu örnekte kodlama süresinde azalma olsa da Q modunda kodlama süresi aslında arttı. Bir videoyu "daha fazla" sıkıştırmak daha fazla çaba gerektirir. Bu nedenle, kalite sınırlanmadığında (Q modunda olduğu gibi) çıkış dosyasının daha küçük olması beklenmesine rağmen, çıkış dosyasının oluşturulması için gereken süre aslında artabilir. Daha küçük bir dosyanın kodlama işlemiyle her zaman daha hızlı teslim edileceğini düşünmeyin.

Yeniden ölçeklendirme ve bit hızını birlikte azaltma

Son bir karşılaştırma olarak, aşağıdaki örneklerde yeniden ölçeklendirme ile ilgili CQ, VBR ve CBR örnekleri tekrar çalıştırılıyor. Ancak bu kez hedef bit hızı, yaklaşık olarak dörtte bir oranında (resim boyutunun küçültülmesiyle uyumlu) 500 kbps seviyesinde sınırlandırılıyor.

CQ modu
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 350k -maxrate 550k -crf 10 -vf scale=640x480 -c:a libvorbis \
  640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
VBR modu
ffmpeg -i "120s_tears_of_steel_1080p.webm" -c:v libvpx-vp9 -b:v 500k \
  -minrate 350k -maxrate 500k -quality good -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
CBR modu
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
  -minrate 500k -maxrate 500k -quality realtime -speed 5 -vf scale=640x480 -c:a libvorbis \
  640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm

Yeniden ölçeklendirme ve hedef bit hızını düşürme ile ilgili sonuç tablosu

Dosya Kodlama Dakikası Diskteki Dosya Boyutu
640x480_CQ_500_crf_0_120s_tears_of_steel_1080p.webm 1 7MB
640x480_VBR_500_good_5_120s_tears_of_steel_1080p.webm 1 7MB
640x480_CBR_500_realtime_5_120s_tears_of_steel_1080p.webm 1 7,6 MB

Gördüğünüz gibi, kodlama süresi daha da kısaldı.