Внимание — это предварительный обзор, для проверки всех функций требуется время, если вы нашли ошибку или недочёт в тексте не спешите писать гневные комментарии, а сообщите автору сайта о найденной ошибке через комментарии либо выделите слово и нажмите Ctrl + Enter
Ключи кодирования для OBS Studio пишутся в «Настройки» вкладка «Вывод», кодировщик «x264» поле «Настройки x264 (разделённые пробелом)», либо «H.264/AVC Nvidia NVENC» поле «FFmpeg», статью подготовил и тщательно проверил для Вас ресурс prostrimer.ru.
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). Без потери качества.
- NVENC FFmpeg: -profile <значение>*
- x264: 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
- ultrafast (ультра-быстрый):
- Рекомендации: выбирая пресет, учитывайте ваше оборудование.
- Примечание: следует задавать в самом начале. Все значения могут быть перезаданны позже.
- NVENC FFmpeg: -preset <значение>*
- x264: 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
- film - для фильмов:
- Примечание: задавать нужно только после --presets.
- NVENC FFmpeg: -tune <значение>*
- x264: tune: <значение>*
- Значение по умолчанию: Отключено
slow-firstpass
(Enable slow first pass)
Параметр включает «медленный» первый проход.
- Рекомендации: в случае, когда требуется видео наилучшего качества включите первый проход. Очень замедляет кодирование.
- Примечание: отключает следующие, ускоряющие первый проход, ключи:
--no-8x8dct --me dia --partitions none --ref 1 --subme 2 --trellis 0
Пресет placebo изначально содержит данный ключ. - NVENC FFmpeg: -slow-firstpass
- x264: slow_firstpass
- Значение по умолчанию: Отключено
Frame-type options
I, keyint
(Maximum GOP size)
Максимальный интервал между ключевыми/IDR кадрами. Данный параметр позволяет осуществлять контроль за кадрами, расположенными между ключевыми кадрами и в случае, если допустимый предел повышен, но при этом отсутствует ключевой кадр - параметр самостоятельно его добавляет. Типовой размер GOPа высчитывается в процессе кодирования для предельно допустимого сжатия видео. Под ключевыми кадрами (IDR) подразумеваются кадры - разделители. Между IDR расположены кадры, не имеющие возможности ссылаться на кадры, находящиеся за границами установленного промежутка. В роли контрольных точек в видеоряде могут выступать ключевые кадры, так как они относятся к I кадрам и их невозможно применять в качестве референсных.
- Примечание: данный параметр оказывает влияние на видео в процессе перемотки. Видеоряд в плеере начинает притормаживать при перемотке не по ключевым кадрам, если при этом установлены большие значения. Это объясняется тем, что декодеру необходимо отрендерить кадры от самого близко расположенного ключевого до указанного пользователем. Процесс перемотки по всем кадрам, за исключением ключевых, поддерживается на уровне плеера кодека
- Рекомендации: практически во всех случаях самым оптимальным будет выбор значения "По умолчанию". Формула: fps*10 (при этом значение — это целое число, которое должно быть кратно 10) применяется для установки Вашего собственного значения. В процессе кодирования потокового видео или ряда для Blu - Ray необходимо применять значения, которые равны частоте кадров вышеупомянутого видео. Большие значения рекомендуется использовать только в работе со статичным видео.
- NVENC FFmpeg: -I <integer> или -keyint <integer>
- x264: keyint=<integer>
- Значение по умолчанию: 250
- См. также: min-keyint, scenecut, intra-refresh
i, min-keyint
(Minimum GOP size)
Минимальный интервал между ключевыми/IDR кадрами.
- Рекомендации: значение по умолчанию можно использовать практически с любым видом видео контента. В случае, если Вы решили использовать самостоятельно установленное значение рекомендуется не превышать keyint/2+1. Значение целесообразно откорректировать в сторону уменьшения при кодировке динамичного видеоряда.
- NVENC FFmpeg: -min-keyint <integer>
- x264: keyint_min=<integer>
- Значение по умолчанию: auto (0)
- См. также: keyint, scenecut
no-scenecut
(Disable adaptive I-frame decision)
Полное отключение адаптивных I-кадров.
- NVENC FFmpeg: -no-scenecut
- x264: scenecut=0
- Значение по умолчанию: Отключено
- См. также: scenecut
scenecut
(How aggressively to insert extra I-frames)
Данный параметр позволяет определять частоту использования дополнительных I кадров. Х264 создает для всех кадров метрику для определения того, как кадр отличается от впереди стоящего. Когда выведенное значение ниже установленного для scenecut, то I кадр располагается энкодером в данном месте. Если значение превышает установленное для scenecut, в этом месте располагается ключевой кадр. Данная функция отражается на качестве, увеличивая его в лучшую сторону, но при злоупотреблении сменой неминуема трата битрейта.
- Примечание: значение «0» соответствует no-scenecut.
- Диапазон: 0...100
- NVENC FFmpeg: -scenecut <integer>
- x264: scenecut=<integer>
- Значение по умолчанию: 40
- См. также: keyint, min-keyint, no-scenecut
intra-refresh
(Use Periodic Intra Refresh instead of IDR frames)
Не допускается применение IDR кадров. Проверено
- Примечание: данная опция допустима только для работы с потоковым видео, так как снижается степень сжатия видеоряда. Обеспечивает стабильный битрейт без колебаний.
- NVENC FFmpeg: -intra-refresh 1
- x264: intra_refresh=1
- Значение по умолчанию: Отключено
b, bframes
(Number of B-frames between I and P)
Опция определяет количество B кадров, расположенных между кадрами I и P. Эти кадры включают в себя закодированные изменения впереди и следом идущих за ними кадров. Обладают большой степенью сжатия, но при этом теряют в качестве. B-кадры идентичны Р-кадрам, однако они могут использовать предсказание движения от последующих кадров, что способствует существенному улучшению степени сжатия.
- Рекомендации: наилучшими значениями являются 2...6. Применяя b-adapt 2 наилучшим решением будет задать bframes 16, что является самым оптимальным способом, вследствие того, что выбор значения отдается денкодеру. Ознакомившись со статистикой первого прохода можно прийти к определению наилучшего значения для данного конкретного видео.
- Примечание: при установке значений, превышающих рекомендованные пределы, скорость кодирования уменьшается, при этом качество остается неизменным. Частое использование B-кадров создает помехи в процессе декодирования.
- Диапазон: 1...16
- NVENC FFmpeg: -b, -bframes <integer>
- x264: bframes=<integer>
- Значение по умолчанию: 3
- См. также: b-bias, b-pyramid, ref, pbratio, partitions, weightb
b-adapt
(Adaptive B-frame decision method)
Данная опция направлена на работу с B кадрами, регулируя их месторасположение и количество (автоматически убирает лишние).
- Рекомендации: значение 2 рекомендовано выбирать при высоком значении bframes.
- Настройки:
0 - полное отключение;
1 - быстрый алгоритм;
2 - оптимальный алгоритм. - Примечание: в отношении многопроходного кодирования опция применяется для первого прохода с уже определенными типами кадров.
- NVENC FFmpeg: -b-adapt <integer>
- x264: 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
- NVENC FFmpeg: -b-bias <integer>
- x264: 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.
- NVENC FFmpeg: -b-pyramid <значение>*
- x264: b_pyramid=<integer>
- Значение по умолчанию: normal
- См. также: bframes, refs, no-mixed-refs
open-gop
(Use recovery points to close GOPs)
Open-GOP - техника увеличивающая эффективность кодирования. Применение максимально улучшает эффективность кодирования. Переход B-кадра в Р-кадр невозможен, когда текущий кадр является ключевым, основываясь на установленном значении keyint, при этом новая сцена не наступила. За счет чего происходит уменьшение ключевых кадров и меньший битрейт, что непосредственно влияет на степень сжатия.
- Рекомендации: стоит применять при низких значениях keyint.
- Примечание: данная опция не всегда отмечена по умолчанию, так как не все декодеры ее поддерживают.
- NVENC FFmpeg: -open-gop
- x264: open_gop=<integer>
- Значение по умолчанию: Отключено
no-cabac
(Disable CABAC)
CABAC - возможность сжатия без потерь. Активация функции приводит к отключению CABAC и активации CAVLC.
- Рекомендации: использование CAVLC рекомендовано на мобильных устройствах из- а их незначительной мощности.
- Примечание: CABAC сжимает, приблизительно, на 10-20% больше, чем CAVLC. CABAC использует больше процессорного времени для кодирования и декодирования.
- NVENC FFmpeg: -no-cabac
- x264: 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
- NVENC FFmpeg: -r, -ref <integer>
- x264: ref=<integer>
- Значение по умолчанию: 3
- См. также: b-pyramid, no-mixed-refs, level
no-deblock
(Disable loop filter)
Отключение фильтра подавления блочности.
- NVENC FFmpeg: -no-deblock
- x264: 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 соответственно)
- NVENC FFmpeg: -f, -deblock <alpha:beta>
- x264: deblock=1:<alpha:beta>
- Значение по умолчанию: 0:0
- См. также: no-deblock
slices
(Number of slices per frame)
Определяем на сколько частей разбивается кадр.
- Рекомендации: при кодировке для Blu -Ray оптимальное значение 4. В противном случае вообще не используйте эту опцию. Разве что Вы точно знаете, что она вам нужна.
- NVENC FFmpeg: -slices <integer>
- x264: slices=<integer> не проверено
- Значение по умолчанию: 0
- См. также: slice-max-size, slice-max-mbs
slice-max-size
(Limit the size of each slice in bytes)
Задаем максимальное размер slice в байтах.
- Примечание: На данные момент конфликтует с --tff, --bff.
- NVENC FFmpeg: -slice-max-size <integer>
- x264: slice_max_size=<integer> не проверено
- Значение по умолчанию: 0
- См. также: slices
slice-max-mbs
(Limit the size of each slice in macroblocks)
Задаем максимальный размер slice в макроблоках.
- Примечание: На данные момент конфликтует с --tff, --bff.
- NVENC FFmpeg: -slice-max-mbs <integer>
- x264: slice_max_mbs=<integer> не проверено
- Значение по умолчанию: 0
- См. также: slices
tff
(Enable interlaced mode (top field first)
Активизирует чересстрочное кодирование. Первое поле - верхнее.
- Рекомендации: данная опция актуальна для чересстрочных дисплеев.
- Примечание: x264 использует для череcстрочного кодирования MBAFF, и это намного хуже прогрессивного кодирования.
- NVENC FFmpeg: -tff
- x264: interlaced=1
- Значение по умолчанию: Отключено
- См. также: bff
bff
(Enable interlaced mode (bottom field first)
Активизирует череcстрочное кодирование. Первое поле - нижнее.
- Рекомендации: данная опция актуальна для чересстрочных дисплеев.
- Примечание: x264 использует для череcстрочного кодирования MBAFF, и это намного хуже прогрессивного кодирования.
- NVENC FFmpeg: -bff
- x264: interlaced=1
- Значение по умолчанию: Отключено
- См. также: tff
constrained-intra
(Enable constrained intra prediction)
Ограниченное временное предсказание. Для base layer необходимо активизировать ограниченное временное предсказание.
- Рекомендации: данная опция не является обязательной, так как на практике применяется крайне редко. Этот ключ можно игнорировать.
- NVENC FFmpeg: -constrained-intra <0/1>
- x264: 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.
- NVENC FFmpeg: -pulldown <значение>*
- x264: pulldown=<значение>*
- Значение по умолчанию: Отключено
fake-interlaced
(Flag stream as interlaced but encode progressive)
С помощью данной опции возможна кодировка видеоряда для Blu-Ray с 25 и 30 секундной частотой кадров. Видеоизображение отмечается как чересстрочное, даже если он таковым не является.
- NVENC FFmpeg: -fake-interlaced
- x264: Неизвестно (обычно отображает как прогрессивное)
- Значение по умолчанию: Отключено
frame-packing
(For stereoscopic videos define frame arrangement)
Если у транслируется 3D видео. Информирование о типе видеоряда 3D, которое бывает следующим:
- чередование столбцов - Л(лево) и П(право) чересстрочно по столбцам (Interlaced)
- чередование строк - Л и П чересстрочно по строкам (Interlaced)
- горизонтальная (попеременная) стереопара - Л слева, П справа (SideBySide)
- верх низ - Л вверху, П снизу (OverUnder)
- чередование кадров - один кадр для одного глаза
- NVENC FFmpeg: -frame-packing <integer>
- x264: frame_packing=<integer>
- Значение по умолчанию: Отключено
Lookahead
Lookahead повышает точность управления скоростью видеокодера, позволяя кодеру буферизовать указанное количество кадров, оценивать их сложность и распределять биты между этими кадрами соответствующим образом пропорционально их сложности. Обычно это приводит к лучшему качеству, потому что кодер может распределять биты, пропорциональные сложности, по большему количеству кадров. Количество опережающих кадров должно быть не меньше количества B-кадров + 1, чтобы избежать остановки процессора. Для достижения оптимального качества рекомендуется просмотр вперед на 10–20 кадров.
- NVENC FFmpeg: -rc-lookahead <integer>
- x264: rc_lookahead=<integer>
- Значение по умолчанию: Отключено
- * <значение> - вписывается параметры ключа, писать без <> пример, profile: main
- **<integer> - какойто интервал чисел скажем от 0 до 100, вносите значение без <>
3090+10900к ( 5.3 по всем ядрам)
Хочу поставить medium/slow пресет на стрим ( через видюху не рассматриваю потому что видюха итак параллельно стриму с проца записывает этот же стрим в 60 000 битрейта)
Какие бы надстройки посоветовали для максимального качества? ( декодирую из 1440 в 1080 9000 битрейта)
По поводу загрузки и температур проца можно не волноваться, охлад за 80к держит его в стрестестах на 74 пиковой темпере
Если на софтовом кодеке h264, то нужно выбрать режим ultrafast. Параметр ref можно прописать в строку параметров, он он будет учитываться только в большую сторону, то есть например можно написать ref=5.