Всем доброго времени суток. С вами Suppie, и я бы хотел поделиться ответами на вопросы, возникающими у тех, кто только начинает заниматься стримингом (streaming, broadcasting).
Хотелось бы сразу отметить, что если Вам интересен какой-то конкретный момент - оставьте об этом комментарий.
1. Какой программой выполняется стриминг?
На данный момент лидирующей программой для стриминга является OBS (Open Broadcaster Software), так как распространяется под лицензией свободного программного обеспечения - говоря простым языком, она бесплатна.
Моя рекомендация: используйте последнюю версию OBS Studio, скачать которую Вы можете на официальном сайте.
Причина выбора
OBS Studio отличается от OBS Classic тем, что она была переписана на языке программирования С++, что позволило сделать программу более оптимизированной в плане распределения используемых ресурсов (процессора, оперативной памяти), а также кроссплатформенной (работает на Windows, Mac и UNIX).
2. Как подобрать оптимальные настройки OBS Studio для стриминга?
Выполнить основную работу по настройке Вам поможет страничка OBS Estimator, где необходимо будет указать:
Какой процессор Вы имеете? (What kind of CPU do you have?)
Какая у Вас видеокарта? (What kind of graphics card do you have?)
Какие игры Вы планируете стримить? (What kind of game are you streaming?)
Насколько быстрая у Вас скорость выгрузки данных в Интернет? (How fast is your upload speed?)
Какое у Вас разрешение экрана? (What is your approximate screen size / in-game resolution?)
Для ответа на вопрос о скорости выгрузки в Интернет Вам предлагают использовать маленькую утилиту TwitchTest, которую для Вашего удобства я выкачал и проверил через Kaspersky Internet Security (лицензионный):
Сразу стоит сказать, что проверка занимает достаточное время (можно вполне успеть поесть / сходить в душ). По окончанию проверки Вы увидите её результат в следующем виде:
Результат работы TwitchTest
Краткий экскурс по колонкам и их значениям:
Server - конкретный сервер Twitch
Bandwidth - полоса пропускания (больше - лучше).
RTT (Round-Trip delay Time) - время, затраченное на отправку данных и подтверждение об их получении (меньше - лучше).
Quality - оценка качества сигнала (больше - лучше).
В данном примере (для меня), лучший сервер для стриминга - EU: Stockholm, Sweden, качество для него - 100.
После того, как вы ввели на странице OBS Estimator значение Bandwidth из утилиты TwitchTest для выбранного сервера, вам отобразятся подсказки, позволяющие выполнить начальную конфигурацию OBS Studio.
На моём примере для EU: Stockholm, Sweden bandwidth был 10000+, вот что мне отобразилось:
Обратите внимание на совет, связанный с FPS (чем больше FPS для стриминга, тем больше нагрузка на процессор, что может вызвать торможение / зависание как картинки стрима, так и вашей игры), а также отдельное внимание обратите на секцию Network Advice, где указаны советы для сетевых параметров стриминга. На моём примере:
Мне подсказывают, что моей скорости выгрузки в Интернет достаточно для стриминга в разрешении 1280*720 / 1920*1080
Мне предлагают включить CFR для совместимости с сервисами стриминга
Мне предлагают включить CBR для стабильности трансляции
Рекомендуют битрейт и размер буфера выставить равным 3500 килобита в секунду
Важное замечание: на самом деле рекомендуется выставлять размер буфера в 1,2-1,5 раза большим, чем размер битрейта, для возможности до- / презагрузки видеопотока на стороне пользователя. Таким образом, на примере рекомендуемый битрейт я бы оставил равным 3500, а вот размер буфера - в диапазоне от 4200 до 5250.
Большая часть донастройки канала осуществляется вручную, путём запуска стрима и отслеживания его качества на другом устройстве / при помощи друзей.
От себя добавлю, что даже топовые стримеры не гонятся за картинкой с разрешением 1920*1080 и частотой кадров 60 FPS, поскольку часто зрители смотрят стрим с мобильных устройств / из мест с плохой пропускной способностью Интернет-канала, самым распространённым вариантом является стриминг с разрешением 1280*720 и частотой кадров 30 FPS.
3. Настройка OBS Studio для стриминга
Давайте наконец рассмотрим подробно настройки OBS Studio:
Основное окно OBS Studio
Основные интересующие вас элементы основного окна:
Поле Scenes (Сцены)- в данном поле настраиваются общие сцены для стриминга, включающие в себя определённый набор элементов из окна Sources. Pro Tip: рекомендую иметь как минимум две сцены: основную, на которой есть источник записи игры и запасную, на случай если Вам нужно отойти от компьютера. Также советую настроить для этих целей горячие клавиши (например, F7 - переключение на основную сцену, F8 - переключение на запасную сцену).
Поле Sources (Источники)- в данном поле вы добавляете различные источники (игру, картинки, текст), которые хотите показывать на стриме. Pro Tip: не пренебрегайте возможностью задания названия источнику, так как в дальнейшем это позволит Вам быстрее и легче разобраться в Ваших источниках.
Поле Mixer (Микшер)- для управления Вашими аудио-источниками. Полезно, если пользователи жалуются, что звук из игры громче, чем Ваш голос.
Элементы управления Scene Transitions (Переходы между сценами) - задают формат переключения между сценами (выпадающий список - стиль переключения (Fade - сцены плавно изменяют прозрачности, заменяя друг друга), Duration (длительность) - в течение какого времени будет осуществляться переход).
OBS Studio: окно Settings - Stream
Описание полей:
Stream Type - можно выбрать существующие сервисы (Streaming Services), либо какой-то свой / новый сервис стриминга (Custom Streaming Services)
Service - выбор сервиса для стриминга.
Server - сервер выбранного сервиса, на который вы будете отправлять Ваш видеопоток. Подробнее выбор сервера был описан выше.
Stream Key - Ваш персональный ключ для стриминга, ссылка для его получения была указана выше.
OBS Studio: окно Settings - Video
На данной вкладке настраиваются основные свойства вашего видеопотока - разрешение и частота кадров.
Base (Canvas) Resolution - разрешение Вашего экрана / игры.
Output (Scaled) Resolution - разрешение, с которым вы хотите стримить. Совет по этому разрешению я давал выше, и также он отображён на данном скриншоте.
Downscale Filter - алгоритм, по которому будет производиться уменьшение исходной картинки. В наличии имеются три варианта: Bilinear, Bicubic и Lanczos. Все варианты потребляют ресурсы процессора, Bilinear меньше всех, Lanczos - больше всех. Pro Tip: используйте Lanczos, если Ваш процессор лучше, чем i5 2500k/3570k, либо i7, либо AMD FX-8xxx, тогда влияние на производительность будет минимально (тут отдельно хочу затронуть тему обновления комплектующих ПК - если Вы стримите и выбираете что обновить в первую очередь: старый процессор или старую видеокарту - отдавайте предпочтение процессору, во избежание bottlenecking'а и лагающего стрима).
Ниже вы можете настроить частоту кадров вашего видеопотока, выбрав из стандартных значений (Common FPS Values) или задав своё (рекомендую стандартные).
OBS Studio: окно Settings - Advanced
Здесь довольно много свойств, но будет полезно понимать, что они означают:
General > Process Priority - приоритет процесса OBS Studio. Чем выше приоритет, тем больше уверенность, что OBS Studio получит все необходимые ресурсы (память, процессор, диск) для работы.
Video > Renderer - выбор основного инструмента для рендеринга видео. Доступны два варианта: DirectX и OpenGL. Разница следующая: DirectX работает только на Windows и имеет доступ к инструментам, улучшающим производительность захвата видео. OpenGL - работает везде (Mac, UNIX). Более подробное сравнение OpenGL и DirectX. Pro Tip: если у вас Windows - используйте DirectX
Video > Video Adapter - выбор устройства для захвата видео (используется, если у вас есть отдельная внешняя карта для захвата видео ПРИМЕР)
Video > Color Format - выбор варианта цветовой модели для видео. В зависимости от модели изменяется цветовая гамма Вашей картинки. Основных формата два: YUV (NV12, I420 и I444) и RGB, отличаются они принципом цветопередачи (YUV состоит из каналов яркости (Y) и двух цветоразностных (U и V), в то время как RGB состоит из трёх цветоразностных каналов - красного, зелёного и синего). Pro Tip: самый оптимальный вариант - NV12.
Video > YUV Color Space - выбор матрицы цветопередачи. Основных параметров два: 601 и 709. Для понимания, поясню что это и с чем это едят: эти стандарты используются при декодировании видеосигнала из цифровой формы и аналоговую и обратно. Типичная схема выглядит так: RGB картинка - матрица стандарта - YCbCr - матрица стандарта - RGB картинка. Pro Tip: если вы стримите видео в широкоформатном HD разрешении (1280*720 или 1920*1080), лучше всего подойдёт вариант 709, в противном случае - 601.
Video > YUV Color Range - определяет пороговые значения чёрного и белого цветов. Два варианта: Full - диапазон по RGB от 0 до 255 и Partial - диапазон от 16 до 235. Pro Tip: ecть способ проверить, какой из диапазонов пороговых значений будет вам ближе. Как правило, Partial (стоящий по-умолчанию) не вызывает никаких проблем, но это Partial
Recording - настройка записи стрима на ваш компьютер, изменения там, как правило, не требуются.
Stream Delay - дополнительная задержка стрима, за счёт сохранения в оперативной памяти вашего компьютера видеопотока и его отложенной отправки на сервера.
Automatically Reconnect - автоматическое переподключение к сервисам стриминга, если Интернет-соединение дало сбой.
Network - выбор сетевого устройства, через которое осуществляется соединение с Интернетом. Как правило, изменений не требует.
4. Дополнительная информация
Стриминг in-depth (или как это работает от и до)
Алгоритм процесса стриминга:
Вы запускаете игру и начинаете трансляцию в OBS Studio
OBS Studio записывает видеопоток от вашей игры и отправляет его на сервера сервиса (будь то Twitch, YouTube и т.д.)
В зависимости от вашего аккаунта, сервера сервиса обрабатывают Ваш видеопоток (каналы на Twitch с платной подпиской обрабатываются транскодерами, позволяющими изменять качество изображения конечным пользователем)
И отправляют его пользователям, которые смотрят Ваш канал
В связи с этим помните, что если Ваши зрители жалуются на качество картинки / тормоза / прогрузку, то вам необходимо:
Проверить параметр Dropped Frames / CPU в OBS Studio. Если значение не равно нулю и растёт со временем - уменьшить битрейт / буффер / разрешение стриминга - проблема на Вашей стороне.
Если у вас нет Dropped Frames и CPU загружен не на 100% - следовательно, видеопоток от Вас на серверы стабилен, проблема на стороне зрителя.
Словарик непонятных терминов / сокращений
Bottlenecking (Бутылочное горлышко) - явление снижения производительности компьютера. Типичный пример: связка из слабого, старого процессора и топовой видеокарты - процессор будет не в состоянии загрузить как следует видеокарту, что приведёт к не только не изменившемуся, но и сниженному FPS в игре.
Bitrate - битрейт - количество бит (единица данных), требуемое для хранения одной секунды контента (видео, музыки и т.д.).
Buffer - буфер - дополнительное место на жёстком диске (в оперативной памяти), которое используется для временного кратковременного хранения данных.
FPS (Frames Per Second) - частота смены кадров - количество сменяемых кадров на экране за единицу времени.
Dropped Frames - потерянные кадры - проблема, возникающая при потере кадров при высокой загруженности процессора / низкой пропускной способности канала связи для указанного битрейта.
CFR (Constant Frame Rate) - постоянная частота кадров - позволяет вести трансляцию с постоянной частотой кадров, используется для совместимости с сервисами для стриминга.
CBR (Constant Bitrate Rate) - постоянный битрейт - позволяет вести трансляцию с постоянным битрейтом, используется для более стабильной картинки.
Pro Tip (Professional Tip) - подсказка, которая является достаточно хорошей для рассмотрения и рекомендуется к использованию.
История изменений
9/22/2016 - гайд написан и выложен на форум
9/23/2016 - добавил гайд по настройкам OBS Studio
Сообщение отредактировал Suppie: 23 сентября 2016 - 13:19