Temel Kodlama
Video Sıkıştırmayla İlgili Temel Bilgiler
Bu bölümde, VP9 kodlamasıyla ilgili temel seçenekler (ör. kare boyutu, temel bit hızı kontrolü ve kalite) ele alınmaktadır.
Video sıkıştırma konusunda yeniyseniz video sıkıştırmanın gerekliliği ve nasıl çalıştığı hakkında daha fazla bilgi edinmek için bu videoyu izleyebilirsiniz.
Basit Kodlama
Aşağıdaki FFmpeg komutu, bir giriş dosyasını Opus sesli VP9 videosuna dönüştürür. Bu, varsayılan ayarları kullanan olası en basit kodlamadır.
ffmpeg -i tears_of_steel_1080p.webm -c:v libvpx-vp9 -c:a libopus output.webm
Bu FFmpeg kodlamasında aşağıdaki komut satırı parametreleri kullanılır:
FFmpeg | |
---|---|
-i <filename> |
Giriş dosyasının adını belirtir. |
-c:v libvpx-vp9 |
FFmpeg'e VP9 videosu oluşturmasını söyler. |
-c:a libopus |
FFmpeg'e Opus ses oluşturmasını söyler. |
output.webm |
Çıkış dosyasının adını belirtir. |
FFmpeg, oluşturulacak dosyanın türünü kullandığınız çıkış dosyası adından çıkarır. Bu örnekte, output.webm
istediğimiz için FFmpeg bir WebM dosyası oluşturacaktır.
Çözünürlük
Her videonun bir kare boyutu (piksel genişliğini ve yüksekliğini gösterir) vardır. VP9 kodlaması için çıkış video çerçeve boyutunu kontrol etmek üzere aşağıdaki FFmpeg komut satırı parametresi kullanılabilir:
FFmpeg | |
---|---|
-vf scale=<width>x<height> |
Çerçeve genişliği ve yüksekliği |
Örneğin, aşağıdaki FFmpeg komutu 640x480 boyutunda bir VP9 WebM videosu oluşturur.
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 kalitede olur ancak daha yüksek çözünürlükler daha fazla bant genişliği ve çözme için daha fazla işlem gücü gerektirir ve eski cihazlarda desteklenmeyebilir. VP9 için 640x480, çok çeşitli mobil ve web cihazları için güvenli bir çözünürlük olarak kabul edilir.
Bit hızı
VP9, birkaç farklı bit hızı modunu destekler:
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. |
CQ modu, canlı yayın yerine dosya tabanlı video için önerilir. 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-63 arasındadır. Daha düşük sayılar daha yüksek kaliteyi ifade eder. |
Örneğin, aşağıdaki FFmpeg komutu, CQ modunu kullanarak 640x480 çözünürlüğünde, orta kalitede bir video dosyası oluşturur. Bu dosyanın ortalama bit hızı 750 kbps, maksimum kalite ise 33 ile sınırlıdır.
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ı, elde etmek istediğiniz kaliteye ve videonun çözünürlüğüne bağlı olarak değişir. Çeşitli çözünürlüklerdeki bit hızları için önerilerin tamamını burada bulabilirsiniz.
Kalite ve Hız Ayarları
Videoyu sıkıştırmak, çıktı kalitesi ile oluşturma süresi arasında bir denge kurmayı gerektirir. Genel olarak, kodlama için daha fazla süre tanıyarak her zaman daha yüksek kalite 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 arasında denge kurmak için çeşitli ayarlar sunar:
Kalite ayarı, kodlayıcıya videoyu sıkıştırmak için kullanacağı yaklaşım konusunda talimat verir. En iyi, iyi ve anlık olmak üzere üç mod vardır.
İş parçacığı ayarları, kodlayıcının videoyu kodlamak için birden fazla CPU iş parçacığı kullanmasına olanak tanır. Bu ayarlar kaliteyi biraz düşürebilir ancak kodlama ve kod çözme hızını önemli ölçüde artırabilir.
Bu iki tür ayar, çeşitli komut satırı parametreleriyle kontrol edilir:
FFmpeg | |
---|---|
-threads |
Kodlama sırasında kullanılacak iş parçacığı sayısını belirtir. |
-quality |
good , best veya realtime olarak ayarlanabilir. |
-speed |
Bu parametrenin anlamı, kalitenin good veya realtime olarak ayarlanmasına bağlı olarak değişir. Hız ayarları 0-4 , good ve best 'deki VOD'lar için geçerlidir. En yüksek kalite 0 , en düşük kalite ise 4 'dir. Realtime geçerli değerleri 5-8 'dir. Daha düşük sayılar, daha yüksek kalite anlamına gelir. |
-tile-columns |
Döşeme, videoyu dikdörtgen bölgelere böler. Bu sayede kodlama ve kod çözme için çoklu iş parçacığı kullanılabilir. Parça sayısı her zaman 2'nin kuvvetidir. 0 =1 döşeme, 1 =2, 2 =4, 3 =8, 4 =16, 5 =32. |
Aşağıdaki FFmpeg komutu, kalite "iyi" ve hız 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ıyla ilgili tercihleriniz çözünürlüğe ve kullanılabilir işlem gücüne bağlı olarak değişebilir. Önerilerin tam listesini bir sonraki bölümde bulabilirsiniz.