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

Содержание:

Комментарии

Альтернативная ссылка:




1042

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

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

Ключи кодирования пишутся в «Настройки» вкладка «Вывод» поле «Настройки x264 (разделённые пробелом)», в поле «Кодировщик» должно быть выбрано значение «x264».

Настройка X264, OBS Studio

Presets

profile

(Force the limits of an H.264 profile)

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

  • Профили:
    • baseline - Устанавливает --no-8x8dct --bframes 0 --no-cabac --cqm flat --weightp 0. С потерей качества. Без интерлейсинга.
    • main - Устанавливает --no-8x8dct --cqm flat. С потерей качества.
    • high - Нет ограничений. С потерей качества.
    • high10 - Тоже что и high, но с поддержкой глубины изображения в 10bit. С потерей качества.
    • high422 - Тоже что и high10, плюс поддержка 4:2:0/4:2:2 хрома сабсемплинг (chroma subsampling). С потерей качества.
    • high444 - Тоже что и high10, плюс поддержка 4:2:0/4:2:2/4:4:4 хрома сабсемплинг (chroma subsampling). Без потери качества.
  • В консоли: --profile <значение>*
  • В OBS Studio: profile: <значение>*
  • Значение по умолчанию: Отключено

preset

(Use a preset to select encoding settings)

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

  • Доступные пресеты:
    • ultrafast (ультра-быстрый):
      --no-8x8dct --aq-mode 0 --b-adapt 0 --bframes 0 --no-cabac --no-deblock --no-mbtree --me dia --no-mixed-refs --partitions none --rc-lookahead 0 --ref 1 --scenecut 0 --subme 0 --trellis 0 --no-weightb --weightp 0
    • superfast (сверхбыстрый):
      --no-mbtree --me dia --no-mixed-refs --partitions i8x8,i4x4 --rc-lookahead 0 --ref 1 --subme 1 --trellis 0 --weightp 1
    • veryfast (очень быстрый):
      --no-mixed-refs --rc-lookahead 10 --ref 1 --subme 2 --trellis 0 --weightp 1
    • faster (быстрее):
      --no-mixed-refs --rc-lookahead 20 --ref 2 --subme 4 --weightp 1
    • fast (быстрый):
      --rc-lookahead 30 --ref 2 --subme 6 --weightp 1
    • medium (средний):
      все значения по умолчанию
    • slow (медленный):
      --b-adapt 2 --direct auto --me umh --rc-lookahead 50 --ref 5 --subme 8
    • slower (медленнее):
      --b-adapt 2 --direct auto --me umh --partitions all --rc-lookahead 60 --ref 8 --subme 9 --trellis 2
    • veryslow (очень медленный):
      --b-adapt 2 --bframes 8 --direct auto --me umh --merange 24 --partitions all --ref 16 --subme 10 --trellis 2 --rc-lookahead 60
    • placebo (плацебо):
      --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --me tesa --merange 24 --partitions all --rc-lookahead 60 --ref 16 --subme 11 --trellis 2
  • Рекомендации: выбирая пресет, учитывайте ваше оборудование.
  • Примечание: следует задавать в самом начале. Все значения могут быть перезаданны позже.
  • В консоли: --preset <значение>*
  • В OBS Studio: preset: <значение>*
  • Значение по умолчанию: medium

tune

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

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

  • Типы оптимизаций:
    • film - для фильмов:
      --deblock -1:-1 --psy-rd <не задано>:0.15
    • animation - для аниме и мультипликации:
      --ref (удваивает --ref если оно больше 1) --deblock 1:1 --psy-rd 0.4:<не задано> --aq-strength 0.6 --bframes (стандартный --bframes + 2)
    • grain - для зернистого изображения с повышенной детализацией:
      --aq-strength 0.5 --no-dct-decimate --deadzone-inter 6 --deadzone-intra 6 --deblock -2:-2 --ipratio 1.1 --pbratio 1.1 --psy-rd <не задано>:0.25 --qcomp 0.8
    • stillimage:
      --aq-strength 1.2 --deblock -3:-3 --psy-rd 2.0:0.7
    • psnr:
      --aq-mode 0--no-psy
    • ssim:
      --aq-mode 2 --no-psy
    • fastdecode - для быстрого декодирования содержания:
      --no-deblock --no-cabac --no-weightb --weightp 0
    • zerolatency - для потокового видео:
      --bframes 0 --force-cfr --no-mbtree --sync-lookahead 0 --sliced-threads --rc-lookahead 0
  • Примечание: задавать нужно только после --presets.
  • В консоли: --tune <значение>*
  • В OBS Studio: tune: <значение>*
  • Значение по умолчанию: Отключено

slow-firstpass

(Enable slow first pass)

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

  • Рекомендации: в случае, когда требуется видео наилучшего качества включите первый проход. Очень замедляет кодирование.
  • Примечание: отключает следующие, ускоряющие первый проход, ключи:
    --no-8x8dct --me dia --partitions none --ref 1 --subme 2 --trellis 0
    Пресет placebo изначально содержит данный ключ.
  • В консоли: --slow-firstpass
  • В OBS Studio: slow_firstpass
  • Значение по умолчанию: Отключено

Frame-type options

I, keyint

(Maximum GOP size)

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

  • Примечание: данный параметр оказывает влияние на видео в процессе перемотки. Видеоряд в плеере начинает притормаживать при перемотке не по ключевым кадрам, если при этом установлены большие значения. Это объясняется тем, что декодеру необходимо отрендерить кадры от самого близко расположенного ключевого до указанного пользователем. Процесс перемотки по всем кадрам, за исключением ключевых, поддерживается на уровне плеера кодека
  • Рекомендации: практически во всех случаях самым оптимальным будет выбор значения "По умолчанию". Формула: fps*10 (при этом значение — это целое число, которое должно быть кратно 10) применяется для установки Вашего собственного значения. В процессе кодирования потокового видео или ряда для Blu - Ray необходимо применять значения, которые равны частоте кадров вышеупомянутого видео. Большие значения рекомендуется использовать только в работе со статичным видео.
  • В консоли: -I <integer> или --keyint <integer>
  • В OBS Studio: keyint=<integer>
  • Значение по умолчанию: 250
  • См. также: min-keyint, scenecut, intra-refresh

i, min-keyint

(Minimum GOP size)

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

  • Рекомендации: значение по умолчанию можно использовать практически с любым видом видео контента.  В случае, если Вы решили использовать самостоятельно установленное значение рекомендуется не превышать keyint/2+1. Значение целесообразно откорректировать в сторону уменьшения при кодировке динамичного видеоряда.
  • В консоли: --min-keyint <integer>
  • В OBS Studio: keyint_min=<integer>
  • Значение по умолчанию: auto (0)
  • См. также: keyint, scenecut

no-scenecut

(Disable adaptive I-frame decision)

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

  • В консоли: --no-scenecut
  • В OBS Studio: scenecut=0
  • Значение по умолчанию: Отключено
  • См. также: scenecut

scenecut

(How aggressively to insert extra I-frames)

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

  • Примечание: значение «0» соответствует no-scenecut.
  • Диапазон: 0...100
  • В консоли: --scenecut <integer>
  • В OBS Studio: scenecut=<integer>
  • Значение по умолчанию: 40
  • См. также: keyint, min-keyint, no-scenecut

intra-refresh

(Use Periodic Intra Refresh instead of IDR frames)

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

  • Примечание: данная опция допустима только для работы с потоковым видео, так как снижается степень сжатия видеоряда. Обеспечивает стабильный битрейт без колебаний.
  • В консоли: --intra-refresh
  • В OBS Studio: intra_refresh
  • Значение по умолчанию: Отключено

b, bframes

(Number of B-frames between I and P)

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

  • Рекомендации: наилучшими значениями являются 2...6. Применяя b-adapt 2 наилучшим решением будет задать bframes 16, что является самым оптимальным способом, вследствие того, что выбор значения отдается денкодеру. Ознакомившись со статистикой первого прохода можно прийти к определению наилучшего значения для данного конкретного видео.
  • Примечание: при установке значений, превышающих рекомендованные пределы, скорость кодирования уменьшается, при этом качество остается неизменным. Частое использование B-кадров создает помехи в процессе декодирования.
  • Диапазон: 1...16
  • В консоли: -b, --bframes <integer>
  • В OBS Studio: bframes=<integer>
  • Значение по умолчанию: 3
  • См. также: b-bias, b-pyramid, ref, pbratio, partitions, weightb

b-adapt

(Adaptive B-frame decision method)

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

  • Рекомендации: значение 2 рекомендовано выбирать при высоком значении bframes.
  • Настройки:
    0 - полное отключение;
    1 - быстрый алгоритм;
    2 - оптимальный алгоритм.
  • Примечание: в отношении многопроходного кодирования опция применяется для первого прохода с уже определенными типами кадров.
  • В консоли: --b-adapt <integer>
  • В OBS Studio: b_adapt=<integer>
  • Значение по умолчанию: 1

b-bias

(Influences how often B-frames are used)

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

  • Рекомендации: Пользоваться b_bias рекомендовано в случае, если Вы уверенны, что сможете самостоятельно улучшить контроль битрейта. 
  • Примечание: увеличение применения B-кадров происходит при значении выше 0, соответственно ниже 0 вероятность их использования уменьшается. Применение b_adapt 0 при значениях 100/-100 обеспечивают/не обеспечивают преобразование P - кадров.
  • Диапазон: -100...100
  • В консоли: --b-bias <integer>
  • В OBS Studio: b_bias=<integer>
  • Значение по умолчанию: 0
  • См. также: bframes, ipratio

b-pyramid

(Keep some B-frames as references)

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

  • Типы:
    • none - не допускает применение B-кадров как референсных;
    • strict - допускается применение одного B-кадра на каждый minigop (соблюдает ограничения стандарта Blu-ray);
    • normal - допускается множественное применение В-каров на каждый minigop.
  • Примечание: без применения данной опции B-кадры ссылаются только на кадры I и P, высокое качество которых крайне ценно. Оптимальное значение --bframes выше 2.  Опция отражается на скорости кодирования в сторону ее уменьшения. Normal   не рекомендован к использованию при кодировании для Blu-Ray.
  • В консоли: --b-pyramid <значение>*
  • В OBS Studio: b_pyramid=<integer>
  • Значение по умолчанию: normal
  • См. также: bframes, refs, no-mixed-refs

open-gop

(Use recovery points to close GOPs)

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

  • Рекомендации: стоит применять при низких значениях keyint.
  • Примечание: данная опция не всегда отмечена по умолчанию, так как не все декодеры ее поддерживают.
  • В консоли: --open-gop
  • В OBS Studio: open_gop=<integer>
  • Значение по умолчанию: Отключено

no-cabac

(Disable CABAC)

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

  • Рекомендации: использование CAVLC рекомендовано на мобильных устройствах из- а их незначительной мощности.
  • Примечание: CABAC сжимает, приблизительно, на 10-20% больше, чем CAVLC. CABAC использует больше процессорного времени для кодирования и декодирования.
  • В консоли: --no-cabac
  • В OBS Studio: cabac=0
  • Значение по умолчанию: Отключено

r, ref

(Number of reference frames)

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

  • Рекомендации: оптимальное значение 4 - 6. Значения выше предпочтительнее использовать для статичного видео, аниме и анимации.
  • Примечание: небольшое улучшение качества отмечается при количестве референсных кадров больше или равно 5. Самое высокое значение для 1080р - 4, для 720р - 9, ориентируясь на спецификацию Level 4.1. Практически для всей техники (к примеру, популярные Xbox и Playstation) с воспроизведением H.264 это является максимальным уровнем. Скорость кодирования зависит от референсных кадров, чем их больше, тем ниже скорость.
  • Диапазон: 0...16
  • В консоли: -r, --ref <integer>
  • В OBS Studio: ref=<integer>
  • Значение по умолчанию: 3
  • См. также: b-pyramid, no-mixed-refs, level

no-deblock

(Disable loop filter)

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

  • В консоли: --no-deblock
  • В OBS Studio: deblock=0:0:0
  • Значение по умолчанию: Отключено
  • См. также: deblock

f, deblock

(Loop filter parameters)

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

  • Рекомендации: для параметра alpha   следует выбирать значение -3 - 3. Значение выше увеличивает силу подавления блоков, при этом изображение становится нечетким (рекомендовано при кодировании мультипликации и невысоких битрейтах). Установка меньшего значения влияет на силу, но не искажает изображение.  В большинстве ситуаций оптимальным является нулевое значение.

    Значение -2 - 2 оптимально для «beta». Более высокие значения могут привести к подавлению блоков. Установка низких значений позволяет сохранить большее количество деталей, однако, существует вероятность принятия блоков за деталь. Значение данного параметра не рекомендуют увеличивать больше, чем на единицу от предыдущего.  Как и в вышеописанном случае, значение 0 является универсальным.

    Сила деблокинга рассчитывается для каждого макроблока, учитывая его квантизер и близко расположенных макроблоков. Задачей Альфы является определение приграничного квадрата, что похоже на порог. Бета позволяет убедится в однородности изображения, что позволяет разграничить детали от блочности.  В случае, когда блок является однородным, бета незначительно изменяет силу.

  • Примечание: строгость отбора блочности фильтром устанавливается порогом деблокинга. Смягчение некоторых блоков зависит от силы деблокинга.  Оптимальное значение от -3 до 3. Установка высоких значений может привести к потере деталей и смазыванию изображения. Низкие значения приводят к формированию резких краев и так называемого москитного шума. Для лучшего результата необходимо создавать взаимосвязь между силой и порогом.
  • Диапазон: -6...6 (для alpha и beta соответственно)
  • В консоли: -f, --deblock <alpha:beta>
  • В OBS Studio: deblock=1:<alpha:beta>
  • Значение по умолчанию: 0:0
  • См. также: no-deblock

slices

(Number of slices per frame)

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

  • Рекомендации: при кодировке для Blu -Ray оптимальное значение 4. В противном случае вообще не используйте эту опцию. Разве что Вы точно знаете, что она вам нужна.
  • В консоли: --slices <integer>
  • В OBS Studio: slices=<integer> не проверено
  • Значение по умолчанию: 0
  • См. также: slice-max-size, slice-max-mbs

slice-max-size

(Limit the size of each slice in bytes)

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

  • Примечание: На данные момент конфликтует с --tff, --bff.
  • В консоли: --slice-max-size <integer>
  • В OBS Studio: slice_max_size=<integer> не проверено
  • Значение по умолчанию: 0
  • См. также: slices

slice-max-mbs

(Limit the size of each slice in macroblocks)

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

  • Примечание: На данные момент конфликтует с --tff, --bff.
  • В консоли: --slice-max-mbs <integer>
  • В OBS Studio: slice_max_mbs=<integer> не проверено
  • Значение по умолчанию: 0
  • См. также: slices

tff

(Enable interlaced mode (top field first)

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

  • Рекомендации: данная опция актуальна для чересстрочных дисплеев.
  • Примечание: x264 использует для череcстрочного кодирования MBAFF, и это намного хуже прогрессивного кодирования.
  • В консоли: --tff
  • В OBS Studio: interlaced=1
  • Значение по умолчанию: Отключено
  • См. также: bff

bff

(Enable interlaced mode (bottom field first)

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

  • Рекомендации: данная опция актуальна для чересстрочных дисплеев.
  • Примечание: x264 использует для череcстрочного кодирования MBAFF, и это намного хуже прогрессивного кодирования.
  • В консоли: --bff
  • В OBS Studio: interlaced=1
  • Значение по умолчанию: Отключено
  • См. также: tff

constrained-intra

(Enable constrained intra prediction)

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

  • Рекомендации: данная опция не является обязательной, так как на практике применяется крайне редко. Этот ключ можно игнорировать.
  • В консоли: --constrained-intra
  • В OBS Studio: constrained_intra=<0/1>
  • Значение по умолчанию: Отключено

pulldown

(Use soft pulldown to change frame rate)

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

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

  • Примечание: применяя любой из вышеперечисленных пресетов, за исключением none обязательно применение pic-struct.
  • В консоли: --pulldown <значение>*
  • В OBS Studio: pulldown=<значение>*
  • Значение по умолчанию: Отключено

fake-interlaced

(Flag stream as interlaced but encode progressive)

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

  • В консоли: --fake-interlaced
  • В OBS Studio: Неизвестно (обычно отображает как прогрессивное)
  • Значение по умолчанию: Отключено

frame-packing

(For stereoscopic videos define frame arrangement)

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

  1. чередование столбцов - Л(лево) и П(право) чересстрочно по столбцам (Interlaced)
  2. чередование строк - Л и П чересстрочно по строкам (Interlaced)
  3. горизонтальная (попеременная) стереопара - Л слева, П справа (SideBySide)
  4. верх низ - Л вверху, П снизу (OverUnder)
  5. чередование кадров - один кадр для одного глаза
  • В консоли: --frame-packing <integer>
  • В OBS Studio: frame_packing=<integer>
  • Значение по умолчанию: Отключено

  • * <значение> - вписывается параметры ключа, писать без <> пример, profile: main
  • **<integer> - какойто интервал чисел скажем от 0 до 100, вносите значение без <> 

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

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

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

Вступайте в группы:
Профессия стример – в группе публикуется релиз новых статей сайта, а также важные изменения в статьях.
Настройка OBS – в группе предоставляется помощь по настройке установке OBS Studio, в том числе и бесплатно за подписку


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


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

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

    • Изображение-2

      Живые трансляции можно считать одним из наиболее эффективных способов привлечения аудитории на YouTube-канал. Если…

    • Изображение-3

      Здравствуйте постоянные читатели сайта и не постоянные тоже, сегодня мы разберём почему OBS Studio мылит картинку…

    • Изображение-4

      Криптовалютный банк UBB – это эффективная платформа, предлагающая целый комплекс современных услуг на стыке криптовалютной…

    • Изображение-5

      24.0.3 Исправления Удалены дефекты, возникающие в процессе запуска 32-битной версии. Решен актуальный для OBS…

    • Изображение-6

      Сегодня стриминг игр и прочего контента в Интернет популярен, как никогда. Способствуют этому и весьма существенные…

    • Изображение-7

      Open Broadcaster Software далее (OBS) представляет собой программу, имеющую открытый исходный код. Ее назначение…

    • Изображение-8

      Скачивать программу Open Broadcaster Software мы будем с официального сайта, для этого переходим по данной ссылке…

    Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.