Aktualizacje wersji beta Twitch Studio
Po 30•maja•2024•r. zakończymy wsparcie dla Twitch Studio. Zapoznaj się z naszymi sugerowanymi narzędziami do streamowania tutaj, aby znaleźć inny program, który będzie Ci odpowiadał.
Twitch Studio Beta, nasz darmowy program do transmisji stworzony z myślą o ułatwieniu nowym streamerom początków na Twitchu, likwiduje konieczność zgadywania podczas konfiguracji transmisji i zarządzania nią.
Ostatnio dodaliśmy do programu cztery nowe funkcje: konfigurację green screenu jednym kliknięciem, rejestrowanie okna przeglądarki Chrome, przechwytywanie gry Vulkan i obsługę kilku źródeł dźwięku. Co było przyczyną wprowadzenia tych funkcji? Przeczytaj, aby się dowiedzieć!
Konfiguracja green screenu jednym kliknięciem
Funkcja chroma key, znana bardziej jako green screen, to filtr służący do usuwania tła z obrazu kamery. Prawdopodobnie widzieliście go już w akcji na kanałach ulubionych streamerów. Green screeny są dla transmitujących ciekawym sposobem na dodanie osobistego elementu do streamu i na dynamiczne zmienianie tła, dzięki czemu ich materiały mogą być jeszcze bardziej wciągające i dopracowane. Proces konfiguracji tej funkcji często wymaga jednak ręcznych ustawień i potrafi być czasochłonny, bo należy dokonać wielu regulacji w celu osiągnięcia najlepszego rezultatu. Dlatego stworzyliśmy funkcję automatycznego wykrywania green screenu, dzięki której ustawienia chroma key zostaną skonfigurowane automatycznie po jednym kliknięciu.
Jak działa green screen? Jeśli korzystasz z tła o jednolitej barwie, filtr jest w stanie wykryć wszystkie piksele w tym samym kolorze i je usunąć. Często robi się to za pomocą zielonej płachty lub specjalnie dostosowanego ekranu, ale zadziała też dla każdego jednolitego koloru, który nie pojawia się na pierwszym planie. Choć kolor tła może wydawać się równomierny dla ludzkiego oka, komputer widzi to zupełnie inaczej. Cienie i nierówne oświetlenie sprawiają, że dla maszyny tło stanowi cały zakres kolorów. Aby temu zapobiec, filtr ignoruje oświetlenie lub jasność każdego piksela i zamiast tego analizuje wyłącznie chrominancję lub barwę.
Zignorowanie światła nie zawsze wystarcza. Różnice w oświetleniu zmieniają też chrominancję pikseli. Aby sobie z tym poradzić, filtr korzysta także z ustawienia podobieństwa, które reguluje odległość chrominancji piksela od docelowego koloru tła do usunięcia.
Działa to również dobrze, jeśli masz w miarę równe oświetlenie tła i jesteś w stanie dobrać odpowiednie ustawienia, jednak regulacja tych parametrów może być bardzo frustrująca. Jeśli wartość podobieństwa będzie za wysoka, wówczas kolory z pierwszego planu zostaną błędnie dopasowane, a jeśli będzie za niska — fragmenty tła wciąż będą widoczne. Znalezienie odpowiednich ustawień jest więc skomplikowane, ponieważ trzeba wyregulować dwa parametry — docelowy kolor oraz wartość podobieństwa. Tutaj właśnie sprawdza się funkcja konfiguracji green screenu jednym kliknięciem dostępna w Twitch Studio.
System jednego kliknięcia optymalizuje te ustawienia po naciśnięciu przycisku. Najpierw pobiera próbkę bieżącego obrazu w miejscach, które zwykle są tłem w typowej konfiguracji z green screenem:
Następnie pobieramy wartości chrominancji tych pikseli i umieszczamy je na przestrzeni barw UV. Jeśli wykryjemy w ten sposób zbiór punktów, możemy znaleźć jego środek i wykorzystać go jako docelowy kolor oraz zmierzyć promień zbioru do wykorzystania jako wartość prawdopodobieństwa:
W ten sposób jesteśmy w stanie znaleźć optymalne ustawienie bez zabawy z konfiguracją!
Rejestrowanie Chrome
Przechwytywanie okien w oprogramowaniu do transmisji początkowo korzystało z funkcji API systemu Windows nazywanej BitBlt. To skuteczny sposób i działa dobrze w większości przypadków, jednak niektóre aplikacje korzystające z bardziej nowoczesnych metod renderowania nie chciały współpracować z tą funkcją. Można to było najłatwiej zauważyć podczas prób rejestrowania przeglądarki Chrome lub innych aplikacji korzystających z chromium (na przykład Discord, Slack, Spotify, VS Code). Aplikacje do transmitowania okazywały się w tych przypadkach zawodne i podatne na błędy. Prowadziło to często do pojawiania się czarnego ekranu bez żadnych komunikatów, przez co streamerzy nie wiedzieli, co się dzieje.
Istniały różne sposoby obejścia tego problemu, na przykład przechwytywanie fragmentu ekranu lub przełączanie trybu renderowania programu (jeśli było to możliwe). Niestety żaden z tych sposobów nie jest szczególnie wygodny. Udostępnianie fragmentu ekranu stwarza ryzyko wyświetlenia czegoś przez przypadek podczas przenoszenia okna, a zmiana trybu renderowania może mieć wpływ na wydajność aplikacji nawet poza transmisją.
Chcieliśmy więc rozwiązać ten problem. PrintWindow to inny interfejs API, który może służyć do przechwytywania zawartości innych okien, jednak domyślnie również wyświetla dla tych okien pusty obraz. Okazuje się jednak, że funkcja przyjmuje nieudokumentowaną flagę PW_RENDERFULLCONTENT, która wymusza pełne odwzorowanie okna docelowego i rozwiązuje problem.
Nowa metoda rejestrowania nie jest może rozwiązaniem idealnym, ponieważ zmusza okno docelowe do dodatkowej pracy w celu renderowania obrazu wyjściowego, jednak taka sytuacja jest na pewno lepsza niż całkowity brak sygnału. Aby mieć pewność, że taki wpływ na wydajność ma miejsce tylko wtedy, gdy jest naprawdę potrzebny, włączamy ten tryb przechwytywania jako domyślny wyłącznie dla aplikacji, które powodują problemy podczas korzystania z tradycyjnej metody BitBlt. Użytkownicy mogą samodzielnie skorzystaj z trybu „Zgodnego przechwytywania” dla innych aplikacji, które mogliśmy przeoczyć. Dzięki temu przechwytywanie okna działa w prawie każdym przypadku przy jednoczesnym zachowaniu optymalnej wydajności.
Rejestrowanie gier Vulkan
Wiemy, że technologia gier stale się rozwija, a priorytetem dla zespołu Twitch Studio jest bycie na bieżąco ze wszystkimi nowikami oraz zapewnianie twórcom możliwości transmitowania wszystkich najnowszych tytułów. Dlatego Twitch Studio obsługuje teraz rejestrowanie gier działających na interfejsie graficznym API Vulkan. Był to ciekawy projekt, ponieważ, w przeciwieństwie do innych renderujących API, Vulkan sam w sobie zapewnia możliwość rejestrowania gier i renderowania nakładek. Przechwytywanie gier osiąga się zwykle poprzez wprowadzenie kodu do uruchomionej gry. Osadza się on w API, przechwytuje każdą klatkę gry i tworzy jej kopię. Vulkan zapewnia system warstw, który pozwala programom zewnętrznym (na przykład aplikacjom do streamowania) na rejestrowanie specjalnego pliku DLL automatycznie ładowanego do wszystkich gier działających na Vulkanie. Ułatwia to proces przechwytywania gier i pozwala nam obejść wiele trudności związanych z aktualnymi technikami wprowadzania kodu.
Wiele źródeł dźwięku
Twitch Studio zostało udostępnione w wersji beta z początkowym zestawem funkcji mającym na celu uproszczenie obsługi dla początkujących streamerów. Dlatego wykorzystywało nieskomplikowany model audio z jednym mikrofonem i jednym źródłem dźwięku z komputera. Po wysłuchaniu streamerów rozszerzamy tę funkcję. Jedną z najbardziej pożądanych możliwości była obsługa dodatkowych kanałów/urządzeń audio. Ostatnio wprowadziliśmy dużą aktualizację systemu dźwiękowego, która zapewnia taką opcję.
Chcieliśmy dać użytkownikom możliwość skorzystania z bardziej zaawansowanych opcji konfiguracji, jednocześnie zachowując jak największą prostotę użytkowania systemu audio. Oznaczało to jednak całkowitą zmianę sposobu zarządzania urządzeniami audio. Zamiast wybierania domyślnego wyjścia i dodawania mikrofonów w razie potrzeby, dajemy teraz możliwość monitorowania wszystkich urządzeń wejściowych i wyjściowych podczas wyboru nowego urządzenia do dodania. Poza uproszczeniem systemu dźwiękowego stanowi to również przygotowanie pod inne funkcje audio, które planujemy wprowadzić w przyszłości!
Pragniemy ułatwiać wszystko dla nowych streamerów i pomagać im na początku ich przygody z transmitowaniem na Twitchu. W tym roku przygotowujemy dużo więcej narzędzi, które pozwolą streamerom poprawiać poziom transmisji w jak najprostszy sposób. Jeśli nie znasz jeszcze programu Twitch Studio, wypróbuj go tutaj.