Temel Kodlama

Video Sıkıştırmayla İlgili Temel Bilgiler

Bu bölümde çerçeve boyutu, temel bit hızı kontrolü ve kalite gibi VP9 kodlamaya yönelik temel seçenekler yer almaktadır.

Video sıkıştırma konusunda yeniyseniz video sıkıştırmanın gereksinimi ve işleyiş şekli hakkında daha fazla bilgi edinmek için bu videoyu izleyebilirsiniz.

Basit Kodlama

Aşağıdaki FFmpeg komutu, bir giriş dosyasını Opus ses ile VP9 videoya dönüştürür. Bu, varsayılan ayarları kullanan mümkün olan en basit kodlamadır.

ffmpeg -i tears_of_steel_1080p.webm -c:v libvpx-vp9 -c:a libopus output.webm

Bu FFmpeg kodlama, aşağıdaki komut satırı parametrelerini kullanır:

FFmpeg
-i <filename> Giriş dosyası adını belirtir
-c:v libvpx-vp9 FFmpeg'ye VP9 video oluşturmasını söyler
-c:a libopus FFmpeg'ye Opus sesi oluşturmasını söyler
output.webm Çıkış dosyası adını belirtir

FFmpeg, kullandığınız çıkış dosyası adından yapılacak dosya türünü tahmin eder. Bu örnekte, FFmpeg, output.webm istediğimiz için bir WebM dosyası çıktısı oluşturacaktır.

Çözüm

Her videonun bir kare boyutu vardır (piksel genişliğini ve yüksekliğini gösterir). Aşağıdaki FFmpeg komut satırı parametresi, VP9 kodlaması için çıkış video çerçevesi boyutunu kontrol etmek üzere kullanılabilir:

FFmpeg
-vf scale=<width>x<height> Kare genişliği ve yüksekliği

Örneğin, aşağıdaki FFmpeg komutu 640x480 VP9 WebM videosu üretir.

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -c:v libvpx-vp9 -c:a libopus output.webm

Daha düşük çözünürlükler daha düşük kalitededir ancak daha yüksek çözünürlükler daha fazla bant genişliği, kod çözme için daha fazla işlem gücü gerektirir ve eski cihazlarda desteklenmeyebilir. VP9 için 640x480, çok çeşitli mobil ve web cihazı için güvenli bir çözüm olarak kabul edilir.

Bit hızı (bit hızı)

VP9, birkaç farklı bit hızı modunu destekler:

mod
Sabit Quanzer (Q) Sabit bir nicel değer belirtmenize olanak tanır; bit hızı değişiklik gösterir
Kısıtlı Kalite (CQ) Maksimum kalite düzeyini belirlemenize olanak tanır. Kalite, bit hızı parametrelerinde değişiklik gösterebilir
Değişken Bit Hızı (VBR) Bit hızı kısıtlamaları kapsamında zaman içindeki kalite ve bit hızını dengeler
Sabit Bit Hızı (CBR) Kalite bitiminde bit hızını oldukça sabit tutmaya çalışır

Canlı yayın yerine dosya tabanlı videolar için CQ modunu kullanmanız önerilir. CQ modu için aşağıdaki FFmpeg komut satırı parametreleri kullanılır:

FFmpeg
-b:v <arg> Hedef bit hızı belirler (ör. 500 bin)
-minrate <arg>
-maxrate <arg>
Minimum ve maksimum bit hızını ayarlar.
-crf <arg> Maksimum kalite seviyesini ayarlar. Geçerli değerler 0-63, düşük sayılar ise daha kalitelidir.

Örneğin, aşağıdaki FFmpeg komutu, CQ modunu kullanarak ortalama kalite 750 kb/sn. ve maksimum kalite 33 ile sınırlanmış orta kalitede 640x480 bir video dosyası oluşturur.

ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 \
  -b:v 750k -crf 33 -c:v libvpx-vp9 -c:a libopus output.webm

Bit hızı, ulaşmak istediğiniz kaliteye ve videonun çözünürlüğüne göre değişir. Bit hızlarına yönelik, farklı çözünürlüklerdeki önerilerin tamamına buradan ulaşabilirsiniz.

Kalite ve Hız Ayarları

Video sıkıştırma, çıkışın kalitesi ile oluşturulması için geçen süre arasındaki dengedir. Genel olarak, kodlamaya daha fazla zaman ayırarak daha yüksek kaliteyi elde edebilirsiniz. Ancak mümkün olan en yüksek kaliteyi elde etmek için gereken süre pratik olmayabilir.

VP9, kalite ve hızı dengelemek için çeşitli ayarlar sunar:

  • Kalite ayarı, kodlayıcıya videoyu sıkıştırmak için uyguladığı yaklaşımı bildirir. Kullanılabilir modlar en iyi, iyi ve gerçek zamanlıdır.

  • Mesaj dizisi ayarları, kodlayıcının videoyu kodlamak için birden fazla CPU ileti dizisi kullanmasına olanak tanır. Bu ayarlar kaliteyi biraz düşürebilir, ancak kodlama ve kod çözme hızını önemli ölçüde iyileştirebilir.

Bu iki ayar türü, çeşitli komut satırı parametreleri tarafından kontrol edilir:

FFmpeg
-threads Kodlama sırasında kullanılacak ileti dizisi sayısını gösterir.
-quality good, best veya realtime olarak ayarlanabilir
-speed Bu parametrenin, kalitenin good veya realtime olarak ayarlanmasına bağlı olarak farklı anlamları vardır. 0-4 hız ayarları good ve best bölgelerinde VoD için geçerlidir, 0 en yüksek kalite, 4 en düşük fiyattır. Realtime geçerli değer: 5-8; düşük sayılar daha yüksek kalite anlamına gelir
-tile-columns Karo, videoyu dikdörtgen bölgelere böler. Böylece kodlama ve kod çözme için birden çok mesaj dizisine olanak tanır. Karo sayısı her zaman ikinin kuvvetidir. 0=1 karo, 1=2, 2=4, 3=8, 4=16, 5=32.

Aşağıdaki FFmpeg komutu, kalite 'good' hızı ise 0 (yüksek kalite) olarak ayarlanmış 640x480 boyutunda bir dosya oluşturur:

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

Kalite ve hız ayarları seçenekleriniz, çözünürlük ve kullanılabilir işleme gücüne göre değişiklik gösterebilir. Önerilerin tam listesini bir sonraki bölümde bulabilirsiniz.