Як я можу отримати MP4 з високою якістю / низьким розміром, як група випуску LOL?


20

Група випусків LOL чудово справляється з кодуванням своїх релізів у щоденниках вампірів (на інших шоу, наприклад, як я зустрів вашу матір, бітрейт вище, тому це не здається ефективним).

Близько 200 МБ кожного ~ 45 хв MP4-файл, вражаюча якість враховуючи.

Мені просто цікаво, які налаштування та яке програмне забезпечення вони використовують. Я намагався отримати інформацію з цих файлів за допомогою MediaInfo, потім скористайтеся налаштуваннями в HandBrake, але мені це не вдалося.

Може хто-небудь, будь ласка, допоможе мені? У мене мало знань про кодування / стискання.

Відповіді:


28

Вказівки щодо кодування (піратського) відео називаються "посібниками по сценах". Вони підписуються різними групами випусків, які забезпечать відповідність їхніх відео керівництву, LOL є однією з цих груп.

Ви можете знайти список посібників зі сцени scenerules.org . Стандарт, який ви шукаєте, це - якщо я не помиляюсь - стандарт стандартного випуску телевізора SD x264 , припускаючи, що ваше відео 1280 × 780. Якщо у вас є HD відео, ви, мабуть, не отримаєте дійсно хорошої якості в 200 Мб протягом 45 хвилин. Це було б приблизно 600 кбіт / с, і цього вистачить на 720p.

Що стосується інструментів кодування, ви можете досить далеко за допомогою FFmpeg (на якому заснований Handbrake). Єдиний винуватець у тому, що використання аудіо FFmpeg і FAAC заборонено для цього посібника по сцені, але, якщо ви насправді не зробите свій внесок, це не має значення.

Якщо у вас немає попереднього досвіду кодування відео, і всі ці ключові слова для вас нічого не означають, перегляньте наступні статті блогу / Супер користувацькі питання:

В основному правила говорять, що ви повинні використовувати кодер x264 з налаштуванням якості коефіцієнта постійної швидкості . Це робить зовсім інше, ніж встановлення постійного бітрейта: ви можете встановити CRF так, щоб x264 кодував відео з постійною якістю.

Типовий рівень CRF становить від 18 до 28, і група випуску рекомендує 19–20 для високоякісного кодування матеріалу, який легко стискати. Ви не збираєтесь знати заздалегідь розмір файлу заздалегідь, але в цьому і полягає вся суть у виконанні кодування CRF: Вас не хвилює фактичний розмір файлу - ви просто хочете гарної якості.

Після того, як ви налаштуєте ffmpegі підготуєте ваше вхідне відео, кодування насправді досить просте. Однак зауважте, що джерело відео має бути високоякісним, інакше повторне кодування лише значно погіршить його якість.

Ось основні параметри:

  • x264 відео з:
    • CRF 19–20
    • slow профіль (краща ефективність стиснення за рахунок часу кодування)
    • H.264 рівень 3.1, який встановлює кілька обмежень
    • Масштабування має бути здійснено за допомогою будь-якого резизера, окрім бікубічного (це за замовчуванням FFmpeg). Наприклад, можна використовувати ланцо .
    • tuneУстановка для джерела (наприклад , filmдля плівкового контенту)
  • Аудіо AAC з:
    • Кодування змінної швидкості передачі бітів
    • Швидкість передачі даних між 96 і 160 кбіт / с

У ffmpegданому випадку це означає:

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 ваш вибір для кодування AAC дещо обмежений. Ознайомтеся з вибором AAC, а також див. Посібник з кодування FFmpeg та AAC для отримання додаткової інформації.

Якщо ваше відео закінчиться занадто великим, ви можете налаштувати CRF. Значення ± 6 призведе до половини / подвоєння швидкості передачі бітів, тому якщо ви починаєте з 19 і переходите до 25, ви закінчите половину бітрейта. Правила сцени не дозволяють CRF вище 24, але ви, мабуть, не будете проти.


2

Не можу спілкуватися із згаданою вами групою випусків, оскільки ви не публікували медіаінфо. Але ось керівництво щодо створення компактних кодувань, що означає досягнення хорошого балансу якості / розміру.

Слід почати з HandBrake та найкращого доступного джерела. У розділі Джерело виберіть короткий, але важкий для кодування сегмент (як із дією, так і з дрібними деталями). У розділі призначення виберіть libmkv . На вкладці " Відео" зніміть прапорець, використовуючи розширені параметри (ви все одно можете додавати ці варіанти залежно від конкретних випадків у додаткових налаштуваннях ), виберіть --rc=crfratecontrol, найвищий, який --presetваш комп'ютер може нести ( slowerабо veryslow), a, --tuneякий відповідає джерелу ( filmабо animationповинен охоплювати його), і встановити профіль та рівень auto/ auto. Потім пограйте з роздільною здатністю (лише якщо джерело HD; в налаштуваннях зображення), встановіть анаморфність на вільну та зміну однієї з осей, починаючи з наступної роздільної здатності та знизу), і --crfпоки ви не знайдете хороший компроміс між якістю та бітрейтом для свого короткого сегмента. Зауважте, що CRF прив’язаний до решти налаштувань кодування, саме тому він повинен бути останнім налаштуванням відео, яке ви змінили. В аудіо , йдуть з Vorbis в 160kbps (це буде використовувати AoTuV -q5, досягнення прозорості без додаткової настройки). В інших вкладках, перевірте, чи зберігається все, що вам може знадобитися (позначки глав, доріжки субтитрів, метадані тощо). Коли ви задоволені, ви можете використовувати ці налаштування для кодування решти епізоду; середній бітрейт повинен бути набагато нижчим, ніж на складному сегменті. Коли ви впевнені у своїх налаштуваннях, ви можете використовувати їх для кодування цілих сезонів.

Як вищезазначені кроки покращують компактність: libmkv надає вам доступ до більшої кількості кодеків, профілю та версії до автоматичного, це означає, що не буде жодних обмежень для відтворення для стримування кодера. Короткий відрізок (кілька секунд) дає вам набагато більше часу, щоб підправити речі та переглянути результати. Налаштування оптимізує якість психовізуальної (сприйнятої) якості за тим, як має виглядати джерело. Більш високі пресети покращують компактність за рахунок часу кодування (це може бути не помітно у вашому складному сегменті, але покращить бітрейт у більшості інших сцен). Контроль швидкості CRF означає, що ваш кодер буде змінювати бітрейт для націлення на задану якість, а більш складні епізоди отримують більше місця.

Позначаючий фільтр також може бути дуже корисним, якщо ви зберігаєте оригінальну роздільну здатність. Ви хочете, щоб воно було легким, оскільки мета - не очищення відчутного дефекту джерела, а поліпшення стисливості без помітного погіршення якості. Ось посібник із використання позначувача HQDN3D HandBrake , який знаходиться між x264 --nrта найсучаснішими поглядачами якості.


2

FFmpeg TV

На основі відповіді slhck я створив це просте рішення Python для виклику правильних ffmpegпараметрів. На основі останніх сценаріїв телевізійних стандартів 2016 року .

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

Описані ви можете знайти всі параметри та короткий опис того, чому вони були встановлені таким чином за замовчуванням.

  # 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"

Повний вихідний код див. У ffmpeg-tv.py .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.