Hangi H.264 / H.265 video sıkıştırma parametreleri daha iyi sıkıştırma ile DVD'ye eşdeğer kalite sağlar?


11

Videoları sabit diskte saklamak için MP4 dosyalarına dönüştürerek saklamak istediğimde kurtulmak istediğim bir DVD video disklerim var.

Modern H.264 AVC ve H.265 HEVC sıkıştırma algoritmalarının DVD standardı MPEG2 üzerindeki üstünlüğünü göz önünde bulundurarak DVD orijinal kalitesinin ~% 99'unu kaydederken videoyu sıkıştırarak sabit disk alanından tasarruf etmeyi umuyorum.

Ne

  • H.264 (FFMPEG + libx264) sıkıştırma parametreleri
  • H.265 (FFMPEG + libx265) sıkıştırma parametreleri

hedefime ulaşmak için kullanmalı mıyım?

Parametrelerle CBR / CRF değerleri, ön ayar (veryslow / plasebo yok), bayraklar vb.

Not: Davayı kullanarak kısıtlamayı -pix_fmt yuv420pve -profile:v baseline -level 3.0dosyanın eski donanım kod çözücü yongalarına dayanan eski cihazlar da dahil olmak üzere tüm cihazlarda Tamam oynatılmasını sağlamak istiyorum. -gDüşük hız ve yüksek gecikmeli ortam kullanımını kolaylaştırmak için biraz artırılmış I kare frekansı ( parametre kullanılarak) kullanılması da arzu edilir.

HEVC için, donanım destekli H.265 sunan herhangi bir cihaz görmediğim için, donanım hızlandırmalı düzgün oynatmayı sağlayacak parametreleri kullanmayı tercih ederim, ancak bu kısıtlamaya odaklanmak istemiyorum. henüz kod çözme.

Yanıtlar:


14

Bunun için her zaman en son ffmpeg sürümünü kullanmanız ve tercihen kendiniz derlemeniz gerektiğini unutmayın . Bu, ses kodlaması için en yeni libx265 ve libfdk-aac öğelerine erişmenizi sağlar.

Ayrıca, ~ 10 MBit / sn DVD'den H.264 video için yaklaşık 1-2 MBit / sn ve H.265 video için 0,5-1 MBit / sn'ye giderseniz veri hızı tasarrufları oldukça sert olacaktır. Aşağıdaki adımlarda kalitenin değiştirilmesi bit hızlarını etkileyebilir, ancak yine de veri azaltımı önemli olmalıdır.

H.264

Kalite / hız kontrolü için CRF modunu sabit bit hızı yerine libx264'de kullanmak istersiniz . CRF kullanmak, orijinal video çözünürlüğünden veya karmaşıklığından bağımsız olarak ortalama bir kalitenin korunmasını sağlar. Sabit bit hızı, yalnızca iletim ortamı tarafından kısıtlandığınızda gerçekten yararlıdır (örneğin, sabit sürücü hızı, İnternet çıkışı).

CRF değerini seçmek zor kısmıdır. Çıktıya bakmanızı gerektirir. Libx264 (23) için varsayılan değer, boyut ve kalite arasında oldukça iyi bir denge sağlar. Ancak orijinal kaynağınızın zaten sıkıştırılmış olduğu (ve Blu-ray'lara kıyasla çok iyi bir kalitede olmadığı) göz önüne alındığında , CRF'yi 20 gibi biraz daha düşük olacak şekilde değiştirmek isteyebilirsiniz. Bu, gerekli bit hızını yaklaşık üçte bir oranında artıracaktır. .

Ne kadar beklemek istediğinize göre ön ayarı seçin. slowburada iyi bir değer gibi görünüyor.

ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4

Libfdk-aac mevcut değilse dahili ffmpeg AAC kodlayıcı kullanılabilir. Yerine -c:a aac -strict experimental -b:a 128kkullanın -c:a libfdk_aac -vbr 4.

H.265

Araştırmalar, HEVC kullanımının H.264'e kıyasla% 74'e kadar bit hızı tasarrufu sağlayacağını göstermektedir. Bu, Ultra HD sekansların öznel görüntüleme verilerine dayanmaktadır. Tabii ki, kaynak içeriğin zamansal karmaşıklığına bağlıdır ve kaydedilen veri miktarı kodlanması zor diziler için yüksek olmayacaktır. Her iki durumda da % 50 veri azaltmanın kesinlikle mümkün olduğunu güvenle söyleyebilirsiniz .

Libx265 için varsayılan CRF 28'dir. Aynı kaynak içeriği kullanıldığında, CRF 23'teki libx264 ile karşılaştırıldığında yaklaşık bit hızıyla sonuçlanır. Bu, gerçek bit hızına bakılmaksızın, yani H.264 sürümü 1,5 MBit / s alırsa, H.265 yaklaşık 750 kBit / s kullanır, ancak başka bir dizi için 750 kBit / s'ye karşılık 350 kBit / s'dir. DVD-PAL çözünürlükte birkaç dizide çalıştırdım ve kalite açısından farkı anlayamadım.

ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4

Daha fazla bilgi için, ilgili kaynaklar şunlardır:


Güzel bir cevap için teşekkürler. Bu arada pratikte keyint ne anlama geliyor?
Ivan

1
keyintX264 / X265, yani kod çözücü yenileyebilir hangi kareler arasındaki aralık IDR-çerçeveler arasındaki aralık vardır. Arada, örneğin bir kare kesimi meydana geldiğinde, anahtar kare olmayan I-kareler olabilir. -gYanılmıyorsam parametreye eşdeğerdir .
slhck

BTW, @slhck, cevabınızda beni şaşırtan bir şey - AAC kodlama kütüphanesi seçimine verdiğiniz dikkat. Hepsinin neredeyse aynı olduğunu ve çok az veya hiç fark olmadığını, işlerin ses bölümünde basit olduğunu düşünürdüm (sadece bit hızını seçin ve gidin ve MP3, AAC ve Vorbis gibi tüm önemli kayıplı codec'lerin neredeyse veya tam olarak ses verdiğini 128 kbps ve üzerinde aynı). Yani libfdk-aac ve sıradan aac arasında dikkate değer bir fark var mı?
Ivan

1
@Ivan Zeranoe yapıları kesinlikle cevabımda -c:a aac -strict experimentalbelirtildiği gibi yapmanıza izin vermelidir . Katılıyorum, bunu Windows üzerinde oluşturmaya çalışmam.
slhck

2
@Ivan (1. yorum): Bkz. Ffmpeg-wiki : "Yüksekten alçağa üretilen kaliteye göre: libopus > libvorbis >= libfdk_aac > aac > libmp3lame >= libfaac >= eac3/ac3 > libtwolame > vorbis > mp2 > wmav2/wmav1Yalnızca AAC için: (Çünkü biraz kafa karıştırıcı, 3 kodlayıcı kullanılabilir): libfdk_aac > aac > libfaac> = işareti daha büyük veya aynı anlamına gelir kalite."
Golar Ramblar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.