Obs studio это


Настройка OBS Studio для Твича (Twitch). Как настроить ОБС Студио для стрима игр и записи на Твиче

Настройка ОБС Студио для стрима на Твиче без лагов

Если же вы до сих по каким либо причинам пользуетесь OBS Classic, то вам сюда. Так как сервис прекращает поддержку классической версии, то я вам советую уже начать переходить на OBS Studio, а в настройке вам поможет данная статья.

Установка OBS Studio на Windows 10

Скачайте дистрибутив с официального сайта и установите программу себе на компьютер.

Какие-то дополнительные плагины, к примеру плагин CLR Browser для взаимодействия с веб сервисами, вам не понадобятся. Но если уж что-то пошло не так и Browser Source у вас отсутствует в ОБС Студио, то скачайте и установите его самостоятельно - Browser для OBS Studio.

Настройка OBS Studio

Я постараюсь кратко и понятно расписать каждую вкладку в этих настройках. На всех скриншотах представлены мои настройки ОБС (OBS Studio).

Чтобы зайти в настройки ОБС, нажмите в верхнем меню на "Файл" -> "Настройки".

В общем разделе вы можете сменить язык, поменять тему программы и не только. Здесь я ничего не трогал и оставил все по умолчанию.

"Вещание" - здесь вы настраиваете свою трансляцию: выбираете на какой сервис будете транслировать видеопоток и вставляете ключ видео потока от Twitch.

"Вывод" -> "Потоковое вещание" - рекомендую выставить расширенные настройки, так вы сможете более гибко настроить свой кодировщик. На скриншоте ниже указаны мои настройки для кодировщика Quick Sync.

"Вывод" -> "Запись" - здесь вы можете настроить запись видео через ОБС. Я не только веду стрим через OBS Studio, но и делаю запись игры одновременно, поэтому кодировщики у меня разные. Quick Sync для стрима, Nvenc для записи.

"Аудио" - в данном разделе вы указываете ваши аудиоустройства: микрофоны и устройства воспроизведения (колонки). Можете указать один, а можно и несколько.

"Видео" - укажите ваше разрешение экрана и выходное разрешение (разрешение стрима). Лично я всегда играю в 1080p, а видеопоток подается в 720p. Масштабирование разрешения немного снижает нагрузку с кодировщика.

"Горячие клавиши" - для каждого добавленного источника или сцены вы можете указать горячие клавиши на отключение звука, появление и исчезновение, и т.д.

"Расширенные" - в данной вкладке я ничего не изменял, все стоит по умолчанию. Единственное что я здесь бы поменял, так это формат имени файла при записи видео.

Чтобы повысить громкость микрофона или динамика, перейдите в верхнем меню в "Редактировать" - > "Расширенные свойства аудио".

Поставьте "Громкость" больше 100%, чтобы повысить громкость микрофона. К сожалению, из главного окна повысить децибел(дБ) нельзя, только можно снизить при помощи ползунка.

Ну и под конец я перечислю плюсы ОБС (OBS Studio):

  1. По моему наблюдению, Studio меньше нагружает процессор, в отличии от Classic.
  2. Переключение сцен горячими клавишами с плавными эффектами.
  3. Множество аудио и видео фильтров (в том числе и хромакей), которые можно применять к источникам.
  4. Постоянная поддержка и улучшение функционала от разработчиков. Чуть ли не каждый месяц обновления.
  5. Более гибкая и расширенная настройка видео и аудио для стрима.

Как видите уже нет смысла использовать классическую версию ОБС, так что переходите на официальный сайт Open Broadcaster Software и скачивайте дистрибутив программы.

Если возникают вопросы, то пишите мне в чат на моем стриме zakrutTV. Если уж требуется мое вмешательство и консультация, то вам сюда.

Читайте также:

myblogy.ru

стримы на twitch; youtube: facebook life:

Привет! В эфире Antay и сегодня рассматривается настройка obs studio которая потребуется для запуска стримов.   Видеоконтент сегодня решает, особенно это касается живого видео в прямом эфире и поэтому в этой теме нужно просто быть.

Настройка obs studio: установка

Скачиваем данную программу (желательно со всеми дополнительными плагинами) — после установки и открытия появляется следующее окно.

Убедитесь что она отображается у вас на русском языке — для этого заходим через верхнее меню в настройки:

Настройка obs studio: основные элементы

К числу основных элементов программы необходимые для понимания и работы с ней отнесем сцены и источники.

Сцены

Большой черный экран в начале это область трансляции (сцена). Сцены настраиваются внизу в 1 блоке данной программы.

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

В качестве сцены — можно также поставить временную заглужку — когда вам нужно отлучиться на короткое время. По размерам ее лучше делать такой же как стрим (1920 1080 1280 720)

Источники

Под сцену создается источник где она будет происходить. Также жмем плюсик во 2 блоке источники и выбираем нужный источник.

На 1 сцене — одни источники, на другой сцене другие. В то же время сами источники глобальные (все что делается с источником на 1 сцене будет применяться к этому же источнику и на другой сцене).Рассмотрим основные источники:

Изображения

Изображения часто используют как логотип и как фон.

Загружаем изображение — которое затем можно будет передвинуть в нужную часть экрана или растянуть на всю область экрана.

Слайдшоу

Здесь все точно также как и в 1 случае за исключением использования сразу нескольких изображений и выбором перехода от 1 изображения к другому (затухание,перемещение,сдвиг).

Источник медиа

Добавление на сцену видео по указанному вами пути. Чтобы воспроизведение повторялось нужно поставить галочку напротив функции Повтор. Если поставить галочку напротив функции Дополнительно — можно задать расширенные настройки.

Загруженное медиа также появляется на сцене и начинает проигрываться. Его можно перенести в любую точку сцены и задать (расширить/сузить) размер этому видеофайлу.

Хорошо если ваш стрим начинается какой нибудь заставкой. Она создается также в сцене, затем в источниках выбирается Источник Медия — загружается отобранный заранее видеофрагмент.

Текст
Захват игры

В поле режим выбираем захват отдельного окна — в поле Окно — выбираем клиент игры для которой планируется делать стрим.

Здесь лучше иметь 2 монитора в одном играть — в другом будет показываться предпросмотр стрима. Если у вас 1 монитор нужно зайти в саму игру, затем через alt+tab свернуть игру — после чего будет сделан захват клиента игры которую вы поставили.

Устройство захвата видео

Этот источник предназначен для включения веб-камеры для транслирования вашего лица в момент стрима.

Видеоблок с вебкамерой затем также можно переставить в нужное место сцены.

Настройка obs studio: звуки стрима

Настройка звуков видеострима можно настроить в 3 нижнем блоке OBS Studio.

 Подключение к основным сетям

Базовая настройка obs studio будет закончена после подключение ее к какому нибудь сервису стримов. Таких сервисов (функций в различных социальных сетях) достаточно много, но я рассмотрю 3 самые популярные —

Twitch, Youtube и Facebook Life:

Перед началом трансяляции всегда желательно проверить свое интернет-соединение. Оно проверяется через сервис http://beta.speedtest.net/ru. Здесь будет важна скорость получения данных.В базовом варианте подключение к основным сетям происходит идентично:

Далее настраиваем по конкретному сервису.

Твич-стрим

На вкладке вещание выбираем:

  1. Сервис — Твич;
  2. Сервер — ближайший к месту где вы находитесь;
  3. Ключ потока вставляем от вашего аккаунта в твитч;

Для регистрации в твич заходим на официальный сайт: https://www.twitch.tv/ и регистрируемся (проходим процесс подписки) в правом верхнем углу экрана.Далее переходим по адресу twitch.tv/dashboard — Настройки — Ключ трансляции.

Нажимаем на него, читаем предупреждение что никому не передавать (есть возможность сброса-обновления) получаем ключ и вставляем в соответствующую строку OBS Studio.

Также нужно будет оптимизироать настройки во вкладке Вывод в соответсвии с мощностью вашего компьютера.

В конце в верхнем меню OBS Studio выбираем Профиль — Дублировать.

Вводим твич и жмем ОК.

Youtube-стрим

  1. Точно также сначала создаем профиль — Профиль — Дублировать — прописываем Youtube — жмем ОК;
  2. Далее в верхнем меню переходим в настройки OBS Studio — Вещание;

Указываем сервис и сервер — youtube, ключ потока берем из своего youtube-канала:

Далее жмем начать:

Для обычного стрима копируем ключ в низу под Настройками Видеокодера:

В расширенных настройках устанавливаем нужные нам параметры, в самой OBS Studio в настройках на вкладке Видео также желательно настроить параметры под youtube стрим.

После жмем Запустить Трансляцию.

Facebook Life

Как и в предыдущих случаях сначала настроим программу через Настройки:

Переходим на вкладку Вещание — Facebook Lifes — вставляем ключ потока.

Ключ потока в данном случае берется с аккаунта с которого планируется проводить стрим.

С компьютера стрим можно проводить через созданную для этого страницу. На аккаунте создаем страницу:

На созданной странице жмем видео:

Далее выбираем галерея видео:

Жмем кнопку в эфир:

Коопируем здесь ключ потока и вставляем его в OBS Studio:

В конце жмем в OBS Studio — Запустить трансляцию.

Резюме

В базовом варианте настройка obs studio  я думаю понятна и ее можно успешно использовать для стримов в twitch, youtube,  facebook life. Имейте разные сцены с разными источниками.

webtriumf.ru

Тонкая настройка качества картинки стрима (начальный уровень) — обсуждение на GoodGame

Тонкая настройка качества картинки стрима (начальный уровень)

В данной статье будут рассмотрены основные настройки качества стрима и их возможные улучшения с любительской точки зрения.Речь пойдет о дополнительных настройках кодирования кодека x264 для программ стриминга OBS и OBS studio.Все технические данные (под спойлерами) взяты с сайта http://www.videorip.infoИнформация представлена для размышления и не является гайдом или побуждением к действию. В любом случае все действия обратимы и не несут какой-либо опасности.

 

Для начала рассмотрим стандартные настройки видео.

Кодируем используя уже готовые пресеты. Пресет - это набор оптимальных параметров влияющих скорость кодирования и качество. Чем выше скорость - тем ниже качество.Доступные пресеты:ultrafast (ультра-быстрый)superfast (супер-быстрый)veryfast (очень быстрый)faster (еще быстрее)fast (быстрый)medium (средний) все значения по умолчаниюslow (медленный)slower (медленнее)veryslow (очень медленный)placebo (плацебо)Рекомендации: Выбирайте пресет, в соответствии с вашими потребностями в скорости кодирования, качестве.

Самый распространенный veryfast (все что хуже - убого и не будет рассмотрено), а желателен не хуже fast, т.к. дает оптимальное соотношение качества и сжатия, но потребляет примерно в 2-2,5 раза больше ресурсов ЦП. Если ЦП ниже Intel i7, то возможности его использования нет.

 

Указываем уровень совместимости, в зависимости от оборудования. Так как не все железные плееры могут справиться с high.Профили:baseline - С потерей качества. Без интерлейсинга.main - С потерей качества.high - Нет ограничений. С потерей качества.

Самый оптимальный и качественный - high, а main используется для большей совместимости со старыми устройствами.

 

Выбираем нужную оптимизацию, которая установит оптимальные настройки для выбранного вами типа видео.Типы оптимизаций:film - для фильмовanimation - для аниме и мультипликацииgrain - для зернистого изображения с повышенной детализациейstillimagepsnrssimfastdecode - для быстрого декодирования содержанияzerolatency - для потокового видео

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

 

В принципе, это и есть все самые основные ключи, как минимум для новичков. Все остальные ключи необходимы для тонкой настройки и требуют полного понимания их предназначения, так как легко могут вызвать разные проблемы.

 

Максимальный интервал между ключевыми/IDR кадрами. Этот параметр контролирует количество кадров между ключевыми, и если по достижению придела ключевой кадр не наступил - принудительно его ставит. Стандартный размер GOP'а динамически вычисляется во время кодирования для максимального сжатия.IDR(ключевые) кадры - это так называемые кадры-разделители. Кадры, находящиеся в промежутке между двумя ключевыми кадрами не могут ссылаться на кадры, вне этого промежутка. Также, сами ключевые кадры являются I-кадрами, так что они не могу использоваться как референсные. По этому они могут использоваться в качестве контрольных точек в видеопотоке.Примечание: Влияет на перемотку видео в плеере. Если значения очень большие, то при перемотке(прокрутке), не по ключевым кадрам, видео в плеере будет немного притормаживать. Так как декодеру придется отрендерить все кадры начиная с ближайшего ключевого и до выбранного пользователем. Перемотка не по ключевым кадрам поддерживается на уровне плеера, кодека.Рекомендации: Значение по умолчанию применимо в большинстве случаев. Если Вы хотите использовать собственное значение, используйте следующую формулу: fps*10 (значение должно быть целым числом, кратным 10-и). Если Вы кодируете для Blu-ray или потокового видео, то возможно, Вам придется использовать значения, равные частоте кадров итогового видео. Большие значения полезны только для статичного видео.То есть для частоты кадров в 25 нужно выбирать 250, для 23,976 - 240 и для 29,970 - 300.Параметр: keyint=<integer>

Это так называемый в OBS "интервал ключевых кадров", который обычно устанавливают равным 2. Именно от этого кадра начинается возможность просмотра следующей последовательности других кадров до повторного его появления. Таким образом видео делится на более мелкие части. Этот кадр очень прожорлив по битрейту и зачастую сжирает не малую его часть, а впихивая его каждые 2 секунды приходится жертвовать львиной долей битрейта только на него. Как уменьшить это влияние будет сказано ниже, а выставив этот параметр равным 5 или 4 (обычно в фильмах установлено значение 10 сек) можно уменьшить перерасход битрейта. Естественно увеличится время ожидания изображения (звук будет идти) на экране при включении стрима на эти пару секунд, но качество заметно улучшится.

 

PS: В связи с особенностями HLS стриминга для совместимости некоторых устройств и низкой задержке стрима не рекомендуется менять стандартное значение равное 2.

 

Количество последовательных B-кадров между I- и P- кадрами. B-кадры – это кадры, в которых закодированы изменения не только от предыдущих кадров, но и от последующих. Имеют еще большую степень сжатия, чем P-кадры, но также и наихудшее качество. B-кадры подобны P-кадрам, кроме того, они могут использовать предсказание движения от будущих кадров также. Это может привести к значительному улучшению степени сжатия.Рекомендации: Оптимальные значения: 2..6.Если Вы используете b-adapt 2, то можно смело задавать bframes 16. Это самый простой способ, так как выбор оптимального значения падает на енкодер.Оптимальное значение для конкретного видео можно получить путем чтения статистики первого прохода.Примечание: При высоких значениях, больших чем необходимо, кодирование может быть значительно замедленно, без выйграша в качестве. Также большое количество В-кадров затрудняет декодирование.Диапазон: 1..16Параметр: bframes=<integer>

Самый некачественный кадр в цепочке видео. Устанавливайте в зависимости от желаемого качества видео. При фпс выше 30 можно слегка увеличить при необходимости, что поможет сохранить битрейт. По умолчанию = 3.

 

Параметр задает количество используемых рефернсных кадров. Определяет, сколько предыдущих кадров может быть связано (заимствование макроблоков) с P- или B-кадрами.Рекомендации: Приблизительно 4-6. Большие значения могут быть полезны для анимации, аниме, скринкастов и другого "статичного" видео.Примечание: При 5-ти и более референсных кадрах, качество, обычно, повышается незначительно.Кроме того, 4 - максимальное значение для 1080p, а 9 - максимальное для 720p, придерживаясь спецификации Level 4.1. Это самый высокий уровень, поддерживаемый в большинстве бытовой электроники, которая поддерживают воспроизведение H.264, включая также Xbox 360 и Playstation 3.Чем больше референсных кадров, тем медленнее кодирование.Диапазон: 0..16Параметр: ref=<integer>

Данный параметр может повысить производительность путем понижения его до 1. Не повлияет на качество при очень динамической картинке, где кадры редко имеют общие области. В veryfast значение и так 1.

 

Использование фильтра подавления блоков с параметрами - alpha (сила подавления блоков):beta (точность определения блоков). При кодировании изображение разбивается на блоки размерами 8х8 пикселей и каждый такой блок кодируется отдельно. При недостаточном битрейте, эти блоки становятся заметными. Включение данной опции поможет решить проблему.Рекомендации: Параметр "alpha" рекомендуется выбрать от -3 до 3. Большее значение увеличивает силу подавления блоков, но картинка становится немного размытой (используйте при низких битрейтах или при кодировании мультипликации). Меньшее значение уменьшает силу, зато картинка остается достаточно чёткой (используйте при высоких битрейтах). Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев. Параметр "beta" рекомендуется выбирать от -2 до 2. При больших значениях, кодек может распознать некоторые детали за блок и применить к ним фильтр подавления блоков. При меньших значениях, деталей сохранится больше, но некоторые блоки могут быть приняты за деталь (используйте меньшие значения при кодировании мультипликации - в ней четкие контуры, поэтому кодек не ошибется). Желательно чтобы этот параметр отличался не больше, чем на единицу от предыдущего. Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.Сила деблокинга вычисляется для каждого макроблока, исходя из квантизера для него и близлежащих макроблоков. Альфа определяет: является ли приграничный квадрат блочным или же на самом деле это деталь. Это похоже на порог. Бета так же похожа на порог, но используется для того, чтобы убедиться в однородности картинки с обеих приграничных сторон и, тем самым, отделить детали от блочности. Когда определена блочность, альфа решает, какую силу использовать (максимально допустимое изменение пикселя). Бета немного изменяет силу, если блок однородный. Сила деблокинга: Порог деблокинга. Порог деблокинга устанавливает жёсткость отбора блочности фильтром. Сила деблокинга регулирует, как сильно определённые блоки будут смягчены. Значения по умолчанию сочетают аккуратность удаления блочности и сохранение деталей. Значения должны лежать в диапазоне от -3 до 3 (чем ниже значения, тем меньше устраняется блочность. Отрицательные значения не означают, что блочность оставляется).Примечание: Слишком высокие значения дадут потерю многих деталей и текстур или смазывание. Установка слишком низких значений оставит резкие края и "москитный шум" (mosquito noise). Должна быть положительная взаимосвязь между двумя коэффициентами деблокинга (желательно, чтобы обе цифры были отрицательными или положительными). Если Вы увеличиваете силу, то должны увеличить и порогДиапазон: -6..6 (для alpha и beta соответственно)Параметр: deblock=<integer>:<integer>

Устанавливает сглаживание/замыливание картинки. Если позволяет запас битрейта чтобы не появились четкие силуэты квадратов, то можно спокойно повысить четкость путем присвоения отрицательных параметров. При недостатке битрейта и появлении квадратов можно попробовать сильнее размыть изображение выставлением положительных параметров. По умолчанию = 0:0.

 

Устанавливает число кадров, используемых в mb-tree ratecontrol и vbv-lookahead. Большие значения улучшают результаты mb-tree, но замедляют кодирование. Для vbv-lookahead большие значения дадут большую точность и стабильностьРекомендации: 40..60Примечание: Не может быть больше keyint. Если будет задано больше чем keyint, то x264 автоматически уменьшит его до значения keyint.Использует очень много оперативной памяти. Значения больше 100, при размере ОЗУ меньше 2Gb могут привести к падению(экстренное завершение) x264.Диапазон: 0..250Параметр: rc_lookahead=<integer>

Дает возможность сохранять/поддерживать четкость неизменных участков экрана (оверлеев, рамок и т.п.) на протяжении указанного количества кадров. При высоких значениях увеличивает нагрузку на ЦП в тяжелых случаях. Для veryfast = 10, что крайне мало.

 

Устанавливает уровень среднего прироста качества I-кадров, по сравнению с Р-кадрами.Примечание: Чем выше значение, тем выше качество I-кадров.Параметр: ip_ratio=<float>

А вот и описанный в начале статьи параметр, отвечающий за качество разделительного и самого "тяжелого" кадра. По умолчанию его качество в 1.4 раза лучше обычного кадра из последовательности. В основном он должен использоваться при резкой смене изображения для более качественного перехода, а мы его используем при типичной настройке вставляя не реже 2 сек. При условии, что для стрима битрейт обычно сильно урезан, получаем резкие скачки от хорошего кадра к резко ухудшающимся. Для снижения нагрузки на битрейт можно понизить качество этого кадра примерно в районе единицы.

 

Пожалуй, на этом закончим ознакомительную тему основных параметров тонкой настройки. Более подробный список параметров легко найти в интернете и изучить при желании.

 

Но сначала немного о паре опций цветопередачи.

 

Указывает на принудительное использование полного спектра яркости(luma) и цветности(chroma). Если off, то будет использоваться только ограниченный диапазон.Допустимые значения: on, offРекомендации: Если ваше видео оцифровка аналогового, то установите этот параметр в off. В остальных случаях выставляйте on.

В обычной OBS это расширенные опции "использовать полный диапазон", в studio - расширенные "цветовой диапазон". Предназначен для точной передачи крайних цветов (белый и черный). Полный диапазон составляет 0-255 (для ПК), а частичный = 16-235/240 (для ТВ). В основном мы видим на своих ПК именно полный диапазон, если все настроено правильно. И в чем же разница? При полном мы видим весь диапазон цветового пространства, тогда как при частичном происходит урезание цветовых краев и получается не контрастное изображение:Эта система описана в спецификации ITU-R BT601 и используется в большинстве устройств цифрового видео - телевидение, видеокамеры, DVD-video и Blu-ray.Т.к. в основном все стримят с ПК, то нужно использовать именно полный диапазон цветов. И отсюда плавно переходим к следующему пункту меню в OBS studio - расширенные "цветовое пространство", которое по умолчанию 601, т.е. урезанное. Поэтому ставим 709 для полного спектра.

-----

С цветопередачей именно на плеерах GG и Twitch все оказалось не стандартно.Начнем с GG. Оптимально приближенная к оригиналу картинка достигается на настройках цветового пространства 601 и лимитированного диапазона. Все остальные варианты искажают оригинал.На плеерах Twitch дела обстоят стандартнее - оптимально 709 и полный или частичный диапазон (разницы нет). 601 же немного искажает цвета, но диапазон опять таки не влияет.https://cloud.mail.ru/public/ERNa/A94fr6zt9 - тест от 23.05.2016

 

Напоследок небольшое сравнение основных стандартных и подстроенных параметров.Тест настроек в Quake 3 https://cloud.mail.ru/public/Kr1B/GL4J8fDQEВ углу загрузка цп кодированием.Стандартные пресеты: vf - veryfast, fast.Более детализированные: new_vf_top1 (замена veryfast), new_top1 (замена fast).Далее обозначения FPS, битрейт, разрешение и максимальный процент загрузки.Файлы обязательно скачивать, т.к. встроенный плеер перекодирует видео.ЦП intel i5-3570k @ 4200

Это лишь пример подстройки под определенные критерии - здесь это лучшая четкость и сходство с оригиналом.

 

ПРОДОЛЖЕНИЕ 1

 

Выполняет треллис квантование для повышения эффективности сжатия. На всех решениях, кроме 0, скорость падает очень сильно.Варианты:0 - отключено1 - только на макроблоках2 - вездеРекомендации: 2, но при условии совместной работы с psy-trellis, иначе происходит незначительное замыливание мелких деталей. Требует включенного CABAC.Примечание: Вариант 1 - хороший компромисс между падением скорости и повышением эффективности.Параметр: trellis=<integer>Значение по умолчанию: Отключено

Добавляет подобие эффекта глаза, когда более близкие объекты кажутся четче дальнего плана, который расплывается. Значительно увеличивает нагрузку на кодирование. Не рекомендую использовать для стрима, т.к. часто именно дальние элементы должны быть четкими.

 

Позволяет каждой 8x8 частице, в макроблоке, независимо выбирать связанный (референсный) кадр, в отличие от обычного метода, где только один референсный вектор на макроблок. Немного снижает скорость кодирования. Эта опция отключает эту возможность.Параметр: mixed_ref=<integer>Значение по умолчанию: Отключено

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

 

Определяет метод нахождения векторов движения.Доступные методы:none - отключает поиск векторов движения.spatial - использует для поиска соседние блоки одного кадра. Может повысить PSNR.temporal - использует для поиска блоки соседних кадров. Немного лучше предыдущего.auto - сам выбирает какие блоки использовать.Примечание: auto лучше всего подходит для двухпроходного режима, но так же может использоваться и при однопроходном. auto нужно задавать во время обоих проходов, иначе второй проход будет автоматически использовать temporal.Использовать none крайне не рекомендуется.Рекомендации: auto – для двухпроходного режима, и spatial - при кодировании с CRFПараметр: direct=<integer>Значение по умолчанию: spatial

Используется для улучшения динамических сцен. Иногда лучше выставлять auto, но зачастую хватает и стандартного значения.

 

Устанавливаем метод оценки движения полного пикселя.Методы: dia (diamond, ромб) - простейший поиск, начиная с одного пикселя одного кадра, начинают просматриваться соседние пиксели на соседнем кадре, на один пиксель выше, правее, ниже и левее. Выбирается наиболее вероятно сдвинувшийся пиксель и процесс повторяется до тех пор, пока не будет найден лучший пиксель или пока не будет достигнут предел диапазона поиска движения hex (hexagon, шестиугольник) - состоит из подобной стратегии, но использует для поиска 6 окружающих точек, отсюда и название - шестиугольник. Значительно эффективней, чем dia, но немного медленнее. Оптимален для повседневного кодирования.umh (неравный мультишестиугольник) - значительно медленнее, чем hex, но ищет используя сложную модель мультишестиугольника. Лучше предыдущего, способен найти сложные векторы движения, ценой потери скорости кодирования. В отличие от предыдущих алгоритмов, в этом, и во всех последующих, опция --merange задает не количество итераций, а радиус, в пределах которого будет искаться пиксель.esa (exhaustive, исчерпывающий) - высокооптимизированный интеллектуальный поиск на всей области поиска векторов движения, в пределах лучшего merange предсказания. Это математически эквивалентно методу поиска перебором, для каждого вектора движения в этой области, но быстрее. Этот метод значительно медленнее чем umh, но не дает значительного повышения качества, поэтому не рекомендован для повседневного кодирования. tesa (transformed exhausive, преобразовано-исчерпывающий) - алгоритм, который пытается улучшить эффект Hadamard преобразования, сравнивая с каждым вектором движения. Похож на esa, но немного лучше и немного медленнее.Рекомендации: umhПараметр: me=<string>Значение по умолчанию: hex

Метод сжатия, который сильно влияет на нагрузку цп. Самый оптимальный для стрима "по умолчанию", но можно повысить до umh при возможности, что даст прирост к сжатию около 20%, но увеличит загрузку цп.

 

Определяет максимальное количество попыток (с измененными данными) нахождения оптимального варианта при поиске вектора движения макроблока. Чем больше, тем лучше качество.Рекомендации: Стандартное значение для SD видео и 24 для HD видео. Падение скорости не стоит выигрыша в качестве, времени кодирования уже после 32.Желательно использовать значения кратные 4-м.Примечание: Для umh, esa и tesa, увеличение merange значительно замедлит кодирование.Для dia и hex диапазон значений: 4..16.Параметр: me_range=<integer>Значение по умолчанию: 16

Что-то типа радиуса поиска для движения. При 720р и ниже нет смысла повышать, но для 1080р можно поднять до 32 при условии повышенного предыдущего параметра.

 

Этот параметр определяет на сколько часто будут использоваться дополнительные I-кадры. x264 высчитывает метрику каждого кадра, что бы определить насколько он отличается от предыдущего. Если полученное значение меньше чем установлено для scenecut, то энкодер помещает в этом месте I-кадр, но только если последний ключевой кадр был не раньше чем --min-keyint. Если значение выше, то вставляет ключевой/IDR кадр. Полезность определения смены сцен заключается в оптимальной расстановке I-кадров в местах резкой смены сцен. Это повышает качество, но слишком частая смена приведёт к напрасной трате битрейта.Примечание: Значение "0" соответствует --no-scenecut.Диапазон: 0..100Параметр: scenecut=<integer>Значение по умолчанию: 40

Вставляет дополнительный разделительный кадр, который имеет высокий битрей. При 60 фпс и 2 секундному интервалу ключевых кадров может вставлять дополнительный разделитель каждую секунду. Отключаем, если не нужно дополнительных разделителей, выставив 0.

 

Регулирует, как сильно будет колебаться битрейт относительно установленного среднего битрейта.Рекомендации: Низкие значения ограничивают изменение битрейта, создавая выходной файл, хорошо попадающий в итоговый размер, исходя из установленного битрейта, но ухудшают способность кодека адаптироваться к изменению сложных сцен. Высокие значения увеличивают изменения (скачки) битрейта, которые ухудшают возможность потоковой передачи и делают размер непредсказуемым, но улучшают способность кодека адаптироваться к изменению сложных сцен. Установка значения в 0% даст в результате работу в режиме постоянного битрейта. Установив 100%, Вы получите изменения битрейта в зависимости от сложности кодируемой сцены. (Установив 100% Вы получите сжатие в режиме постоянного квантизера - CQ).Примечание: Задается в процентах. То есть 1.0 соответствует 1.0%.Параметр: ratetol=<float>Значение по умолчанию: 1.0

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

 

ПРОДОЛЖЕНИЕ 2

 

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

Рекомендации: При высоком значении --bframes лучше задавать значение 2.

Настройки:

  0 - полностью отключить

  1 - "быстрый" алгоритм. Этот метод позволяет использовать --bframes 16

  2 - оптимальный алгоритм, медленнее предыдущего

Примечание: В многопроходном кодировании эта опция необходима только для первого прохода, где типы кадров определены.

Параметр: b_adapt=<integer>

Значение по умолчанию: 1

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

 

Без AQ, x264, как правило, не производит перераспределение битрейта для снижения или повышения детализации сцен. AQ лучше перераспределяет битрейт между всеми макроблоками в видео.

Режимы:

0 - Не использовать AQ вообще.

1 - Разрешает AQ для перераспределения битов в каждом кадре.

2 - Авто-инвариантность AQ (экспериментальная) позволяет перераспределять биты по всему видео.

Параметр: aq=<integer>

Значение по умолчанию: 1

Помогает распределить битрейт по кадрам (1) или по всему видео (2), что дает более сбалансированное сжатие.

 

x264 разбивает каждый кадр на части(макроблоки), и кодирует каждую отдельно. Этот параметр позволяет задать дополнительные параметры разбиения для каждого типа кадров.

Доступные partitions: p8x8(включает в себя p16x8/p8x16), p4x4(включает в себя p8x4/p4x8), b8x8(включает в себя b16x8/b8x16), i8x8, i4x4

Вы можете также установить none(отключить все) или all(включить все).

Рекомендации: Значение по умолчанию - оптимально. Для получения максимально качества можно использовать all, но скорее всего будет не лучше чем используя значение по умолчанию.

Примечание: p4x4 вообще то не очень полезен и его применение значительно снижает скорость кодирования при незначительном повышении качества изображения. Для HD видео лучше вообще не использовать.

i8x8 может использоваться только в High Profile

Параметр: partitions=<string>

Значение по умолчанию: p8x8,b8x8,i8x8,i4x4

Один из ключевых параметров, который определяет размеры фрагментов (блоков) кадра для деления и последующей их обработки. Изменяя его можно усилить сглаживание либо понизить, т.е. получить заметные квадраты.

 

Задаем сложность оценки подпикселя. Уровни 1-5 просто управляют силой обработки подпикселя. Уровень 6 допускает RDO для режима предсказания, и уровень 8 допускает RDO для векторов движения и intra режимов предсказания.

Уровни:

  0 - fullpel only (не рекомендуется) 

  1 - метод предсказания SAD, одна QPel итерация 

  2 - метод предсказания SADT

  3-5 - постепенное увеличение QPel

  6 - метод предсказания RD для I-/P- кадров

  7 - метод предсказания RD для всех типов кадров

  8 - RD обработка для I-/P- кадров

  9 - RD обработка для всех типов кадров

  10 - QP-RD (требует: --trellis 2 и --aq-mode >0)

  11 - Full RD - новая опция, необходимая для будущего --trellis режима

Рекомендации: Стандартное значение или выше

Примечание: Чем выше уровень, тем ниже скорость кодирования.

Параметр: subme=<integer>

Значение по умолчанию: 7

 Определяет метод оценки и обработки. Хорошо улучшает качество. Сильно влияет на загрузку ЦП, но может повысить качество. Для стрима максимум лучше ставить не выше 9, но это потребует очень мощный ЦП. Для обычных i7 с 4-мя ядрами 4+Ггц для 1080р 60фпс не может выдержать выше 6-7. Но всегда есть исключения - просто проверяйте!

 

ПРЕДУПРЕЖДЕНИЕ: Большинство параметров взаимосвязаны и функционируют только при их выставлении. Если не видите изменений, то возможно Вы что-то делаете не так, или есть слишком слабый эффект. При правильном использовании можно значительно улучшить качество изображения. Дерзайте! 

 

Несколько примеров настроек качества:

чуть хуже veryfast (-5-10% загрузки цп) - ipratio=1.1 bframes=1 b_pyramid=0 subme=1

крутой veryfast в динамике (х2 загрузка цп) - ipratio=1.1 bframes=1 b_pyramid=0 subme=6

 

Остальные параметры изменяются по желанию, а за основу можно брать любой пресет, но тут использую veryfast.

 

Дополнительная порция тестов (возможно обновление):

Тесты в Quake 3 тут https://cloud.mail.ru/public/9hUw/qQDGraaX6

Тесты стандартных пресетов и настройки https://cloud.mail.ru/public/E4Ff/w7RH79JxQ

Тема удалена. Отменить

В данной статье будут рассмотрены основные настройки качества стрима и их возможные улучшения с любительской точки зрения.Речь пойдет о дополнительных настройках кодирования кодека x264 для программ стриминга OBS и OBS studio.Все технические данные (под спойлерами) взяты с сайта http://www.videorip.infoИнформация представлена для размышления и не является гайдом или побуждением к действию. В любом случае все действия обратимы и не несут какой-либо опасности.

 

Для начала рассмотрим стандартные настройки видео.

Кодируем используя уже готовые пресеты. Пресет - это набор оптимальных параметров влияющих скорость кодирования и качество. Чем выше скорость - тем ниже качество.Доступные пресеты:ultrafast (ультра-быстрый)superfast (супер-быстрый)veryfast (очень быстрый)faster (еще быстрее)fast (быстрый)medium (средний) все значения по умолчаниюslow (медленный)slower (медленнее)veryslow (очень медленный)placebo (плацебо)Рекомендации: Выбирайте пресет, в соответствии с вашими потребностями в скорости кодирования, качестве.

Самый распространенный veryfast (все что хуже - убого и не будет рассмотрено), а желателен не хуже fast, т.к. дает оптимальное соотношение качества и сжатия, но потребляет примерно в 2-2,5 раза больше ресурсов ЦП. Если ЦП ниже Intel i7, то возможности его использования нет.

 

Указываем уровень совместимости, в зависимости от оборудования. Так как не все железные плееры могут справиться с high.Профили:baseline - С потерей качества. Без интерлейсинга.main - С потерей качества.high - Нет ограничений. С потерей качества.

Самый оптимальный и качественный - high, а main используется для большей совместимости со старыми устройствами.

 

Выбираем нужную оптимизацию, которая установит оптимальные настройки для выбранного вами типа видео.Типы оптимизаций:film - для фильмовanimation - для аниме и мультипликацииgrain - для зернистого изображения с повышенной детализациейstillimagepsnrssimfastdecode - для быстрого декодирования содержанияzerolatency - для потокового видео

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

 

В принципе, это и есть все самые основные ключи, как минимум для новичков. Все остальные ключи необходимы для тонкой настройки и требуют полного понимания их предназначения, так как легко могут вызвать разные проблемы.

 

Максимальный интервал между ключевыми/IDR кадрами. Этот параметр контролирует количество кадров между ключевыми, и если по достижению придела ключевой кадр не наступил - принудительно его ставит. Стандартный размер GOP'а динамически вычисляется во время кодирования для максимального сжатия.IDR(ключевые) кадры - это так называемые кадры-разделители. Кадры, находящиеся в промежутке между двумя ключевыми кадрами не могут ссылаться на кадры, вне этого промежутка. Также, сами ключевые кадры являются I-кадрами, так что они не могу использоваться как референсные. По этому они могут использоваться в качестве контрольных точек в видеопотоке.Примечание: Влияет на перемотку видео в плеере. Если значения очень большие, то при перемотке(прокрутке), не по ключевым кадрам, видео в плеере будет немного притормаживать. Так как декодеру придется отрендерить все кадры начиная с ближайшего ключевого и до выбранного пользователем. Перемотка не по ключевым кадрам поддерживается на уровне плеера, кодека.Рекомендации: Значение по умолчанию применимо в большинстве случаев. Если Вы хотите использовать собственное значение, используйте следующую формулу: fps*10 (значение должно быть целым числом, кратным 10-и). Если Вы кодируете для Blu-ray или потокового видео, то возможно, Вам придется использовать значения, равные частоте кадров итогового видео. Большие значения полезны только для статичного видео.То есть для частоты кадров в 25 нужно выбирать 250, для 23,976 - 240 и для 29,970 - 300.Параметр: keyint=<integer>

Это так называемый в OBS "интервал ключевых кадров", который обычно устанавливают равным 2. Именно от этого кадра начинается возможность просмотра следующей последовательности других кадров до повторного его появления. Таким образом видео делится на более мелкие части. Этот кадр очень прожорлив по битрейту и зачастую сжирает не малую его часть, а впихивая его каждые 2 секунды приходится жертвовать львиной долей битрейта только на него. Как уменьшить это влияние будет сказано ниже, а выставив этот параметр равным 5 или 4 (обычно в фильмах установлено значение 10 сек) можно уменьшить перерасход битрейта. Естественно увеличится время ожидания изображения (звук будет идти) на экране при включении стрима на эти пару секунд, но качество заметно улучшится.

 

PS: В связи с особенностями HLS стриминга для совместимости некоторых устройств и низкой задержке стрима не рекомендуется менять стандартное значение равное 2.

 

Количество последовательных B-кадров между I- и P- кадрами. B-кадры – это кадры, в которых закодированы изменения не только от предыдущих кадров, но и от последующих. Имеют еще большую степень сжатия, чем P-кадры, но также и наихудшее качество. B-кадры подобны P-кадрам, кроме того, они могут использовать предсказание движения от будущих кадров также. Это может привести к значительному улучшению степени сжатия.Рекомендации: Оптимальные значения: 2..6.Если Вы используете b-adapt 2, то можно смело задавать bframes 16. Это самый простой способ, так как выбор оптимального значения падает на енкодер.Оптимальное значение для конкретного видео можно получить путем чтения статистики первого прохода.Примечание: При высоких значениях, больших чем необходимо, кодирование может быть значительно замедленно, без выйграша в качестве. Также большое количество В-кадров затрудняет декодирование.Диапазон: 1..16Параметр: bframes=<integer>

Самый некачественный кадр в цепочке видео. Устанавливайте в зависимости от желаемого качества видео. При фпс выше 30 можно слегка увеличить при необходимости, что поможет сохранить битрейт. По умолчанию = 3.

 

Параметр задает количество используемых рефернсных кадров. Определяет, сколько предыдущих кадров может быть связано (заимствование макроблоков) с P- или B-кадрами.Рекомендации: Приблизительно 4-6. Большие значения могут быть полезны для анимации, аниме, скринкастов и другого "статичного" видео.Примечание: При 5-ти и более референсных кадрах, качество, обычно, повышается незначительно.Кроме того, 4 - максимальное значение для 1080p, а 9 - максимальное для 720p, придерживаясь спецификации Level 4.1. Это самый высокий уровень, поддерживаемый в большинстве бытовой электроники, которая поддерживают воспроизведение H.264, включая также Xbox 360 и Playstation 3.Чем больше референсных кадров, тем медленнее кодирование.Диапазон: 0..16Параметр: ref=<integer>

Данный параметр может повысить производительность путем понижения его до 1. Не повлияет на качество при очень динамической картинке, где кадры редко имеют общие области. В veryfast значение и так 1.

 

Использование фильтра подавления блоков с параметрами - alpha (сила подавления блоков):beta (точность определения блоков). При кодировании изображение разбивается на блоки размерами 8х8 пикселей и каждый такой блок кодируется отдельно. При недостаточном битрейте, эти блоки становятся заметными. Включение данной опции поможет решить проблему.Рекомендации: Параметр "alpha" рекомендуется выбрать от -3 до 3. Большее значение увеличивает силу подавления блоков, но картинка становится немного размытой (используйте при низких битрейтах или при кодировании мультипликации). Меньшее значение уменьшает силу, зато картинка остается достаточно чёткой (используйте при высоких битрейтах). Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев. Параметр "beta" рекомендуется выбирать от -2 до 2. При больших значениях, кодек может распознать некоторые детали за блок и применить к ним фильтр подавления блоков. При меньших значениях, деталей сохранится больше, но некоторые блоки могут быть приняты за деталь (используйте меньшие значения при кодировании мультипликации - в ней четкие контуры, поэтому кодек не ошибется). Желательно чтобы этот параметр отличался не больше, чем на единицу от предыдущего. Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.Сила деблокинга вычисляется для каждого макроблока, исходя из квантизера для него и близлежащих макроблоков. Альфа определяет: является ли приграничный квадрат блочным или же на самом деле это деталь. Это похоже на порог. Бета так же похожа на порог, но используется для того, чтобы убедиться в однородности картинки с обеих приграничных сторон и, тем самым, отделить детали от блочности. Когда определена блочность, альфа решает, какую силу использовать (максимально допустимое изменение пикселя). Бета немного изменяет силу, если блок однородный. Сила деблокинга: Порог деблокинга. Порог деблокинга устанавливает жёсткость отбора блочности фильтром. Сила деблокинга регулирует, как сильно определённые блоки будут смягчены. Значения по умолчанию сочетают аккуратность удаления блочности и сохранение деталей. Значения должны лежать в диапазоне от -3 до 3 (чем ниже значения, тем меньше устраняется блочность. Отрицательные значения не означают, что блочность оставляется).Примечание: Слишком высокие значения дадут потерю многих деталей и текстур или смазывание. Установка слишком низких значений оставит резкие края и "москитный шум" (mosquito noise). Должна быть положительная взаимосвязь между двумя коэффициентами деблокинга (желательно, чтобы обе цифры были отрицательными или положительными). Если Вы увеличиваете силу, то должны увеличить и порогДиапазон: -6..6 (для alpha и beta соответственно)Параметр: deblock=<integer>:<integer>

Устанавливает сглаживание/замыливание картинки. Если позволяет запас битрейта чтобы не появились четкие силуэты квадратов, то можно спокойно повысить четкость путем присвоения отрицательных параметров. При недостатке битрейта и появлении квадратов можно попробовать сильнее размыть изображение выставлением положительных параметров. По умолчанию = 0:0.

 

Устанавливает число кадров, используемых в mb-tree ratecontrol и vbv-lookahead. Большие значения улучшают результаты mb-tree, но замедляют кодирование. Для vbv-lookahead большие значения дадут большую точность и стабильностьРекомендации: 40..60Примечание: Не может быть больше keyint. Если будет задано больше чем keyint, то x264 автоматически уменьшит его до значения keyint.Использует очень много оперативной памяти. Значения больше 100, при размере ОЗУ меньше 2Gb могут привести к падению(экстренное завершение) x264.Диапазон: 0..250Параметр: rc_lookahead=<integer>

Дает возможность сохранять/поддерживать четкость неизменных участков экрана (оверлеев, рамок и т.п.) на протяжении указанного количества кадров. При высоких значениях увеличивает нагрузку на ЦП в тяжелых случаях. Для veryfast = 10, что крайне мало.

 

Устанавливает уровень среднего прироста качества I-кадров, по сравнению с Р-кадрами.Примечание: Чем выше значение, тем выше качество I-кадров.Параметр: ip_ratio=<float>

А вот и описанный в начале статьи параметр, отвечающий за качество разделительного и самого "тяжелого" кадра. По умолчанию его качество в 1.4 раза лучше обычного кадра из последовательности. В основном он должен использоваться при резкой смене изображения для более качественного перехода, а мы его используем при типичной настройке вставляя не реже 2 сек. При условии, что для стрима битрейт обычно сильно урезан, получаем резкие скачки от хорошего кадра к резко ухудшающимся. Для снижения нагрузки на битрейт можно понизить качество этого кадра примерно в районе единицы.

 

Пожалуй, на этом закончим ознакомительную тему основных параметров тонкой настройки. Более подробный список параметров легко найти в интернете и изучить при желании.

 

Но сначала немного о паре опций цветопередачи.

 

Указывает на принудительное использование полного спектра яркости(luma) и цветности(chroma). Если off, то будет использоваться только ограниченный диапазон.Допустимые значения: on, offРекомендации: Если ваше видео оцифровка аналогового, то установите этот параметр в off. В остальных случаях выставляйте on.

В обычной OBS это расширенные опции "использовать полный диапазон", в studio - расширенные "цветовой диапазон". Предназначен для точной передачи крайних цветов (белый и черный). Полный диапазон составляет 0-255 (для ПК), а частичный = 16-235/240 (для ТВ). В основном мы видим на своих ПК именно полный диапазон, если все настроено правильно. И в чем же разница? При полном мы видим весь диапазон цветового пространства, тогда как при частичном происходит урезание цветовых краев и получается не контрастное изображение:Эта система описана в спецификации ITU-R BT601 и используется в большинстве устройств цифрового видео - телевидение, видеокамеры, DVD-video и Blu-ray.Т.к. в основном все стримят с ПК, то нужно использовать именно полный диапазон цветов. И отсюда плавно переходим к следующему пункту меню в OBS studio - расширенные "цветовое пространство", которое по умолчанию 601, т.е. урезанное. Поэтому ставим 709 для полного спектра.

-----

С цветопередачей именно на плеерах GG и Twitch все оказалось не стандартно.Начнем с GG. Оптимально приближенная к оригиналу картинка достигается на настройках цветового пространства 601 и лимитированного диапазона. Все остальные варианты искажают оригинал.На плеерах Twitch дела обстоят стандартнее - оптимально 709 и полный или частичный диапазон (разницы нет). 601 же немного искажает цвета, но диапазон опять таки не влияет.https://cloud.mail.ru/public/ERNa/A94fr6zt9 - тест от 23.05.2016

 

Напоследок небольшое сравнение основных стандартных и подстроенных параметров.Тест настроек в Quake 3 https://cloud.mail.ru/public/Kr1B/GL4J8fDQEВ углу загрузка цп кодированием.Стандартные пресеты: vf - veryfast, fast.Более детализированные: new_vf_top1 (замена veryfast), new_top1 (замена fast).Далее обозначения FPS, битрейт, разрешение и максимальный процент загрузки.Файлы обязательно скачивать, т.к. встроенный плеер перекодирует видео.ЦП intel i5-3570k @ 4200

Это лишь пример подстройки под определенные критерии - здесь это лучшая четкость и сходство с оригиналом.

 

ПРОДОЛЖЕНИЕ 1

 

Выполняет треллис квантование для повышения эффективности сжатия. На всех решениях, кроме 0, скорость падает очень сильно.Варианты:0 - отключено1 - только на макроблоках2 - вездеРекомендации: 2, но при условии совместной работы с psy-trellis, иначе происходит незначительное замыливание мелких деталей. Требует включенного CABAC.Примечание: Вариант 1 - хороший компромисс между падением скорости и повышением эффективности.Параметр: trellis=<integer>Значение по умолчанию: Отключено

Добавляет подобие эффекта глаза, когда более близкие объекты кажутся четче дальнего плана, который расплывается. Значительно увеличивает нагрузку на кодирование. Не рекомендую использовать для стрима, т.к. часто именно дальние элементы должны быть четкими.

 

Позволяет каждой 8x8 частице, в макроблоке, независимо выбирать связанный (референсный) кадр, в отличие от обычного метода, где только один референсный вектор на макроблок. Немного снижает скорость кодирования. Эта опция отключает эту возможность.Параметр: mixed_ref=<integer>Значение по умолчанию: Отключено

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

 

Определяет метод нахождения векторов движения.Доступные методы:none - отключает поиск векторов движения.spatial - использует для поиска соседние блоки одного кадра. Может повысить PSNR.temporal - использует для поиска блоки соседних кадров. Немного лучше предыдущего.auto - сам выбирает какие блоки использовать.Примечание: auto лучше всего подходит для двухпроходного режима, но так же может использоваться и при однопроходном. auto нужно задавать во время обоих проходов, иначе второй проход будет автоматически использовать temporal.Использовать none крайне не рекомендуется.Рекомендации: auto – для двухпроходного режима, и spatial - при кодировании с CRFПараметр: direct=<integer>Значение по умолчанию: spatial

Используется для улучшения динамических сцен. Иногда лучше выставлять auto, но зачастую хватает и стандартного значения.

 

Устанавливаем метод оценки движения полного пикселя.Методы: dia (diamond, ромб) - простейший поиск, начиная с одного пикселя одного кадра, начинают просматриваться соседние пиксели на соседнем кадре, на один пиксель выше, правее, ниже и левее. Выбирается наиболее вероятно сдвинувшийся пиксель и процесс повторяется до тех пор, пока не будет найден лучший пиксель или пока не будет достигнут предел диапазона поиска движения hex (hexagon, шестиугольник) - состоит из подобной стратегии, но использует для поиска 6 окружающих точек, отсюда и название - шестиугольник. Значительно эффективней, чем dia, но немного медленнее. Оптимален для повседневного кодирования.umh (неравный мультишестиугольник) - значительно медленнее, чем hex, но ищет используя сложную модель мультишестиугольника. Лучше предыдущего, способен найти сложные векторы движения, ценой потери скорости кодирования. В отличие от предыдущих алгоритмов, в этом, и во всех последующих, опция --merange задает не количество итераций, а радиус, в пределах которого будет искаться пиксель.esa (exhaustive, исчерпывающий) - высокооптимизированный интеллектуальный поиск на всей области поиска векторов движения, в пределах лучшего merange предсказания. Это математически эквивалентно методу поиска перебором, для каждого вектора движения в этой области, но быстрее. Этот метод значительно медленнее чем umh, но не дает значительного повышения качества, поэтому не рекомендован для повседневного кодирования. tesa (transformed exhausive, преобразовано-исчерпывающий) - алгоритм, который пытается улучшить эффект Hadamard преобразования, сравнивая с каждым вектором движения. Похож на esa, но немного лучше и немного медленнее.Рекомендации: umhПараметр: me=<string>Значение по умолчанию: hex

Метод сжатия, который сильно влияет на нагрузку цп. Самый оптимальный для стрима "по умолчанию", но можно повысить до umh при возможности, что даст прирост к сжатию около 20%, но увеличит загрузку цп.

 

Определяет максимальное количество попыток (с измененными данными) нахождения оптимального варианта при поиске вектора движения макроблока. Чем больше, тем лучше качество.Рекомендации: Стандартное значение для SD видео и 24 для HD видео. Падение скорости не стоит выигрыша в качестве, времени кодирования уже после 32.Желательно использовать значения кратные 4-м.Примечание: Для umh, esa и tesa, увеличение merange значительно замедлит кодирование.Для dia и hex диапазон значений: 4..16.Параметр: me_range=<integer>Значение по умолчанию: 16

Что-то типа радиуса поиска для движения. При 720р и ниже нет смысла повышать, но для 1080р можно поднять до 32 при условии повышенного предыдущего параметра.

 

Этот параметр определяет на сколько часто будут использоваться дополнительные I-кадры. x264 высчитывает метрику каждого кадра, что бы определить насколько он отличается от предыдущего. Если полученное значение меньше чем установлено для scenecut, то энкодер помещает в этом месте I-кадр, но только если последний ключевой кадр был не раньше чем --min-keyint. Если значение выше, то вставляет ключевой/IDR кадр. Полезность определения смены сцен заключается в оптимальной расстановке I-кадров в местах резкой смены сцен. Это повышает качество, но слишком частая смена приведёт к напрасной трате битрейта.Примечание: Значение "0" соответствует --no-scenecut.Диапазон: 0..100Параметр: scenecut=<integer>Значение по умолчанию: 40

Вставляет дополнительный разделительный кадр, который имеет высокий битрей. При 60 фпс и 2 секундному интервалу ключевых кадров может вставлять дополнительный разделитель каждую секунду. Отключаем, если не нужно дополнительных разделителей, выставив 0.

 

Регулирует, как сильно будет колебаться битрейт относительно установленного среднего битрейта.Рекомендации: Низкие значения ограничивают изменение битрейта, создавая выходной файл, хорошо попадающий в итоговый размер, исходя из установленного битрейта, но ухудшают способность кодека адаптироваться к изменению сложных сцен. Высокие значения увеличивают изменения (скачки) битрейта, которые ухудшают возможность потоковой передачи и делают размер непредсказуемым, но улучшают способность кодека адаптироваться к изменению сложных сцен. Установка значения в 0% даст в результате работу в режиме постоянного битрейта. Установив 100%, Вы получите изменения битрейта в зависимости от сложности кодируемой сцены. (Установив 100% Вы получите сжатие в режиме постоянного квантизера - CQ).Примечание: Задается в процентах. То есть 1.0 соответствует 1.0%.Параметр: ratetol=<float>Значение по умолчанию: 1.0

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

 

ПРОДОЛЖЕНИЕ 2

 

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

Рекомендации: При высоком значении --bframes лучше задавать значение 2.

Настройки:

  0 - полностью отключить

  1 - "быстрый" алгоритм. Этот метод позволяет использовать --bframes 16

  2 - оптимальный алгоритм, медленнее предыдущего

Примечание: В многопроходном кодировании эта опция необходима только для первого прохода, где типы кадров определены.

Параметр: b_adapt=<integer>

Значение по умолчанию: 1

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

 

Без AQ, x264, как правило, не производит перераспределение битрейта для снижения или повышения детализации сцен. AQ лучше перераспределяет битрейт между всеми макроблоками в видео.

Режимы:

0 - Не использовать AQ вообще.

1 - Разрешает AQ для перераспределения битов в каждом кадре.

2 - Авто-инвариантность AQ (экспериментальная) позволяет перераспределять биты по всему видео.

Параметр: aq=<integer>

Значение по умолчанию: 1

Помогает распределить битрейт по кадрам (1) или по всему видео (2), что дает более сбалансированное сжатие.

 

x264 разбивает каждый кадр на части(макроблоки), и кодирует каждую отдельно. Этот параметр позволяет задать дополнительные параметры разбиения для каждого типа кадров.

Доступные partitions: p8x8(включает в себя p16x8/p8x16), p4x4(включает в себя p8x4/p4x8), b8x8(включает в себя b16x8/b8x16), i8x8, i4x4

Вы можете также установить none(отключить все) или all(включить все).

Рекомендации: Значение по умолчанию - оптимально. Для получения максимально качества можно использовать all, но скорее всего будет не лучше чем используя значение по умолчанию.

Примечание: p4x4 вообще то не очень полезен и его применение значительно снижает скорость кодирования при незначительном повышении качества изображения. Для HD видео лучше вообще не использовать.

i8x8 может использоваться только в High Profile

Параметр: partitions=<string>

Значение по умолчанию: p8x8,b8x8,i8x8,i4x4

Один из ключевых параметров, который определяет размеры фрагментов (блоков) кадра для деления и последующей их обработки. Изменяя его можно усилить сглаживание либо понизить, т.е. получить заметные квадраты.

 

Задаем сложность оценки подпикселя. Уровни 1-5 просто управляют силой обработки подпикселя. Уровень 6 допускает RDO для режима предсказания, и уровень 8 допускает RDO для векторов движения и intra режимов предсказания.

Уровни:

  0 - fullpel only (не рекомендуется) 

  1 - метод предсказания SAD, одна QPel итерация 

  2 - метод предсказания SADT

  3-5 - постепенное увеличение QPel

  6 - метод предсказания RD для I-/P- кадров

  7 - метод предсказания RD для всех типов кадров

  8 - RD обработка для I-/P- кадров

  9 - RD обработка для всех типов кадров

  10 - QP-RD (требует: --trellis 2 и --aq-mode >0)

  11 - Full RD - новая опция, необходимая для будущего --trellis режима

Рекомендации: Стандартное значение или выше

Примечание: Чем выше уровень, тем ниже скорость кодирования.

Параметр: subme=<integer>

Значение по умолчанию: 7

 Определяет метод оценки и обработки. Хорошо улучшает качество. Сильно влияет на загрузку ЦП, но может повысить качество. Для стрима максимум лучше ставить не выше 9, но это потребует очень мощный ЦП. Для обычных i7 с 4-мя ядрами 4+Ггц для 1080р 60фпс не может выдержать выше 6-7. Но всегда есть исключения - просто проверяйте!

 

ПРЕДУПРЕЖДЕНИЕ: Большинство параметров взаимосвязаны и функционируют только при их выставлении. Если не видите изменений, то возможно Вы что-то делаете не так, или есть слишком слабый эффект. При правильном использовании можно значительно улучшить качество изображения. Дерзайте! 

 

Несколько примеров настроек качества:

чуть хуже veryfast (-5-10% загрузки цп) - ipratio=1.1 bframes=1 b_pyramid=0 subme=1

крутой veryfast в динамике (х2 загрузка цп) - ipratio=1.1 bframes=1 b_pyramid=0 subme=6

 

Остальные параметры изменяются по желанию, а за основу можно брать любой пресет, но тут использую veryfast.

 

Дополнительная порция тестов (возможно обновление):

Тесты в Quake 3 тут https://cloud.mail.ru/public/9hUw/qQDGraaX6

Тесты стандартных пресетов и настройки https://cloud.mail.ru/public/E4Ff/w7RH79JxQ

goodgame.ru

Запись рабочего стола в OBS Studio

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

Огромным преимуществом приложения есть то, что оно кроссплатформенное, т.е. его можно установить на разные операционные системы: Windows, Mac OS и Linux.

Установка и первый запуск OBS Studio (Windows)

Скачайте OBS Studio с официального сайта, запустите инсталлятор. Если у Вас не установлен компонент Microsoft C++ Redistributable (версия 2013 на момент написания статьи), установщик предложит скачать его и установить, а затем прервет свою работу. Он также предупредит, что даже если у Вас 64 разрядная система, нужно будет установить обе версии: vcredist_x64 и vcredist_x86.

После установки компонентов снова запустите инсталлятор программы OBS Studio и просто следуйте его шагам, чтобы завершить установку.

При первом запуске приложение запустит "Мастер автоматической настройки", от которого Вы можете отказаться и следовать дальше этой инструкции.

В первую очередь нужно захватить изображение рабочего стола. В поле "Сцена" должна уже быть автоматически создана сцена. В поле "Источник" нажмите кнопку "+" и в контекстном меню выберите пункт "Захват экрана".

Как видно на картинке выше, на изображение рабочего стола можно также наложить видео с веб-камеры (пункт "Устройство захвата видео") и другое, и наполнить, таким образом, картинку Вашего видео. В появившемся окне можете переименовать, если хотите, название источника, затем нажмите кнопку ОК.

В следующем окне свойств источника можно выбрать экран (если у Вас их несколько), а также отключить отображение курсора на видео (по желанию).

Нажмите кнопку "ОК" и в окне предпросмотра видео основного окна приложения OBS Studio должен появиться захваченный программой рабочий стол компьютера.

Настройка OBS Studio

В рамках данной статьи будет приведена только базовая настройка, необходимая для записи видео с экрана. Чтобы открыть окно настроек, нажмите пункт меню "Файл" и выберите подпункт "Настройки".

Вывод

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

Раздел "Потоковое вещание"

В разделе "Потоковое вещание" можно оставить все по умолчанию, кроме битрейта. Если Вы хотите записывать видео в HD (1280x720p), битрейт должен быть в пределах 2500 – 3500, если же Вы записываете в Full HD (1920x1080p), битрейт стоит увеличить до 4000 – 6000. Не забывайте, увеличение битрейта повышает качество видео, но при этом растет и размер файла.

Раздел "Запись"

Здесь Вы можете изменить папку сохранения видео. Также желательно изменить формат файлов на "mp4" (самый популярный, а также используемый на YouTube формат). Самый важный пункт – "Качество записи". Если Вы хотите записывать динамические сцены (например, игры), оставьте пункт "То же, что у трансляции", тогда битрейт и другие настройки будут браться из раздела "Потоковое вещание". Если на Вашем видео будет в основном статичная картинка (рабочий стол, проводник, браузер и т.д.), то установите качество записи в "Неотличимое качество, большой размер файла". В этом случае Ваше видео будет записываться с битрейтом >1000 Кбит/с (~10 Мб/мин или ~600 Мб/ч). Ну а если у Вас вообще мало места на компьютере, можете выбрать пункт "Высокое качество, средний размер файла", тогда Ваше видео будет записываться с битрейтом <1000 Кбит/с (~5 Мб/мин или ~300 Мб/ч).

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

Аудио

В принципе, в разделе аудио все можно оставить по умолчанию, но если нужно, Вы можете настроить источники звука для записи вместе с видео, а именно выбрать (или отключить) микрофон в списке "Mic/Auxiliary Аудиоустройство", а также в списке "Desktop Аудиоустройство" выбрать (или отключить) звуковую карту для записи звука с компьютера.

Видео

В разделе Видео можно настроить разрешение и частоту кадров. Обычно здесь оставляют разрешение видео, равное разрешению монитора. Если Вы собираетесь выгружать видео на YouTube, он сам сожмет его до нужного разрешения.

В списке "Базовое (основа) разрешение" выберите разрешение монитора, а в списке "Выходное (масштабированное) разрешение" – максимальное доступное.

В поле "Общие значения FPS" установите нужную частоту кадров видео. Наиболее распространённое значение – 30 кадров в секунду.

Если Вы не знаете разрешение своего монитора, кликните правой кнопкой мыши на рабочем столе и выберите пункт контекстного меню "Параметры экрана" (Windows 10), а в открывшемся окне нажмите на ссылку "Дополнительные параметры экрана".

Горячие клавиши

В этом разделе можно настроить полезные клавиши, позволяющие запустить и остановить запись видео, причем это могут быть как клавиши на клавиатуре, так и дополнительные кнопки мыши.

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

Чтобы сохранить сделанные настройки, нажмите кнопки "Применить" и "ОК".

На этом настройка завершена, можете приступать к записи видео. Для этого нажмите на кнопку "Записать видео" в основном окне приложения или предварительно настроенную горячую клавишу. Уровень громкости микрофона и звуковой карты компьютера можно регулировать в разделе "Микшер" во время записи (правда, чтобы услышать результат, нужно просмотреть записанное видео).

Управлять записью видео можно также в трее Windows, кликнув правой кнопкой мыши по иконке и выбрав команду "Начать запись/Остановить запись". Там же можно убрать (восстановить) приложение "OBS Studio" с панели задач, выбрав команду "Скрыть/Показать".

it-handbook.ru


Смотрите также