Bir .MOV dosyasının boyutunu azaltmak için hangi parametrelere bakmalıyım?


12

Canon 60D cihazım video kaydederken .MOV dosyaları oluşturur ve .MOV kapsayıcısında H264 video akışı ve PCM ses akışı olduğunu öğrendim.

Bazı videolarıma bakmak için ffmpeg ve GSpot kullandım ve oldukça yüksek bit hızları gibi görünüyor (640x480 için 22.000kbps, 1920x1080 için 45.000).

Dosyaların boyutunu azaltmak istiyorum, ancak kaliteyi oldukça yüksek tutuyorum. Düşünebildiğim en basit şeyle oynadım, bit oranını düşürdüm ve beklediğim şeyi yapıyor: bit hızını ikiye böldüm ve dosya boyutu yaklaşık yarı. Ama "iyi" bir hedef bit hızını belirlemenin bir yolu olup olmadığını veya değişken bit hızını yapmaya çalışmanın bir anlamı olup olmadığını merak ediyorum.

Yanıtlar:


21

Ama merak ediyorum "iyi" bir hedef bit hızı belirlemenin bir yolu var mı…

İyi bir hedef bit hızı şunlardan biri olan bit hızıdır:

  • hesaplamak oldukça kolay olan malzemeyi akışla izlediğiniz ağ tarafından desteklenir (örn. 3G ağı, ev WiFi, vb.)
  • Sana iyi görünüyor , ki bu çok öznel bir ölçü

22 Mbit / s veya 45 Mbit / s, ortalama bir kullanıcı için ve özellikle h.264 gibi zaten sıkıştırılmış videolar için oldukça yüksektir. Kesinlikle devam edebilir ve her zaman ne kadar depolama kapasitesi ve ne kadar kalite kaybetmek istediğinize bağlı olarak bit hızını "aklı başında" bir değere düşürebilirsiniz.

Gerçekten boyuta ihtiyacınız yoksa veya düzenlemek için işleme yeteneğine sahip değilseniz 1080p videoyu 720p olarak yeniden boyutlandırabilirsiniz.

… Veya değişken bit hızı yapmaya çalışmanın bir anlamı varsa

Sabit bit hızının noktası, iletilen videonun maksimum bit hızını sınırlayan bir darboğazın bulunduğu bir akış ortamı senaryosuna uyum sağlamaktır. Günümüzün multimedya dünyasında bu artık bir anlam ifade etmiyor.

Bir videoyu saniyede sabit bir bit miktarına sıkıştırdığınızda, temel olarak bir kodlayıcıya aynı zaman dilimini kodlamak için her zaman aynı miktarda bit kullanmasını söylersiniz. Bu en iyi yaklaşım mı? Şimdiye kadar tahmin edebileceğiniz gibi, öyle değil. El Freni'nden CRF Kılavuzundan Alıntı (Daha sonra buna geri döneceğim):

Göz hareketsiz nesnelerde hareket halindekinden daha fazla ayrıntı algılar. Bu nedenle, bir video kompresörü hareket halindeyken daha fazla sıkıştırma uygulayabilir (daha fazla ayrıntı bırakabilir) ve hareket halindeyken daha az sıkıştırma uygulayabilir (daha fazla ayrıntı saklayabilir). Sübjektif olarak, video daha yüksek kalitede görünecektir.

Yani, does zaman yapabilirsiniz değişken bit hızı kullanmak mantıklı. Sabit bit hızlı bir videonun aynı dosya boyutunda bile videonun daha iyi görünmesini sağlayacaktır.

Dahası, çoğu kodlayıcı - en ünlü olanı x264 - sabit bir bit hızı kullanmasını söylediğinizde genellikle çok kötü performans gösterir. Bir karede kaç bit harcamak istedikleri anlamında onlara biraz daha "özgürlük" vermek daha iyidir. Sonuçta, bu kodlayıcının işi, sen değil. Buna "sabit kalite" denir.


Bu kadarı yeterli - pratikte bu ne anlama geliyor? Videoları kodlamak için FFmpeg kullanıyorsanız, yeterince iyi bir araç kullanıyorsunuz demektir. Şimdi x264 yüklüyse ve her ikisinin de en son sürümünü kullanıyorsanız, şu anda ücretsiz olarak kullanılabilen en iyi kodlayıcılardan birini kullanıyorsunuz. Sabit bir bit hızıyla kodlamak yerine, x264'ün ne kadar harcamak istediğinizi seçmesine izin verin. Bunu Sabit Hız Faktörü seçeneğini kullanarak yapın .

Çok basit bir durumda bu, 17 ile 23 arasında bir değer ayarlamak anlamına gelir. MOV4 yerine çıktı kabı olarak MP4'ü seçiyorum çünkü yeniden çoğaltma için daha iyi araçlar var:

ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4

Değer ne kadar düşük olursa, kalite o kadar iyi ve çıktı o kadar büyük olur. Tam tersi, kalite ne kadar yüksek olursa, kalite o kadar düşük olur. Aynı zamanda, elbette ihtiyaç duyulan ortalama bit hızını da düşüreceksiniz. Kontrol x264 kodlama kılavuzu hakkında daha fazla bilgi için ffmpeg.

Göreviniz şimdi bir CRF değeri bulmaktır:

  • toplam bit hızını karşılayabileceğiniz noktaya düşürür
  • kaliteyi çok fazla azaltmaz, böylece video hala iyi görünür

Evet, bu çok sayıda kodlama ve deneme yanılma içerir, ancak bu videoyu ayarlarken ve kodlarken günlük iştir.

Oh, ve komut satırını beğenmediyseniz, El Freni tamamen aynı şeyi yapan ücretsiz bir çapraz platform aracıdır. Hatta bir CRF kaydırıcısı var:

resim açıklamasını buraya girin


Hareketli nesne ayrıntılarıyla ilgili olarak, video sıkıştırmada düzenli olarak abartılı değil mi, yoksa sadece kötü örnekleri hatırlıyor muyum? Fotoğraf makinesi kaymayı durdurduğunda vb. Ayrıntılarda gözle görülür bir artış gibi
Daniel Beck

Bu aslında oldukça yaygındır ve “dengeleyici” sorunlar olarak bilinir. Örneğin, tıkanıklığın kaybolduğunu gördüğünüzde. Bu, hareket farkı değişikliğinin hız kontrolünün uyum sağlayamayacağı kadar hızlı olduğu düşük bit oranlı bir senaryo için tipiktir. İki geçişli kodlamanın burada yardımcı olabileceğini varsayıyorum, ama muhtemelen çok fazla değil. Bu tür eserlerden tamamen kurtulmanın mümkün olup olmadığını bilmiyorum.
slhck

Geçmişte Handbrake'i kullandım, DV avis'i bir video kameradan DivX ve mp4'e dönüştürdüm, ancak .mov'dan h264 mp4'lere gitmek için seçeneklerimi anlamaya çalışırken bir komut satırı ile çalışmayı daha kolay buluyordum. DivX oluştururken -crf ile eşdeğer mi? (ya da bu başka bir soru olmalı mı?)
Ward - Monica'yı yeniden görevlendir

@ Kullanabilirsiniz -qscale. Mpeg * için ölçek 1-31 (31 en kötü kalitedir) arasında doğrusaldır ve değerin iki katına çıkarılması bit hızının yaklaşık yarısı ile sonuçlanır. 2 değeri kabaca görsel olarak kayıpsız olarak kabul edilebilir. 3-5 genellikle iyi bir dengedir, ancak elbette kalite özneldir ve sadece denemeniz gerekir.
llogan

Güzel! Bazı sorular. (1) "1080p videodan 720p'ye" kadar bir sayı ve ardından "p" ne anlama gelir? (2) x264 değişken bir bit hızı kullanır, ancak neden ffmpeg'deki seçeneğe Sabit Hız Faktörü denir? Teşekkürler!
Tim

2

HandBrake CLI'yı deneyin

Bazı MOV dosyalarını küçültmek istedim ve video seçenekleri ile ilgili tüm detayları öğrenmek istemedim. El Freni CLI kullandığım şey. Ön ayarlar güzel:

HandBrake, MacGui'deki yerleşik ön ayarlarla tamamen aynı olan sabit kodlanmış, fabrikada yeni ön ayarlar sunar.

Benim durumumda, bu güzel çalıştı:

HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"

Önceden ayarlanmamış olarak, çıktı çok küçüktü ama kaliteli değildi. "Normal" ön ayarı bana iyi geldi, ancak diğer mevcut HandBrakeCLI --preset-listseçenekleri görebilir veya isterseniz tüm seçenekleri kendiniz değiştirebilirsiniz.

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.