Pelistriimiä Debianilla

Tietokone- ja konsolipelaamisen lähettäminen Twitchin ja YouTuben kaltaisiin videopalveluihin suorana katseltavaksi eli striimaaminen on nykyään varsin yleistä hupia. Suurimmaksi osaksi lähettämiseen käytetään Windows-koneita, mutta suosituimmat videopalvelut eivät ole sinänsä rajoittuneet minkään tietyn lähetysohjelmiston käyttöön. Päätin kokeilla, onnistuuko striimaaminen Debian-koneeltani, ja onnistuihan se. Ei ihan kivuttomasti, mutta kuitenkin.

Kokoonpano

  • Intel i5 650; 3,2 GHz
  • RAM 4 Gt (2×2 Gt DDR3 @ 1333 MHz)
  • ATi Radeon HD 3450
  • Internet: ↓ 80 Mbps ↑ 4~5 Mbps
  • Debian 8 (jessie), amd64
  • radeon-näytönohjainajuri (avoin)

Työpöytätietokoneeni ei ole mikään tehomylly, ja varsinkin näytönohjaimen heppoisuus hiukan arvelutti, mutta eipä tarkoitukseni toisaalta mitään kovan luokan grafiikkamässäilyä ollut tarkoitus pyörittääkään.

Videopalveluksi valikoitui Twitch, josta joku oli kylläkin jo onnistunut rekisteröimään kingi89-käyttäjänimen itselleen, ja jouduin tyytymään ”kingi89_”:iin. Twitchin ohjekeskuksessa on ohjeet monellekin lähetysohjelmalle, joista ensimmäisenä silmiini pisti Open Broadcaster Software.

OBS:stä on olemassa erillinen MultiPlatform-versio, jonka pitäisi toimia niin Linuxeilla kuin OS X:llä ja Windowsilla. Debianille ei ole kuitenkaan valmista binääriä, joten sellainen täytyy tehdä itse lähdekoodista kääntämällä. Hiukan alkuperäistä ohjetta mukaillen OBS:n saa ladattua ja asennettua.

OBS MultiPlatformin lataus ja asennus

OBS tarvitsee FFmpegiä, jota ei Debianin oletuspakettivarastoista löydy. Deb-multimedia-repositorystä se sen sijaan löytyy, joten lisätään se käyttöön. Luodaan aluksi vaikkapa nano:lla uusi tiedosto /etc/apt/sources.list.d/deb-multimedia.list, ja lisätään sinne seuraavat rivit:

deb http://www.deb-multimedia.org jessie main non-free
deb http://www.deb-multimedia.org jessie-backports main

Tämän jälkeen täytyy vielä päivittää pakettivarastotiedot, asentaa Deb-multimedian avaimet, päivittää pakettivarastotiedot uudelleen ja asentaa itse FFmpeg ja sen:

sudo apt-get update
sudo apt-get install deb-multimedia-keyring
sudo apt-get update
sudo apt-get install ffmpeg

Sitten voidaan asentaa muut tarvittavat kehitystyökalut ja kirjastot:

sudo apt-get install build-essential pkg-config cmake \
  git checkinstall libx11-dev libgl1-mesa-dev libpulse-dev \
  libxcomposite-dev libxinerama-dev libv4l-dev libudev-dev \
  libfreetype6-dev libfontconfig-dev qtbase5-dev \
  libqt5x11extras5-dev libx264-dev libxcb-xinerama0-dev \
  libxcb-shm0-dev libjack-jackd2-dev libcurl4-openssl-dev \
  libavcodec-dev libavfilter-dev libavformat-dev \
  libavdevice-dev

Nyt voidaan ladata OBS Gitillä omalle koneelle ja alkaa kääntämään. Suosittelen lataamaan tiedostot /tmp/-kansion alle, koska ladattavalla lähdekoodilla ei tulla tekemään kääntämisen jälkeen mitään.

git clone https://github.com/jp9000/obs-studio.git
cd obs-studio
mkdir build && cd build
cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4

Jos (ja toivottavasti kun) make sai tehtävänsä tehtyä, pyöräytetään OBS:stä deb-paketti ja asennetaan se checkinstall:illa.

sudo checkinstall --pkgname=obs-studio --fstrans=no --backup=no \
--pkgversion="$(date +%Y%m%d)-git" --deldoc=yes

Asennus olisi sitten siinä, ja ohjelman saa käyntiin obs-komennolla. Jos OBS:n haluaa myöhemmin poistaa koneeltaan, onnistuu se poistamalla obs-studio-paketti vaikka apt-get:illä.

Kikkoja OBS:n käyttöön

OBS ei oikein tykkää, kun sen ikkunan kokoa muuttaa. Tähän ratkaisuni on ollut olla muuttamatta ikkunan kokoa.

OBS ei oikein tykkää, kun sen ikkunan kokoa muuttaa. Tähän ratkaisuni on ollut olla muuttamatta ikkunan kokoa.

OBS MultiPlatform on melko epävakaa, mikä näkyy muun muassa siten, että ikkunan koon muuttaminen aiheuttaa vain sotkua ruudulle. Visuaalisten bugien lisäksi ohjelma yrittää ainakin itselläni varata välillä täysin päättömiä määriä (tuhansia teratavuja) muistia. Ohjelma on muutenkin sellainen tehosyöppö, että omassa käytössäni olen joutunut rajoittamaan OBS:n resurssienkäyttöä. Käynnistänkin nykyään OBS:n seuraavalla loitsulla:

( ulimit -v 3000000; nice ionice -c3 obs )

ulimit estää OBS:ää varaamasta yli kolmea gigaa muistia − paljon pienemmillä määrillä ohjelma ei suostu edes käynnistymään. ionice:n ansiosta obs saa levyaikaa vain silloin, kun kukaan muu ei tarvitse sitä, ja nice puolestaan jakaa obs:lle kitsaammin suoritinaikaa kuin muille prosesseille. Näillä virityksillä Pleikkari-pelien pelaaminen PCSX:llä onnistuu vielä ihan kohtuullisilla FPS-lukemilla.

Edellä mainituista kuristuksista huolimatta näkyy OBS:n olemassaolo varsin selvästi vähänkään enemmän tehoa vaativissa peleissä: esimerkiksi StepManian pelaaminen on jo aivan kidutusta, kun kuva ei päivity tarpeeksi usein. Jos pelata aikoo, suosittelen joko erillistä tietokonetta OBS:lle tai sitten huomattavasti omaa laitettani tehokkaampaa kokoonpanoa.

✱ ✱ ✱

Sinänsä mitään muuta estettä ei Linux-pelaamisensa striimaamisessa ole. Ruutukuva välittyy luotettavasti pelin käyttämästä grafiikkatilasta riippumatta, ja web-kamerat ynnä mikrofonit toimivat, jos ne vain muuten ovat tuettuja. Ääni-kuva -synkronointi edellytti pientä hienosäätöä, mutta sekin onnistui helposti OBS:n työkaluilla.

Seuraavaksi tarkoituksenani on hankkia jostain (mieluiten käytettynä, todennäköisesti kuitenkin uutena) Linux-yhteensopiva HDMI-kaappauslaite ja kokeilla Wii U -pelien striimausta. Vaikuttaa siltä, että kovin halvalla ei pääse, kun esimerkiksi foorumeilla kehuttu Blackmagic Intensity Shuttle kustantaa kaupan hyllyllä pitkälti yli 200 euroa.

Artikkelikuva: DeclanTM: PS3 Controller. CC BY 2.0. Kuvaa on rajattu.

Vastaa

Sähköpostiosoitettasi ei julkaista.