OBS Studio. Настройка X264, ключи кодирования

В этой статье мы рассмотрим ключи кодирования X264 для OBS Studio.

28850

Рейтинг: 4.5/5 - 8 голосов


Внимание — это предварительный обзор, для проверки всех функций требуется время, если вы нашли ошибку или недочёт в тексте не спешите писать гневные комментарии, а сообщите автору сайта о найденной ошибке через комментарии либо выделите слово и нажмите Ctrl + Enter

Ключи кодирования для OBS Studio пишутся в «Настройки» вкладка «Вывод», кодировщик «x264» поле «Настройки x264 (разделённые пробелом)», либо «H.264/AVC Nvidia NVENC» поле «FFmpeg».

Изображение-1

Presets

profile

(Force the limits of an H.264 profile)

Учитывайте особенности имеющегося оборудования, отметить степень совместимости. Со значениями High и ниже способны работать мощные модели процессоров.

preset

(Use a preset to select encoding settings)

Готовые пресеты для кодирования. Пресет - это заранее подготовленный комплект максимально соответствующих поставленной задаче параметров, которые непосредственно отражаются на скорости кодирования и качественных характеристиках (качество видео напрямую зависит от скорости кодирования).  В процессе кодирования предпочтение стоит отдавать готовым пресетам. Чем быстрее пресет - тем ниже качество, placebo (плацебо) - самый медленный и самый качественный, для placebo нужны сверхмощные многопоточные процессоры.

tune

(Tune the settings for a particular type of source or situation)

Настройка параметров, оптимизирующих работу с конкретным видео образцом.

slow-firstpass

(Enable slow first pass)

Параметр включает «медленный» первый проход.

Frame-type options

I, keyint

(Maximum GOP size)

Максимальный интервал между ключевыми/IDR кадрами. Данный параметр позволяет осуществлять контроль за кадрами, расположенными между ключевыми кадрами и в случае, если допустимый предел повышен, но при этом отсутствует ключевой кадр - параметр самостоятельно его добавляет. Типовой размер GOPа высчитывается в процессе кодирования для предельно допустимого сжатия видео. Под ключевыми кадрами (IDR) подразумеваются кадры - разделители. Между IDR расположены кадры, не имеющие возможности ссылаться на кадры, находящиеся за границами установленного промежутка. В роли контрольных точек в видеоряде могут выступать ключевые кадры, так как они относятся к I кадрам и их невозможно применять в качестве референсных.

i, min-keyint

(Minimum GOP size)

Минимальный интервал между ключевыми/IDR кадрами.

no-scenecut

(Disable adaptive I-frame decision)

Полное отключение адаптивных I-кадров.

scenecut

(How aggressively to insert extra I-frames)

Данный параметр позволяет определять частоту использования дополнительных I кадров. Х264 создает для всех кадров метрику для определения того, как кадр отличается от впереди стоящего.  Когда выведенное значение ниже установленного для scenecut, то I кадр располагается энкодером в данном месте. Если значение превышает установленное для scenecut, в этом месте располагается ключевой кадр.  Данная функция отражается на качестве, увеличивая его в лучшую сторону, но при злоупотреблении сменой неминуема трата битрейта.

intra-refresh

(Use Periodic Intra Refresh instead of IDR frames)

Не допускается применение IDR кадров. Проверено

b, bframes

(Number of B-frames between I and P)

Опция определяет количество B кадров, расположенных между кадрами I и P. Эти кадры включают в себя закодированные изменения впереди и следом идущих за ними кадров.  Обладают большой степенью сжатия, но при этом теряют в качестве. B-кадры идентичны Р-кадрам, однако они могут использовать предсказание движения от последующих кадров, что способствует существенному улучшению степени сжатия.

b-adapt

(Adaptive B-frame decision method)

Данная опция направлена на работу с B кадрами, регулируя их месторасположение и количество (автоматически убирает лишние). 

b-bias

(Influences how often B-frames are used)

Данная опция позволяет контролировать количество B кадров, призванных заместить Р кадры. 

b-pyramid

(Keep some B-frames as references)

Повышение эффективности применения нескольких B-кадров, из- за их возможности ссылаться на другие кадры, тем самым увеличивая эффективность использования 2-х и более кадров.

open-gop

(Use recovery points to close GOPs)

Open-GOP - техника увеличивающая эффективность кодирования. Применение максимально улучшает эффективность кодирования. Переход B-кадра в Р-кадр невозможен, когда текущий кадр является ключевым, основываясь на установленном значении keyint, при этом новая сцена не наступила. За счет чего происходит уменьшение ключевых кадров и меньший битрейт, что непосредственно влияет на степень сжатия.

no-cabac

(Disable CABAC)

CABAC - возможность сжатия без потерь. Активация функции приводит к отключению CABAC и активации CAVLC

r, ref

(Number of reference frames)

Опция определяет количество референсных кадров. Указывает количество предыдущих кадров, готовых к связи с B и P кадрами.

no-deblock

(Disable loop filter)

Отключение фильтра подавления блочности.

f, deblock

(Loop filter parameters)

Фильтр подавления блоков.  alpha - сила подавления блоков, beta- точность их определения. В процессе кодирования каждая картинка представляет из себя блок 8*8 пикселей, который кодируется самостоятельно. Когда битрейт маленький, данные блоки становятся заметнее. Опция deblock устраняет эту проблему. 

slices

(Number of slices per frame)

Определяем на сколько частей разбивается кадр.

slice-max-size

(Limit the size of each slice in bytes)

Задаем максимальное размер slice в байтах.

slice-max-mbs

(Limit the size of each slice in macroblocks)

Задаем максимальный размер slice в макроблоках.

tff

(Enable interlaced mode (top field first)

Активизирует чересстрочное кодирование. Первое поле - верхнее.

bff

(Enable interlaced mode (bottom field first)

Активизирует череcстрочное кодирование. Первое поле - нижнее.

constrained-intra

(Enable constrained intra prediction)

Ограниченное временное предсказание. Для base layer необходимо активизировать ограниченное временное предсказание. 

pulldown

(Use soft pulldown to change frame rate)

Для входного видео устанавливаем пресет софт-телесина. Телесина - это метод перевода видео в TV формат. Частота конкретного видео настраивается под телечастоту (50Гц - PAL, 60Гц - NTSC). В некоторых случаях отмечается увеличение скорости видеоряда. Опция определяет тип исходного преобразования.

Допустимо применение следующих готовых пресетов: none, 22, 32, 64, double, triple, euro. 

fake-interlaced

(Flag stream as interlaced but encode progressive)

С помощью данной опции возможна кодировка видеоряда для Blu-Ray с 25 и 30 секундной частотой кадров. Видеоизображение отмечается как чересстрочное, даже если он таковым не является.

frame-packing

(For stereoscopic videos define frame arrangement)

Если у транслируется 3D видео. Информирование о типе видеоряда 3D, которое бывает следующим:

  1. чередование столбцов - Л(лево) и П(право) чересстрочно по столбцам (Interlaced)
  2. чередование строк - Л и П чересстрочно по строкам (Interlaced)
  3. горизонтальная (попеременная) стереопара - Л слева, П справа (SideBySide)
  4. верх низ - Л вверху, П снизу (OverUnder)
  5. чередование кадров - один кадр для одного глаза

Мы старались оцени контент:

Рейтинг: 4.5/5 - 8 голосов

Следующие 10 статей которые будут Вам интересны:


Комментарии, которые не относятся к статье будут удалены. Премодерация комментариев включена, комментарий появится после одобрения модератором.

Комментарии ()

  1. Diner 01 ноября 2020, 21:00 # 0
    Добрый день, только что собран новый пк

    3090+10900к ( 5.3 по всем ядрам)
    Хочу поставить medium/slow пресет на стрим ( через видюху не рассматриваю потому что видюха итак параллельно стриму с проца записывает этот же стрим в 60 000 битрейта)
    Какие бы надстройки посоветовали для максимального качества? ( декодирую из 1440 в 1080 9000 битрейта)
    По поводу загрузки и температур проца можно не волноваться, охлад за 80к держит его в стрестестах на 74 пиковой темпере
    1. Юрий 04 июля 2020, 16:54 # 0
      Здравствуйте. Охренеть какое классное руководство. У меня вопрос. Мне надо в обс на nvenc выставить reframes=1. Никак не получается. Дело в том что after effect работает в разы быстрее с видео у которых reframes=1, а кодировать в промежуточный лосось формат нет возможности.
      1. Nasferatus 05 июля 2020, 14:31(Комментарий был изменён) # 0
        В nvenc скорее всего ключи пишутся совсем иначе, попробуйте разные вариации или посмотрите в сети. Если получится напишите сюда и ссылку оставьте на рабочий вариант. Кроме того, если установите Format Factory, можно будет проверять получилось или нет с помощью инструмента Mediainfo.
        1. Nasferatus 05 июля 2020, 14:44(Комментарий был изменён) # 0
          Кодек для ключей называется H.264/AVC Nvidia NVENC Скрин, а сами ключи как я посмотрел пишутся типа так -key=value, получается что должно быть как то так -reframes=1
          1. Юрий 05 июля 2020, 15:06 # 0
            У меня совсем другая картинка (не как на вашем скриншоте), хотя obs последней версии. Кодек называется nvidia nvenc h264 и настроек раза в 2 меньше, ffmpeg настроек вообще нет. Но я понял как reframes сделать в единицу. Достаточно b-frames в ноль поставить.

            Если на софтовом кодеке h264, то нужно выбрать режим ultrafast. Параметр ref можно прописать в строку параметров, он он будет учитываться только в большую сторону, то есть например можно написать ref=5.
            1. Nasferatus 05 июля 2020, 15:30 # 0
              По моему эти настройки доступны после выбора данных драйверов Скрин
        Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.