LOL yayın grubu gibi yüksek kaliteli / düşük boyutlu MP4'leri nasıl alabilirim?


20

Yayın grubu LOL, The Vampire Diaries'deki yayınlarını kodlamada mükemmel bir iş çıkarıyor (Annenizle Nasıl Tanıştım gibi diğer şovlarda bit hızı daha yüksek, bu yüzden bu etkili görünmüyor).

Yaklaşık 200 MB her ~ 45mins MP4 dosyası, inanılmaz kalite göz önüne alındığında.

Sadece hangi ayarları ve hangi yazılımı kullandıklarını merak ediyorum. MediaInfo kullanarak bu dosyalardan bilgi almaya çalıştım, sonra HandBrake ayarlarını kullanın, ama gerçekten başarılı olamadım.

Lütfen biri bana yardım edebilir mi? Kodlama / sıkıştırma hakkında fazla bilgim yok.

Yanıtlar:


28

Videoyu şifreleme (korsan) yönergelerine "sahne kılavuzları" denir. LOL bu gruplardan biri olan videolarının kılavuza uyduğundan emin olacak çeşitli yayın grupları tarafından imzalanmışlardır.

Scenerules.org sahne rehberlerinin bir listesini bulabilirsiniz . Aradığınız standart - yanılmıyorsam , videonuzun 1280 × 780 olduğunu varsayarak SD x264 TV Serbest Bırakma Standardı . HD videonuz varsa, muhtemelen 45 dakika boyunca 200 MB'de gerçekten iyi kalitede olmayacaksınız. Bu yaklaşık 600 kBit / s'ye çevrilir ve 720p için yeterli olur.

Kodlama araçlarına gelince, FFmpeg (Handbrake'in dayandığı) ile oldukça uzağa gidebilirsiniz . Tek suçlu, FFmpeg ve FAAC ses kullanımının bu sahne rehberi için yasaklanmış olması, ancak gerçekten katkıda bulunmadığınız sürece bu önemli değil.

Video kodlama konusunda önceden deneyiminiz yoksa ve bu anahtar kelimelerin tümü sizin için bir şey ifade etmiyorsa, lütfen aşağıdaki blog makalelerine / Süper Kullanıcı sorularına göz atın:

Temel olarak, kurallar Sabit Hız Faktörü kalite ayarıyla x264 kodlayıcıyı kullanmanız gerektiğini söyler . Yaptığı şey, sabit bir bit hızı ayarlamaktan oldukça farklıdır: CRF'yi, videoyu sabit bir kalitede kodlayacak x264'e ayarlayabilirsiniz.

Tipik CRF seviyeleri 18 ve 28 arasındadır ve serbest bırakma grubu, sıkıştırılması kolay malzemenin yüksek kalitede kodlanması için 19-20 önerilir. Bunu yaparken son dosya boyutunu önceden bilemezsiniz, ancak CRF kodlamasını yapmanın tüm amacı budur: Gerçek dosya boyutunu umursamıyorsunuz - sadece kaliteli olmak istiyorsunuz.

Bir kez kurduktan ffmpegve giriş videonuzu hazırladıktan sonra kodlama aslında oldukça basittir. Bununla birlikte, kaynak videonuzun yüksek kalitede olması gerektiğini unutmayın , aksi takdirde yeniden kodlamanın kalitesi yalnızca daha fazla bozulur.

İşte temel parametreler:

  • şununla x264 video:
    • CRF 19-20
    • slow profili (kodlama süresi pahasına daha iyi sıkıştırma verimliliği)
    • Birkaç sınırlama getiren H.264 seviye 3.1
    • Ölçek küçültme, bikubik (FFmpeg varsayılanı) dışındaki herhangi bir yeniden boyutlandırıcı ile yapılmalıdır. Örneğin, Lanczos kullanılabilir .
    • Kaynak için bir tuneayar (örneğin filmfilm benzeri içerik için)
  • AAC ses sistemi:
    • Değişken bit hızı kodlaması
    • 96 ve 160 kBit / s arasındaki bit hızı

Bu ffmpeg, aşağıdakine çevrilir:

ffmpeg -i input.mp4 \
-c:v libx264 -crf 19 -level 3.1 -preset slow -tune film \
-filter:v scale=-1:720 -sws_flags lanczos \
-c:a libfdk_aac -vbr 5 \
output.mp4

FFmpeg'de, AAC kodlama seçenekleriniz biraz sınırlıdır. AAC seçenekleriniz için buraya bakın ve daha fazla bilgi için FFmpeg ve AAC Kodlama Kılavuzu'na bakın.

Videonuz çok büyük olursa CRF'yi ayarlayabilirsiniz. ± 6 değerleri bit hızının yarısı / iki katı olur, bu nedenle 19 ile başlayıp 25'e giderseniz bit hızının yarısı ile sonuçlanırsınız. Sahne kuralları 24'ün üzerinde CRF'ye izin vermez, ancak muhtemelen aldırmazsınız.


2

Mediainfo'yu göndermediğiniz için bahsettiğiniz yayın grubuyla konuşamıyorum. Ancak, kompakt kodlar yapmak için bir kılavuz, bu da iyi bir kalite / boyut dengesine çarpmak anlamına geliyor.

HandBrake ve mevcut en iyi kaynakla başlamalısınız. Olarak kaynak bölümünde, (eylem ve ince ayrıntılı hem) kodlamak segmente kısa ama zordur seçin. Gelen Hedef bölümünde, seçmek libmkv . Gelen video sekmesi işaretini kaldırın kullanım seçenekleri gelişmiş (hala her duruma göre bu seçenekler durumda ekleyebilir fazla ayarlarla ) seçeneğini --rc=crfratecontrol, en yüksek --presetbilgisayarınız ayı (edebilirsiniz slowerya veryslow,) bir --tune(kaynak eşleştiğini filmveya animationörtmelisiniz) ve profili ve düzeyi auto/ olarak ayarlayın auto. Ardından çözünürlükle oynayın (yalnızca kaynak HD ise; resim ayarlarında, anamorfiği gevşek olarak ayarlayın ve bir sonraki yüksek çözünürlükten ve aşağıdan eksenlerden birini değiştirin) ve --crfkısa segmentiniz için kalite ve bit hızı arasında iyi bir uzlaşma bulana kadar. Crf'nin kodlama ayarlarınızın geri kalanına bağlı olduğunu unutmayın, bu yüzden değiştirdiğiniz son video ayarı olmalıdır. Gelen Ses , ile gitmek Vorbis de 160Kbps (bu AoTuV kullanacak -q5başka ayar yapmadan saydamlığı elde). Gelen diğer sekmelerde, ihtiyacınız olabilecek her şeyin korunup korunmadığını kontrol edin (bölüm işaretleri, altyazı parçaları, meta veriler vb.). Memnun kaldığınızda, bölümün geri kalanını kodlamak için bu ayarları kullanabilirsiniz; ortalama bit hızı zor segmentten çok daha düşük olmalıdır. Ayarlarınızdan emin olduğunuzda, bunları tüm mevsimleri kodlamak için kullanabilirsiniz.

Yukarıdaki adımlar kompaktlığı nasıl geliştirir: libmkv size otomatik olarak daha fazla kodek, profil ve sürüme erişim sağlar, kodlayıcıyı tutmak için herhangi bir oynatma kısıtlaması olmayacağı anlamına gelir. Kısa bir segment (birkaç saniye), şeyleri düzeltmek ve sonuçlara bakmak için çok daha fazla zaman verir. Tune, kaynağın neye benzemesi gerektiği için psiko-görsel (algılanan) kaliteyi optimize eder. Yüksek ön ayarlar, kodlama süresi pahasına kompaktlığı artırır (bu, zor segmentinizde fark edilmeyebilir, ancak diğer sahnelerin çoğunda bit hızını artıracaktır). CRF ratecontrol, kodlamanızın belirli bir kaliteyi hedeflemek için bit hızını değiştireceği ve daha zorlu bölümlerin daha fazla alan alacağı anlamına gelir.

Orijinal çözünürlüğü koruyorsanız, denoising filtresi de çok yararlı olabilir. Bunu hafif tutmak isteyeceksiniz, çünkü amaç algılanabilir bir kaynak hatasını temizlemek değil, kaliteyi belirgin bir şekilde düşürmeden sıkıştırılabilirliği artırmaktır. HandBrake'ın x264 --nrve en son teknoloji ürünü denoizerler arasında bulunan HQDN3D denoiser'ı kullanmak için bir kılavuz .


2

FFmpeg TV

Slhck cevabına dayanarak , doğru ffmpegparametreleri çağırmak için bu basit Python çözümünü oluşturdum . En son senaryolara göre 2016 TV standartları .

python3 ffmpeg-tv.py input.mp4 output.mkv

Tüm parametreleri ve varsayılan olarak neden bu şekilde ayarlandıklarını açıklayan kısa bir açıklamayı bulabilirsiniz.

  # 1.3) Providers which downscale 1080i to 720p (e.g. BellTV) are not allowed.
  # 5.10) Resized video must be within 0.5% of the original aspect ratio.
  scale="-1:-1" # <width>:<height>; -1 maintain ratio.

  # 4.1) Video must be H.264/MPEG-4 AVC encoded with x264 8-bit.
  video_encoder="libx264"

  # 4.4) Constant Rate Factor (--crf) must be used.
  # 4.4.1) CRF values below 18 and above 23 are never allowed.
  # http://slhck.info/video/2017/02/24/crf-guide.html
  # (lossless) 0 <- (better) 23 <- (worst) 51
  # ┌─────────────────┬───────┬───────────────────────────────────────────┐
  # │ Compressibility      │  CRF    │ General Examples                                      │
  # ├─────────────────┼───────┼───────────────────────────────────────────┤
  # │ High                 │ 18-19   │ Scripted, Talk Shows, Animation, Stand-Up             │
  # │ Medium               │ 20-21   │ Documentary, Reality, Variety, Poker                  │
  # │ Low                  │ 22-23   │ Sports, Awards, Live Events                           │
  # └─────────────────┴───────┴───────────────────────────────────────────┘
  crf="19"

  # 4.6) Settings cannot go below what is specified by preset (--preset) 'slow'.
  preset="slow"

  # 4.7) Level (--level) must be '4.1'.
  level="4.1"

  # 6.4) Only sharp resizers, such as Spline36Resize, BlackmanResize or LanczosResize/Lanczos4Resize,
  # must be used.
  # 6.4.1) Simple resizers, such as Bicubic, PointResize or Simple, are not allowed. 
  resizer="lanczos"

  # 4.17) Optional tuning (--tune) parameters allowed are: 'film', 'grain' or 'animation'. 
  # /superuser/564402/explanation-of-x264-tune
  # film – intended for high-bitrate/high-quality movie content. Lower deblocking is used here.
  tune="film"

  # 8.1) Audio must be in the original format provided.
  # 8.1.1) Transcoding audio is not allowed.
  # 8.2) Multiple language audio tracks are allowed.
  # Since we cannot ensure that the external content is in an acceptable TV format, we'll recode
  # it into aac. We're just playing safe here.
  # 
  # FFmpeg supports two AAC-LC encoders (aac and libfdk_aac) and one HE-AAC (v1/2) encoder
  # (libfdk_aac). The license of libfdk_aac is not compatible with GPL, so the GPL does not permit
  # distribution of binaries containing incompatible code when GPL-licensed code is also included.
  # libfdk_aac is "non-free", and requires ffmpeg to be compiled manually.
  # Second best encoder is the native FFmpeg AAC encoder. (aac)
  audio_encoder="aac"

  # Audio quality (bit rate).
  # Use either VBR or CBR. VBR is the easiest.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_vbr
  # VBR: Target a quality, rather than a specific bit rate. 1 is lowest quality and 5 is highest
  # quality.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
  # http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Bitrate_Modes
  # CBR: kbps
  vbr="5"
  cbr=None

  # 8.2) Multiple language audio tracks are allowed.
  # 8.2.1) The default audio track must be the language intended for release (e.g. An English release
  # containing English, German and Russian audio tracks, must have the default flag set on the English
  # track).
  # https://trac.ffmpeg.org/wiki/Map
  # Include "all" inputs to the output: -map 0
  map="0"

Tüm kaynak kodu için ffmpeg-tv.py dosyasına bakın .

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.