Teksty Opublikowane przez

Strumieniowanie gier na platformie Twitch.tv

Twitch_E_logoDzisiaj chyba żaden gracz nie potrzebuje wyjaśnienia czym jest Twitch.tv. Na wszelki wypadek jednak naskrobię parę słów na ten temat.
Usługa Twitch.tv została uruchomiona w 2011 roku jako dodatkowy projekt autorów popularnej w tamtym czasie platformy Justin.tv wykorzystywanej głównie do strumieniowania pirackich treści (filmów, seriali, wydarzeń sportowych). Justin.tv, delikatnie rzecz biorąc, nie znalazło uznania w oczach właścicieli praw autorskich, którzy próbowali doprowadzić do zamknięcia serwisu. Sytuację uratował wzrost mocy obliczeniowej komputerów i przepustowości domowych łącz internetowych, który gwałtownie zwiększył popularność streamowania gier wideo. Szefostwo Justin.tv dość szybko zorientowało się, że to jest zjawisko, w które warto inwestować i tak narodził się Twitch.tv. Z biegiem czasu Justin.tv dokonał żywota a Twitch po okresie intensywnego rozwoju został kupiony przez Amazon za bardzo sympatyczną kwotę 970 milionów dolarów.

W tym poradniku przedstawię dwa rozwiązania pozwalające strumieniować rozgrywkę na platformie PC. Pierwsza metoda (ShadowPlay) jest bardzo łatwa do opanowania ale nie gwarantuje wysokiej jakości streamu i do działania wymaga posiadania karty opartej na układzie GeForce (z rodziny 600 lub młodszej). Drugi wariant (Open Broadcaster) jest bardziej skomplikowany ale pozwala bardzo precyzyjnie skonfigurować parametry strumieniowania i oferuje większą elastyczność w materii wyboru źródła streamu.

W przypadku obu rozwiązań należy spełnić kilka podstawowych warunków.
Pierwsza sprawa to wydajność łącza internetowego. Do rozsądnego strumieniowania w HD (720p i więcej) potrzebne są przynajmniej 2 Mbit/s prędkości wysyłania. Parametry łącza możemy łatwo sprawdzić na stronie SpeedTest klikając rozpocznij test. Z prędkością wysyłania niższą niż 2 Mbity/s bardzo trudno jest osiągnąć zadowalającą jakość transmisji. Jeśli prędkość wysyłania jest większa niż 3 Mbit/s to mamy praktycznie optymalne warunki.
Druga sprawa to oczywiście konieczność utworzenia konta na Twitch.tv.

Niestety muszę też wtrącić przykrą uwagę dotyczącą sporej części polskich Internautów, a dokładniej – osób korzystających z oferty firmy Orange (kiedyś TPSA). Wielu użytkowników Neostrady skarży się na problemy z oglądaniem strumieni na Twitch.tv. Pojawiają się też kłopoty z normalnym korzystaniem z innych serwisów streamingowych (Hitbox, YouTube Gaming) czy nawet z obsługą klasycznego YouTube’a. Wynika to najprawdopodobniej z faktu, że Orange stara się w niezbyt uczciwy sposób ograniczać przepustowość dla najbardziej wymagających usług w sieci a do takich właśnie należy transmisja wideo. W ten sposób Orange dalej może oferować „szybkie” łącza do Internetu mimo, że ich infrastruktura sieciowa nie jest w stanie tego udźwignąć. Takie działanie fachowo określane jest jako bandwidth throttling. W związku z tym, jeśli chcesz żeby użytkownicy Neostrady mogli w marzyć o normalnym oglądaniu Twoich streamów, nie strumieniuj nigdy z bitratem większym niż 2400 kbps a najlepiej utrzymuj go w okolicach 2000 kbps. Alternatywne rozwiązanie to przeniesienie swoich streamów do serwisu Hitbox.tv, którego Orange jeszcze nie zaczęło przyduszać. Zasady strumieniowania są tam identyczne jak w przypadku Twitch.tv.

  1. ShadowPlay
  2. Open Broadcaster
  3. Dodatki


ShadowPlay

Pierwsza sprawa jaką należy się zająć to pobranie najnowszych sterowników GeForce oraz najświeższej wersji GeForce Experience. Po ich zainstalowaniu trzeba uruchomić GeForce Experience i poczekać aż program zakończy skanowanie komputera w poszukiwaniu gier. W następnej kolejności klikamy guzik ShadowPlay:

Twitch_ShadowPlay_01

Po załadowaniu ShadowPlay należy go uruchomić klikając zaznaczony poniżej przełącznik:

Twitch_ShadowPlay_02

Potem trzeba przełączyć tryb na strumieniowanie do Twitch.tv:

Twitch_ShadowPlay_03

Twitch_ShadowPlay_04

W następnej kolejności należy zabrać się do ustawiania jakości streamu i przepustowości jaką będzie zużywał. Niestety tylko posiadacze kont partnerskich mogą pozwolić sobie na nadawanie wideo w rozdzielczości 1080p. Wynika to z faktu, że tylko na takich kontach Twitch obsługuje wyższe przepustowości niż 3 Mbit/s, które są wymagane do strumieniowania w fullHD z przyzwoitą jakością. W związku z tym należy wybrać opcję 720p. Sugeruję też wybór 30 klatek na sekundę zamiast 60 co zaowocuje mniejszą ilością artefaktów kompresji obrazu i mniejszym obciążeniem układu karty graficznej. Oczywiście suwak przepustowości ustawiamy na poziomie maksimum 3 Mbit/s, w przeciwnym wypadku transmisja nie będzie płynna. Żeby mieć stuprocentową pewność, że stream nie będzie co chwila „buforował” u posiadaczy słabszych łącz warto ustawić przepustowość w okolicach 2,5 Mbit/s.

Twitch_ShadowPlay_05

Twitch_ShadowPlay_06

Twitch_ShadowPlay_07

Potem należy kliknąć widoczną część guzika „Zaloguj się” a następnie wprowadzić nazwę użytkownika i hasło naszego konta Twitch:

Twitch_ShadowPlay_08

Twitch_ShadowPlay_09

Twitch_ShadowPlay_10

Teraz można już zamknąć okienko ShadowPlay i wrócić do GeForce Experience gdzie trzeba kliknąć zakładkę Preferencje:

Twitch_ShadowPlay_11

Potem wybieramy pozycję ShadowPlay:

Twitch_ShadowPlay_12

Tutaj można skonfigurować wyświetlanie wskaźnika stanu transmisji, ewentualnej miniatury obrazu z kamerki oraz liczby klatek na sekundę z jaką renderowana jest uruchomiona gra, W tym oknie wybieramy również skróty klawiszowe odpowiedzialne za włączanie i wstrzymywanie transmisji.

Twitch_ShadowPlay_13

W tym momencie ShadowPlay jest już gotowy do nadawania rozgrywki z wybranego przez nas tytułu. Wystarczy odpalić grę i wcisnąć skonfigurowaną wcześniej kombinację klawiszy odpowiedzialną za uruchamianie streamu. Nagłówek strumienia, jego wersję językową i tytuł streamowanej gry można łatwo skonfigurować w dashboardzie. Tam też można obejrzeć pogląd strumienia bez konieczności wchodzenia na stronę własnego kanału.


Open Broadcaster

Tak jak już wcześniej pisałem – streamowanie za pomocą OBS jest trochę bardziej skomplikowane niż w przypadku ShadowPlay. W związku z tym zakładam, że tą częścią poradnika zainteresują się bardziej ambitni lub zaawansowani użytkownicy. Dlatego podejdę do sprawy bardziej opisowo zamiast smarować prostą instrukcję krok-po-kroku. Z resztą, nie miałoby to większego sensu, OBS daje zbyt dużo możliwości i nie ma jednego, poprawnego sposobu na skonfigurowanie tej aplikacji.
Pierwszą sprawą jaką trzeba załatwić to oczywiście pobranie Open Broadcastera. Aktualnie na oficjalnej stronie dostępne są dwie wersje – standardowa i „multiplatform”. Docelowo, znajdująca w bardzo wczesnej fazie rozwoju, wersja „multiplatform” będzie lepiej zoptymalizowana, bardziej rozbudowana i zastąpi wersję standardową ale to jest perspektywa parunastu lub nawet parudziesięciu miesięcy więc na razie zajmiemy się wydaniem standardowym. Po pobraniu i zainstalowaniu najnowszego stabilnego OBSa powinniśmy uruchomić jego 64-bitową wersję. Naszym oczom ukaże się mało interesujące okno w obszarze którego należy zlokalizować i kliknąć przycisk Ustawienia:

Twitch_OBS_01

W oknie, które zostanie wyświetlone pierwsza zakładka to ustawienia Główne. Najważniejsza jej funkcja to możliwość zarządzania profilami OBS. Tutaj należy stworzyć pierwszy profil, którego nazwa powinna porządnie odzwierciedlać skonfigurowane parametry – jest to bardzo przydatne później, kiedy mamy parę lub nawet paręnaście różnych profili w OBS. Na wszelki wypadek wyjaśnię różnice między profilami a scenami w OBS ponieważ czasem użytkownicy mylą te dwie sprawy. W prosty sposób da się to opisać następująco – w profilach zapisane są parametry decydujące o tym JAK widać i słychać, natomiast sceny zawierają informacje decydujące o tym CO widać i słychać. Profile konfiguruje się z poziomu okna ustawień, za to scenami zarządzamy w głównym oknie OBS. Teraz skupmy się na tworzeniu pierwszego profilu a do scen wrócimy za dłuższą chwilę.

Twitch_OBS_02

Następna zakładka to Kodowanie. Możemy tu zdecydować z jakiej metody chcemy korzystać – x264, QuickSync czy NVENC. QuickSync i NVENC to rozwiązania obsługujące wyłącznie sprzęt konkretnych producentów, odpowiednio – Intela i Nvidii. Obsługa QuickSync wbudowana jest w część procesorów opartych na architekturze Sandy Bridge i wszystkie procesory Core od czwartej generacji w górę. NVENC do działania wymaga układu Nvidii opartego na architekturze Kepler lub wyższej czyli trzeba mieć przynajmniej GeForce’a z rodziny 600. Postanowiłem skupić się na kodowaniu x264 ponieważ jest najbardziej uniwersalne i jego implementacja jest najlepiej zrealizowana w przypadku OBS.
Oprócz samej metody w zakładce Kodowanie ustawiamy również przepustowość jaką będzie zużywał nasz stream. Najlepiej jest wklepać liczbę kbps stanowiącą maksymalnie 85% wartości wskazanej podczas testu, oczywiście nie przekraczając 3000 kbps czyli praktycznego maksimum dla zwykłych kont Twitch. Można tutaj też zmniejszyć jakość kodowania dźwięku do 44,1 kHz, oszczędzimy w ten sposób odrobinę przepustowości. CBR i padding CBR powinny pozostać włączone – Twitch wymaga stałej przepływności.

Twitch_OBS_03

W zakładce Streamowanie konfigurujemy serwis, z którego mamy zamiar korzystać. Oczywiście jako usługę streamowania wybieramy Twitch.tv. W następnej kolejności należy zdecydować do którego serwera będziemy pchać nasz strumień. Najlepiej jest wybrać któryś z trzech zlokalizowanych w Niemczech, Czechach i Szwecji. Osobom streamującym z Polski najmniejsze opóźnienia oferuje najczęściej serwer we Frankfurcie. Potem trzeba wkleić swój klucz streamu, który w przypadku Twitch.tv znajdziemy tutaj po uprzednim zalogowaniu się do serwisu. Jeśli ktoś ma zamiar lokalnie zapisywać swoje strumienie to w tej zakładce można również wprowadzić ścieżkę na dysku gdzie trafią pliki z archiwum nagrań. Opcję „Tryb niskiego opóźnienia” można zaznaczyć w wypadku kiedy streamowanie w negatywny sposób wpływa na pingi w grze. Jeśli nie mamy tego typu problemów to opcja ta powinna pozostać odznaczona ponieważ aktywowanie trybu niskiego opóźnienia znacznie zwiększa prawdopodobieństwo gubienia klatek transmisji wideo.
Wyświetlony na czerwono komunikat można spokojnie olać, problem zostanie rozwiązany w innej zakładce.

Twitch_OBS_04

Kolejna zakładka to Obraz i jest ona bardzo ważna z punktu widzenia jakości naszego streamu. Rozdzielczość wyjściową (bazową) z jaką OBS będzie przechwytywał zostawiamy oczywiście domyślną. Dużo ważniejsza jest wartość odpowiedzialna za zmniejszanie rozdzielczości. To w tym momencie decydujemy o rozdzielczości naszego streamu. W tekście traktującym o ShadowPlay pisałem, że dobrej jakości strumień w fullHD (1920×1080) jest w zasadzie poza zasięgiem osób bez konta partnerskiego. Wynika to ograniczenia przepustowości do 3 Mbit/s dla normalnych użytkowników Twitch.tv. Dlatego w większości wypadków należy korzystać z opcji 1.50 1280×720. Jeśli ktoś ma łącze naprawdę dobrej jakości (stabilne, brak strat pakietów, prędkości wysyłania powyżej 3,5 Mbit/s) i komputer z przyzwoitą mocą obliczeniową to może sobie przetestować rozdzielczość 1,25 1536×864 – wygląda sporo lepiej niż 720p i da się w miarę przyzwoicie upchnąć w zakresie przepustowości do 3000 kbps. Kolejnym bardzo istotnym parametrem dla jakości obrazu na naszym streamie jest interpolacja. Jest to funkcja odpowiedzialna za algorytm jakiego OBS użyje podczas zmniejszania rozdzielczości obrazu. Uproszczona zasada jest łatwa do zrozumienia – im więcej próbek tym lepsza ostrość i większe obciążenie komputera. Interpolacja dwuliniowa nie wymaga zbyt wielkiego wysiłku od procesorów ale przy redukcji z 1080p do 720p stracimy stosunkowo sporo szczegółów. Wariant dwusześcienny (bicubic) jest znacznie lepszy od dwuliniowego ale właściciele słabszych procesorów mogą odczuć przykry efekt zwiększonego obciążenia w przypadku streamowania bardziej wymagających gier. Oczywiście najlepszą metodą interpolowania jest algorytm Lanczosa, który niestety stawia duże wymagania procesorowi w momencie kiedy na ekranie jest bardzo kolorowo oraz dzieję się dużo i szybko. Ostatnią ważną sprawą jest liczba klatek na sekundę (FPS). Generalnie, w ramach przepustowości 2500 – 3000 kbps można wcisnąć wideo 720p odtwarzane z prędkością 60 fps. Należy jednak pamiętać, że w takim wypadku – w porównaniu do 30 fps – upychamy w strumieniu dwukrotnie większą ilość klatek obrazu. Przepustowość się nie zmienia czyli, upraszczając trochę, kompresja musi być dwukrotnie większa a to oznacza, że jakość obrazu będzie o wiele gorsza. Warto to brać pod uwagę i nadawać głównie z prędkością 30 fps a w 60 fps streamować tylko mniej dynamiczne gry z niezbyt urozmaiconą grafiką. Oczywiście można też eksperymentować z innymi wartościami fps ale wtedy musimy się borykać z „przycięciami” wynikającymi z problemów przy „wycinaniu” nietypowych ilości klatek. Najmniej ewidentne, a czasem nawet niezauważalne, przycięcia występują w przypadku 45 i 48 fps. W tej zakładce można też wyłączyć efekty Aero okienek Windowsa – warto o tym pamiętać bo w przypadku niektórych tytułów rozwiązuje to problemy ze streamowaniem.
Małe próbki transmisji z różnymi ilościami klatek na sekundę można obejrzeć tutaj:    60 fps   48 fps   45 fps   30 fps

Twitch_OBS_05fix

Zakładkę Dźwięk dotyczącą ustawień mikrofonu pominę ponieważ wydaje mi się, że w jej przypadku niepotrzebne są jakiekolwiek objaśnienia. Następne w kolejności są Skróty klawiszowe, które również nie wymagają ściany tekstu. Wystarczy tylko pamiętać o skonfigurowaniu minimum dwóch funkcji – uruchamiania i wyłączania transmisji:

Twitch_OBS_06

Kolejna zakładka – Zaawansowane, jest równie ważna co Obraz. Tutaj też mamy wpływ na jakość streamu. Na początek włączamy opcję „Użyj optymalizacji wielowątkowych” żeby OBS korzystał z pełni możliwości naszego procesora. W drugiej kolejności należy aktywować funkcję CFR (stała liczba klatek na sekundę, nie mylić z CRF). Dba ona o synchronizację obraz-dźwięk w pliku wideo i przydaje się tylko wtedy jeśli zapisujemy nasze streamy na dysku ale warto ją odhaczyć. Potem trzeba przełączyć profil enkodera na main a odstęp między klatkami kluczowymi na 2 sekundy – są to paramenty narzucone przez Twitch.tv. Ostatnia, najważniejsza sprawa to ustawienie preset x264. Ten parametr decyduje o tym jak dużo czasu procesor poświęci na kompresowanie klatek materiału wideo. Im „szybszy” wariant wybierzemy tym obciążenie procesora będzie mniejsze ale jednocześnie ucierpi jakość transmisji. Nie powinno się wybierać opcji szybszej niż veryfast ponieważ artefakty kompresji obrazu będą nie do zaakceptowania. Analogicznie – opcją, która oferuje najlepszą jakość i jest możliwa do, w miarę rozsądnego, zastosowania przy kodowaniu wideo w czasie rzeczywistym jest medium. Wszystko poniżej medium nie przyniesie zbyt wielkiej różnicy w jakości obrazu a do działania będzie wymagało naprawdę potwornie mocnych procesorów. W związku z powyższym należy się trzymać przedziału veryfast – medium. Przy czym należy pamiętać, że opcja sugerowana przez autorów OBS to właśnie veryfast. Ja proponuję ustawić faster i wrócić do veryfast tylko jeśli pojawią się problemy z płynnym działaniem streamowanych gier. Ze względu na potężne obciążenie procesora ustawienie medium przydaje się w zasadzie tylko w momencie kiedy strumieniujemy wideo przechwytywane, na przykład, z konsoli i nasz komputer, oprócz obsługi OBS, nie ma zbyt wiele  do roboty.

Twitch_OBS_07

Kolejnym trzem zakładkom nie będę poświęcał zbyt wiele uwagi. Pierwsza z nich, QuickSync, dotyczy parametrów kodowania z wykorzystaniem technologii Intela, która nas nie interesuje w tym poradniku. Druga dotyczy walki z szumami mikrofonu i tutaj każdy musi działać zgodnie ze swoimi preferencjami oraz wymogami własnego sprzętu. Trzecia zakładka to Przełącznik scen, który pozwala w dość zaawansowany sposób kontrolować wyświetlanie różnych, skonfigurowanych wcześniej scen. To jest funkcja przewidziana dla zaawansowanych streamerów, którzy naprawdę poważnie podchodzą do tematu. W naszym przypadku wystarczy już tylko kliknąć OK żeby zapisać ustawienia profilu i wrócić do głównego okna OBS.
Teraz musimy skonfigurować pierwszą, domyślną scenę klikając prawym klawiszem myszy w obrębie obszaru Źródła obrazu:

Twitch_OBS_08

W tym momencie możemy dodać sobie masę różnych źródeł, które program wpakuje do naszej transmisji. OBS obsługuje DirectShow a więc może streamować zawartość z różnego rodzaju urządzeń współpracujących z tym standardem – kamery internetowe, karty do przechwytywania obrazu czy innego rodzaju sprzęt audio-wideo. Wypada jednak zacząć od podstaw więc proponuję wybrać opcję Przechwytywanie gry.

Twitch_OBS_09

W oknie konfiguracji przechwytywania gry należy wybrać uruchomiony tytuł a potem zdecydować o pozostałych opcjach. W wypadku większości gier warto jest zaznaczyć Przechwytywanie myszy, dzięki któremu w streamie widoczny będzie kursor. Pozostałe opcje lepiej zostawić wyłączone i dopiero w razie problemów z przechwytywaniem obrazu sprawdzać czy aktywacja którejś z nich nie przyniesie pozytywnego rezultatu.

Twitch_OBS_10

Teraz wystarczy już tylko zatwierdzić wybory klikając OK a potem w głównym oknie OBS sprawdzić stream wybierając Rozpocznij podgląd:

Twitch_OBS_11

Jeśli wszystko skonfigurowaliśmy poprawnie i gra jest przechwytywana prawidłowo to w oknie podglądu powinnyśmy zobaczyć jak będzie prezentowała się nasza transmisja:

Twitch_OBS_12

Jeżeli na podglądzie wszystko jest w porządku to można odpalić już faktyczną transmisję i sprawdzić w dashboardzie czy nie pojawią się jakieś problemy. Ostatnią rzeczą, o której warto pamiętać to wyłączanie podglądu OBS w trakcie strumieniowania. Ta funkcja potrafi czasem całkiem solidnie obciążyć CPU i GPU a więc może negatywnie wpłynąć na działanie streamowanej gry. Żeby pozbyć się podglądu wystarczy kliknąć prawym klawiszem myszy w głównym obszarze okna OBS i odznaczyć opcję Włącz widok:

Twitch_OBS_13

Dodatki

Bardzo ważna strona dla każdego streamera znajduję się pod tym adresem. Tutaj można przetestować poprawność ustawień swojego strumienia, sprawdzić ilość utraconych klatek i poczytać o ewentualnych problemach.
Postanowiłem jeszcze dorzucić parę słów o dodatkach, które mogą okazać się przydatne podczas strumieniowania. W pierwszej kolejności warto zainteresować się narzędziami ekipy NightDev, a przede wszystkim rozszerzeniem BetterTTV obsługującym większość popularnych dzisiaj przeglądarek. BetterTTV znacznie usprawnia funkcjonalność interfejsu witryny Twitch.tv, wprowadza ciemny schemat kolorów i poprawia obsługę czatu z poziomu strony Twitcha. Drugim zasługującym na uwagę rozwiązaniem jest mała aplikacja napisana w Javie – Chatty. Programik ma sporo możliwości i pozwala zarządzać kanałem oraz obsługiwać czat bez konieczności użerania się z przeglądarką i siermiężnym interfejsem Twitcha. Wspomnę też o sposobie na oglądanie streamów bez konieczności korzystania z witryny Twitch.tv – Desktop Live Streamer. Jest to ciekawa alternatywa dla tych którzy mają problem z ciągłym buforowaniem i zrywaniem strumienia. Na koniec, osobom które są poważniej zainteresowane tematem strumieniowania gier, polecam zestawienie najlepszych wtyczek i narzędzi do Open Broadcastera.

RashbaNor

Założyciel ^E^ i jednocześnie obleśny gadżetofil. Weteran grania z prawie trzydziestoletnim doświadczeniem. Stuprocentowy nerdziuch i totalny geek. Kompletnie uzależniony od komputera oraz konsol.

Latest posts by RashbaNor (see all)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*