Language not available Language not available Language not available

This post is not available in your language. Here are some other options:

Обновления Twitch Studio Beta

Apr 6 2020

Twitch Studio Beta, наше бесплатное программное обеспечение для проведения трансляций, которое мы разработали, чтобы облегчить новичкам знакомство с Twitch, избавляет от необходимости сложной настройки и управления трансляцией. 

Недавно мы обновили Twitch Studio, добавив четыре новые функции: настройка зеленого экрана одним щелчком мыши, захват окна браузера Chrome, захват игр при включенной технологии Vulkan и поддержка нескольких аудиоисточников. Как же нам удалось воплотить эти функции в жизнь? Читайте дальше, и узнаете!

One-Click Green Screen  (Chroma Key)

Хромакей, более известный как зеленый экран, — это фильтр, который используется для удаления фона изображения, получаемого с веб-камеры. Скорее всего, вы уже видели этот фильтр в действии на трансляциях любимых стримеров. Зеленые экраны дают стримерам возможность персонализировать свои трансляции: с их помощью можно динамически изменять фон стрима и делать контент еще более привлекательным и профессиональным. Однако процесс настройки зеленого экрана вручную может занимать много времени и требовать большого количества корректировок. Именно поэтому мы создали функцию автоматического распознавания зеленого экрана, которая позволяет настраивать параметры хромакея и обнаруживать зеленый экран одним щелчком мыши.

Так как же работает зеленый экран? Если вы используете сплошной одноцветный фон, фильтр может распознать все пиксели этого цвета и сделать их прозрачными. Часто эту процедуру проделывают с использованием зеленого фона или полотна, специально отведенного под эти цели, но вы также можете использовать любой сплошной цвет, который не появляется на переднем плане. В то время как для человека сплошной фон может выглядеть как один цвет, компьютерная технология видит его совсем иначе. Работа функции при наличии теней и неравномерного освещения означает, что компьютер воспринимает этот фон как целую гамму цветов. Чтобы учесть это, фильтр игнорирует яркость каждого пикселя и вместо этого смотрит только на цветность.

Одного игнорирования яркости не всегда достаточно. Различия в освещении также изменяют цветность пикселей. Чтобы это учесть, фильтр также имеет настройку «Сходство», контролирующую то, насколько близкой должна быть цветность пикселя к целевому цвету фона, который нужно удалить.

Все это достаточно хорошо работает при условии, что у вас сравнительно равномерное освещение на заднем плане и вы правильно настроили все параметры, однако корректировка этих настроек требует достаточного умения и терпения. Если значение сходства слишком велико, цвета с переднего плана будут по ошибке совмещены, а если это значение слишком маленькое, будут отображаться некоторые участки фона. Поиск правильных настроек усложняется тем, что на самом деле существуют два параметра, которые необходимо скорректировать, чтобы найти правильные настройки: целевой цвет и значение сходства. И вот тут-то вам на помощь приходит функция настройки зеленого экрана одним щелчком мыши в Twitch Studio.

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

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

И вот так просто мы можем выбрать оптимальные настройки без каких-либо хлопот!

Захват окна в Chrome

Для захвата окна в программном обеспечении для трансляций исторически использовалась функция Windows API под названием BitBlt. Это очень эффективно и в большинстве случаев работает хорошо, но некоторые приложения используют более современные методы рендеринга, которые вызывают сбой данного метода. Это чаще всего заметно при попытке захвата окна Chrome или других приложений на базе Chrome (таких как Discord, Slack, Spotify, VS Code и др.). В результате этого во время трансляции появляется черный экран без каких-либо сообщений об ошибке, которые могут помочь стримеру своевременно разобраться с проблемой. 

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

Нам хотелось улучшить положение вещей. PrintWindow — это еще один API, который можно использовать для захвата содержимого других окон, но по умолчанию он в основном реализует пустой или ненадежный вывод этих окон. Однако оказалось, что функция принимает недокументированный флаг PW_RENDERFULLCONTENT, который запускает полную перерисовку целевого окна и решает эту проблему.

Этот новый метод захвата — не панацея, учитывая, что он заставляет целевое окно выполнять дополнительную работу для визуализации на выходе, но это определенно лучше, чем не получить на выходе совсем ничего. Чтобы убедиться, что снижение производительности происходит только тогда, когда это действительно необходимо, мы включаем этот режим захвата по умолчанию только для приложений, про которые известно, что у них возникают проблемы с традиционным методом BitBlt, и разрешаем пользователям включать «Совместимость захвата» в любых других случаях, которые мы могли пропустить. Это позволяет обеспечить работу захвата окон практически во всех случаях, при этом оптимизируя производительность.

Захват игр на базе Vulkan 

Мы знаем, что игровая индустрия постоянно развивается, поэтому приоритетная задача команды Twitch Studio — идти в ногу с новейшими технологиями и помогать авторам транслировать новейшие игры. Для этого Twitch Studio теперь поддерживает захват игр, работающих на графическом API Vulkan. Это был интересный проект, поскольку, в отличие от других API рендеринга, Vulkan предоставляет способ захвата игр и рендеринга оверлеев без необходимости каких-либо дополнительных настроек. Захват игры обычно выполняется путем введения в запущенной игре кода, который подключается к API рендеринга и перехватывает каждый кадр игрового процесса для создания копии. Vulkan предоставляет систему слоев, которая позволяет стороннему программному обеспечению (например, приложениям для проведения трансляций) регистрировать специальную DLL, которая будет автоматически загружаться во все игры с Vulkan. Это упрощает процесс захвата игры, позволяя нам обойтись без сложностей при использовании современных методов внедрения кода.

Несколько аудиоисточников

Бета-версия Twitch Studio была запущена с начальным набором функций, нацеленных на упрощение задач для новых стримеров, поэтому мы использовали упрощенную модель звука с использованием одного микрофона и с одним захватом рабочего стола на ПК. Поскольку мы расширяем набор функций, отталкиваясь от отзывов стримеров, одной из наиболее востребованных функций стала поддержка дополнительных аудиоканалов/устройств. Недавно мы запустили основной рефакторинг базовой аудиосистемы, чтобы реализовать это.

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

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

In other news