Как я могу получить 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-default). Lanczos можно использовать , например.
    • 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

Невозможно поговорить с группой релизов, о которой вы упомянули, так как вы не опубликовали mediainfo. Но вот руководство по созданию компактных кодов, что означает достижение хорошего баланса качества и размера.

Вы должны начать с HandBrake и лучшего доступного источника. В разделе « Источник » выберите короткий, но трудный для кодирования сегмент (как с действием, так и с мелкими деталями). В разделе Destination выберите libmkv . На вкладке « Видео » снимите флажок « использовать расширенные параметры» (вы можете добавить эти параметры в каждом конкретном случае в дополнительных настройках ), выберите « --rc=crfcontrolcontrol», максимальное значение, которое --presetможет выдержать ваш компьютер ( slowerили veryslow), значение --tune, соответствующее источнику ( filmили оно animationдолжно покрывать его), и установите профиль и уровень в auto/ auto. Затем играйте с разрешением (только если источником является HD; в настройках изображенияустановите анаморфное значение для потери и изменения одной из осей, от следующего разрешения высокого разрешения и ниже) и --crfдо тех пор, пока не найдете хороший компромисс между качеством и битрейтом для короткого сегмента. Обратите внимание, что CRF привязан к остальным настройкам кодирования, поэтому он должен быть последним измененным параметром видео. В Аудио используйте Vorbis со скоростью 160 кбит / с (при этом будет использоваться AoTuV -q5, обеспечив прозрачность без дальнейшей настройки). В других вкладках, убедитесь, что все, что вам может понадобиться, сохранено (метки глав, дорожки субтитров, метаданные и т. д.). Когда вы будете удовлетворены, вы можете использовать эти настройки для кодирования остальной части эпизода; средний битрейт должен оказаться намного ниже, чем на сложном сегменте. Когда вы уверены в своих настройках, вы можете использовать их для кодирования целых сезонов.

То, как описанные выше шаги улучшают компактность: libmkv дает вам доступ к большему количеству кодеков, профиля и версии для автоматического выбора, что означает, что не будет никаких ограничений воспроизведения для удержания кодера. Короткий отрезок (несколько секунд) дает вам гораздо больше времени для настройки и просмотра результатов. Мелодия оптимизирует психовизуальное (воспринимаемое) качество для того, как должен выглядеть источник. Более высокие предустановки улучшают компактность за счет времени кодирования (это может быть незаметно для вашего сложного сегмента, но улучшит битрейт в большинстве других сцен). CRF ratecontrol означает, что ваш код будет изменять битрейт для достижения заданного качества, а более сложные эпизоды получают больше места.

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


2

FFmpeg TV

На основе ответа slhck я построил это простое решение на Python для вызова правильных ffmpegпараметров. Основан на новейших телевизионных стандартах scenerules 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.