VOD için Önerilen Ayarlar
Kullanım amacı
Bu bölümde, dosyaya dayalı kodlama (yani canlı olmayan) gerçekleştirilirken VP9 kodlama ayarları için öneriler sunulmaktadır.
Bu öneriler aşağıdaki hedefler için tasarlanmıştır:
- Kalite ile kodlama hızı arasında denge
- Makul kaliteye ulaşmak için minimum bit hızı
- Çok çeşitli içerik türlerine uygun ayarlar
Bu öneriler aşağıdakileri yapmaz:
- Adres kodlama
- Belirli içerik türleri (ör. hareketli çekim spor görüntüleri) için optimize etme
- Belirli cihaz veya ağ gereksinimlerinin ayarlarını yapılandırma
Tek Çözünürlüklü Kodlama
VP9, küçük çözünürlüklerden 4K'ya kadar çeşitli çerçeve boyutlarını destekler. Daha büyük kare boyutları daha yüksek kalite sunar. Ancak bu boyutların sağlanması için daha fazla bant genişliği ve daha fazla işlem gücü gerekir.
Tek bir çözünürlük oluşturuyorsanız 640x480, geniş bir web ve mobil cihaz yelpazesi için güvenli bir seçenektir. Aşağıdaki FFmpeg komut satırı parametreleri, 750 kb/sn'de tek çözünürlüklü bir dosya oluşturmanıza olanak tanır.
-vf scale=640x480 -b:v 750k -quality good -speed 0 -crf 33 \
-c:v libvpx-vp9 -c:a libopus output.webm
Çoklu Çözünürlüklü Kodlama
Birden fazla çözünürlüğü hedeflemeyi planlıyorsanız veya yayınlama ağınız belirli bir bant genişliğine sahipse birden fazla çözünürlük oluşturmanız önerilir. Ardından oynatıcınız izleyiciye hangi çözünürlüğün gönderildiğini kontrol edebilir.
Çoklu çözünürlük video kodlamaları, genellikle uyarlanabilir bit hızı akışında kullanılır. Burada video oynatıcı, kullanıcının bant genişliğine göre çözünürlükler arasında gerçek zamanlı olarak geçiş yapar. Örneğin, Shaka Player çok çözünürlüklü kodlamaları oynatmanıza olanak tanır. Burada, her VP9 kodlama ayrı bir dosyadadır ve DASH manifesti her kodlama hakkında bilgi sağlar.
Videonun uyarlanabilir akış biçimlerinde paketlenmesi hakkında daha fazla bilgi için lütfen Shaka Paketleyici'ye bakın. Bu kılavuz, birden fazla çözünürlükde VP9 için kodlama ayarlarına odaklanacaktır.
Önerilen Ayarlar
Aşağıdaki ayarların hepsi, uyarlanabilir çözünürlüklere uygun olan kapsamlı bir küme sağlamak üzere çeşitli çözünürlüklerdeki dosyalar için kullanılabilir. 640x480 sürümünün iki sürümü vardır. Bunlardan biri düşük kalite (LQ), diğeri orta kalitededir (MQ).
Bit hızı
İsteğe bağlı görüntüleme için VP9 dosyalarını kodlarken Kısıtlı Kalite (CQ) modu önerilir. Bu kodlama modu, hem videonun maksimum kalitesinin hem de minimum ve maksimum bit hızını kontrol ederken bir hedef ortalama bit hızı belirtmenize olanak tanır.
Aşağıdaki bit hızları, web ve mobil dağıtımı için referans değer olarak önerilir. Bu öneriler, tüketici web ve mobil dağıtımı için uygun video kalitesine ulaşan bit hızını en aza indirir. Bunları, makul kaliteye ulaşabilecek bir 'düşük'bit hızı önerisi olarak düşünün.
Yukarıdaki örnekler için minimum bit hızının hedef bit hızının %50'si, maksimum hedef değerinin ise% 145'i olarak ayarlanması önerilir.
Kare Boyutu/Kare Hızı | Hedef Bit Hızı (VOD, Kb/sn.) | Min. Bit Hızı (%50) | Maks. Bit Hızı (%145) |
---|---|---|---|
24.25.30 @ 320x240p | 150 | 75 | 218) |
24.25.30 x 640x360p | 276 | 138) | 400 |
24.25.30 x 640x480p | 512 (LQ), 750 (MQ) | 256 (LQ) 375 (MQ) | 742 (LQ) 1088 (MQ) |
24.25.30 x 1280x720p | 1.024 | 512 | 1485 |
50.60 x 1.280x720p | 1.800 | 900 | 2610 |
24.25.30'da 1.920x1.080p | 1.800 | 900 | 2610 |
50.60 x 1920x1080p | 3.000 | 1.500 | 4350 |
24.25.30 x 2.560x1.440p | 6.000 | 3.000 | 8700 |
50.60 x 2.560x1.440p | 9000 | 4500 | 13050 |
24.25.30 @ 3840x2160p | 12000 | 6.000 | 17400 |
50.60 x 3.840x2.160p | 18000 | 9000 | 26100 |
FFmpeg'de, bit hızı aşağıdaki komutlarla kontrol edilir:
FFmpeg | |
---|---|
-b:v <arg> |
Bit hızını belirler (ör. 500 k) |
-minrate <arg> -maxrate <arg> |
Minimum ve maksimum bit hızını ayarlar. |
Örneğin, 640x480 içeriği kodlarken -b:v 750k -minrate 375 -maxrate 1088
komut satırını kullanabilirsiniz.
Kalite
CQ modunda da maksimum kalite seviyesini ayarlarsınız. Dosya tabanlı VP9 kodlaması için aşağıdaki kalite düzeyleri önerilir:
Kare Yüksekliği | Hedef Kalite (CQ) |
---|---|
240 | 37 |
360 | 36 |
480 | 34 (LQ) veya 33 (MQ) |
720 | 32 |
1080 | 31 |
1440 | 24 |
2160 | 15 |
FFmpeg'de kalite -crf
komutuyla ayarlanır. Örneğin, kaliteyi 33 olarak ayarlamak için -crf 33
komutunu kullanırsınız.
Çoklu geçiş kodlaması ve Kodlama Hızı
Dosya tabanlı kodlama, hız konusunda esneklik sağlar. Ayrıca, kaliteyi artırmak için aynı malzemede birden fazla geçiş gerçekleştirebilir ve her biri için hızlar seçebilirsiniz.
FFmpeg'de VP9 dosyaları kodlarken -quality
parametresini good
olarak ayarlamanız ve ardından ilk parametrenin hızını aşağıdaki tabloya göre -speed
parametresiyle ayarlamanız önerilir. Bu, kodlama zamanıyla çıkışın kalitesi arasında iyi bir denge sağlar.
Kare Yüksekliği | Hız (İlk Kart) | Hız (İkinci Kart) |
---|---|---|
240 | 4 | 1 |
360 | 4 | 1 |
480 | 4 | 1 |
720 | 4 | 2 |
1080 | 4 | 2 |
1440 | 4 | 2 |
2160 | 4 | 2 |
Örneğin, FFmpeg'deki ilk kart kodlama dizesi -quality good -speed 4
içerebilir.
Animasyon Karesi Aralığı
Animasyon kareleri arasında en fazla 240 karelik videoya (30 fps içeriği için 8 saniye) izin verilmesi önerilir. Animasyon kareleri kendi kendine yeten video kareleridir. Oluşturulacak diğer karelere güvenmezler ancak genellikle diğer kare türlerinden daha büyüktürler. Web ve mobil oynatma için animasyon kareleri arasındaki geniş aralık, kodlayıcının kaliteyi en üst düzeye çıkarmak için en iyi animasyon karelerini yerleşimini seçmesine olanak tanır.
FFmpeg kare cinsinden boşluk, -g
komutuyla kontrol edilir. Bu da kare sayısını belirtir. 240 kare için bu -g 240
olur.
Karo ve İplik Önerileri
Karo, video karesini birden fazla sütuna böler. Böylece kaliteyi biraz düşürür ancak kodlama performansını hızlandırır. Kutular en az 256 piksel genişliğinde olmalıdır. Bu nedenle kaç karo kullanılabilir?
Karo sayısına ve çıkış karesinin çözünürlüğüne bağlı olarak daha fazla CPU ileti dizisi yararlı olabilir. Genel olarak, çıkış çerçevesi boyutu çok küçük olduğunda birden çok mesaj dizisinin sınırlı değeri olur.
Çeşitli çözünürlüklerde karo ve iplik almak için aşağıdaki ayarlar önerilir.
Kare Boyutu | Karo sütun sayısı | Mesaj dizisi sayısı |
---|---|---|
320x240 | 1 (-tile-columns 0 ) |
2 |
640x360 | 2 (-tile-columns 1 ) |
4 |
640x480 | 2 (-tile-columns 1 ) |
4 |
1.280x720 | 4 (-tile-columns 2 ) |
8 |
1.920x1.080 | 4 (-tile-columns 2 ) |
8 |
2560x1440 | 8 (-tile-columns 3 ) |
16 |
3.840x2.160 | 8 (-tile-columns 3 ) |
16 |
FFmpeg'de karo sayısı, -tile-columns
parametresi ve -threads
tarafından oluşturulan ileti dizilerinin sayısı ile kontrol edilir. Örneğin, 640x480 kodlama, -tile-columns 2 -threads 4
komut satırını kullanır.
FFmpeg Komut Satırları
Yukarıdaki önerileri bir araya getirmekte, VP9 içeriğin kodlanması için aşağıdaki FFmpeg komutları kullanılabilir.
İlk geçiş ve ikinci geçiş komutlarının zincirlendiğini unutmayın. FFmpeg, ikinci geçiş komutundaki -y
bağımsız değişkeni, çıkış videosuyla ilk geçiş istatistikleri dosyasının üzerine yazmak istediğinde "Evet" yanıtını verir.
Ayrıca, 1280x720 çıkışına kadar kodlama kodlamaları için 1080p kaynağının kullanıldığını unutmayın. Daha büyük çıkış için 4k kaynak kullanılır.
320x240 (saniyede 24, 25 veya 30 kare)
ffmpeg -i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \ -minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \ -quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \ -pass 1 -speed 4 tos-320x240.webm && \ ffmpeg -i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \ -minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \ -quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \ -pass 2 -speed 1 -y tos-320x240.webm
- Giriş dosyası: tears_of_steel_1080p.webm (1920x800, 544,88 MB)
- Çıkış dosyası: tos-320x240.webm (320x240, 21,73 MB)
640x360 (saniyede 24, 25 veya 30 kare)
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x360 -b:v 276k \
-minrate 138k -maxrate 400k -tile-columns 1 -g 240 -threads 4 \
-quality good -crf 36 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-640x360.webm && \
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x360 -b:v 276k \
-minrate 138k -maxrate 400k -tile-columns 1 -g 240 -threads 4 \
-quality good -crf 36 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-640x360.webm
- Giriş dosyası: tears_of_steel_1080p.webm (1920x800, 544,88 MB)
- Çıkış dosyası: tos-640x360.webm (640x360, 31,53 MB)
640x480 (Düşük Kalite, 24, 25 veya 30 kare/sn.)
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -b:v 512k \
-minrate 256k -maxrate 742k -tile-columns 1 -g 240 -threads 4 \
-quality good -crf 34 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-640x360-low.webm && \
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -b:v 512k \
-minrate 256k -maxrate 742k -tile-columns 1 -g 240 -threads 4 \
-quality good -crf 34 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-640x480-low.webm
- Giriş dosyası: tears_of_steel_1080p.webm (1920x800, 544,88 MB)
- Çıkış dosyası: tos-640x480-low.webm (640x480, 51,18 MB)
640x480 (Orta Kalite, saniyede 24, 25 veya 30 kare)
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -b:v 750k \
-minrate 375k -maxrate 1088k -tile-columns 1 -g 240 -threads 4 \
-quality good -crf 33 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-640x360-medium.webm && \
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -b:v 750k \
-minrate 375k -maxrate 1088k -tile-columns 1 -g 240 -threads 4 \
-quality good -crf 33 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-640x480-medium.webm
- Giriş dosyası: tears_of_steel_1080p.webm (1920x800, 544,88 MB)
- Çıkış dosyası: tos-640x480-medium.webm (640x480, 69,27 MB)
1280x720 (saniyede 24, 25 veya 30 kare)
ffmpeg -i tears_of_steel_1080p.webm -vf scale=1280x720 -b:v 1024k \
-minrate 512k -maxrate 1485k -tile-columns 2 -g 240 -threads 8 \
-quality good -crf 32 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-1280x720-24-30fps.webm && \
ffmpeg -i tears_of_steel_1080p.webm -vf scale=1280x720 -b:v 1024k \
-minrate 512k -maxrate 1485k -tile-columns 2 -g 240 -threads 8 \
-quality good -crf 32 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-1280x720-24-30fps.webm
- Giriş dosyası: tears_of_steel_1080p.webm (1920x800, 544,88 MB)
- Çıkış dosyası: tos-1280x720-24-30fps.webm (1280x720, 98,2 MB)
1280x720 (saniyede 50 veya 60 kare)
ffmpeg -i tears_of_steel_1080p.webm -vf scale=1280x720 -b:v 1800k \
-minrate 900k -maxrate 2610k -tile-columns 2 -g 240 -threads 8 \
-quality good -crf 32 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-1280x720-50-60fps.webm && \
ffmpeg -i tears_of_steel_1080p.webm -vf scale=1280x720 -b:v 1800k \
-minrate 900k -maxrate 2610k -tile-columns 2 -g 240 -threads 8 \
-quality good -crf 32 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4-y tos-1280x720-50-60fps.webm
- Giriş dosyası: tears_of_steel_1080p.webm (1920x800, 544,88 MB)
- Çıkış dosyası: tos-1280x720-50-60fps.webm (1280x720, 157,1 MB)
1920x1080 (saniyede 24, 25 veya 30 kare)
ffmpeg -i tearsofsteel_4k.mov -vf scale=1920x1080 -b:v 1800k \
-minrate 900k -maxrate 2610k -tile-columns 2 -g 240 -threads 8 \
-quality good -crf 31 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-1920x1080-24-30fps.webm && \
ffmpeg -i tearsofsteel_4k.mov -vf scale=1920x1080 -b:v 1800k \
-minrate 900k -maxrate 2610k -tile-columns 3 -g 240 -threads 8 \
-quality good -crf 31 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-1920x1080-24-30fps.webm
- Giriş dosyası: tearsofsteel_4k.mov (3840x1714, 6,76 GB)
- Çıkış dosyası: tos-1920x1080-24-30fps.webm (1920x1080, 151,51 MB)
1920x1080 (saniyede 50 veya 60 kare)
ffmpeg -i tearsofsteel_4k.mov -vf scale=1920x1080 -b:v 3000k \
-minrate 1500k -maxrate 4350k -tile-columns 2 -g 240 -threads 8 \
-quality good -crf 31 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-1920x1080-50-60fps.webm && \
ffmpeg -i tearsofsteel_4k.mov -vf scale=1920x1080 -b:v 3000k \
-minrate 1500k -maxrate 4350k -tile-columns 3 -g 240 -threads 8 \
-quality good -crf 31 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-1920x1080-50-60fps.webm
- Giriş dosyası: tearsofsteel_4k.mov (3840x1714, 6,76 GB)
- Çıkış dosyası: tos-1920x1080-50-60fps.webm (1920x1080, 238,18 MB)
2560x1440 (saniyede 24, 25 veya 30 kare)
ffmpeg -i tearsofsteel_4k.mov -vf scale=2560x1440 -b:v 6000k \
-minrate 3000k -maxrate 8700k -tile-columns 3 -g 240 -threads 16 \
-quality good -crf 24 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-2560x1440-24-30fps.webm && \
ffmpeg -i tearsofsteel_4k.mov -vf scale=2560x1440 -b:v 6000k \
-minrate 3000k -maxrate 8700k -tile-columns 3 -g 240 -threads 16 \
-quality good -crf 24 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-2560x1440-24-30fps.webm
- Giriş dosyası: tearsofsteel_4k.mov (3840x1714, 6,76 GB)
- Çıkış dosyası: tos-2560x1440-24-30fps.webm 2560x1440, 533,54 MB)
2560x1440 (saniyede 50 veya 60 kare)
ffmpeg -i tearsofsteel_4k.mov -vf scale=2560x1440 -b:v 9000k \
-minrate 4500k -maxrate 13050k -tile-columns 3 -g 240 -threads 16 \
-quality good -crf 24 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-2560x1440-50-60fps.webm && \
ffmpeg -i tearsofsteel_4k.mov -vf scale=2560x1440 -b:v 9000k \
-minrate 4500k -maxrate 13050k -tile-columns 3 -g 240 -threads 16 \
-quality good -crf 24 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-2560x1440-50-60fps.webm
- Giriş dosyası: tearsofsteel_4k.mov (3840x1714, 6,76 GB)
- Çıkış dosyası: tos-2560x1440-50-60fps.webm 2560x1440, 664,04 MB)
3840x2160 (saniyede 24, 25 veya 30 kare)
ffmpeg -i tearsofsteel_4k.mov -vf scale=3840x2160 -b:v 12000k \
-minrate 6000k -maxrate 17400k -tile-columns 3 -g 240 -threads 24 \
-quality good -crf 15 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-3840x2160-24-30fps.webm && \
ffmpeg -i tearsofsteel_4k.mov -vf scale=3840x2160 -b:v 12000k \
-minrate 6000k -maxrate 17400k -tile-columns 3 -g 240 -threads 24 \
-quality good -crf 15 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -speed 4 -y tos-3840x2160-24-30fps.webm
- Giriş dosyası: tearsofsteel_4k.mov (3840x1714, 6,76 GB)
- Çıkış dosyası: tos-3840x2160-24-30fps.webm 3840x2160, 1,03 GB)
3840x2160 (saniyede 50 veya 60 kare)
ffmpeg -i tearsofsteel_4k.mov -vf scale=3840x2160 -b:v 18000k \
-minrate 9000k -maxrate 26100k -tile-columns 3 -g 240 -threads 24 \
-quality good -crf 15 -c:v libvpx-vp9 -c:a libopus \
-pass 1 -speed 4 tos-3840x2160-50-60fps.webm && \
ffmpeg -i tearsofsteel_4k.mov -vf scale=3840x2160 -b:v 18000k \
-minrate 9000k -maxrate 26100k -tile-columns 3 -g 240 -threads 24 \
-quality good -speed 4 -crf 15 -c:v libvpx-vp9 -c:a libopus \
-pass 2 -y tos-3840x2160-50-60fps.webm
- Giriş dosyası: tearsofsteel_4k.mov (3840x1714, 6,76 GB)
- Çıkış dosyası: tos-3840x2160-50-60fps.webm 3840x2160, 1,56 GB)