UltraGrid on matalan latenssin vuorovaikutusteknologia, joka on erikoistunut korkealaatuisen videokuvan siirtämiseen tietoverkoissa kahdenvälisesti. UltraGridin avulla voi siirtää videokuvan lisäksi myös hyvälaatuista ääntä, mutta MUSE-hankkeen ja yhteissoiton näkökulmasta riittävän matalaan latenssiin ratkaisulla ei välttämättä päästä. UltraGrid on ilmainen vapaan lähdekoodin sovellus, ja se on saatavilla Linuxille, macOS:lle ja Windowsille.
UltraGridin nykymuoto on kehitetty samannimisen tutkimusprojektin perustalle, jossa tutkittiin uudentyyppisten 10 gigabitin tietoverkkojen mahdollisuuksia korkealaatuisten etäviestintäteknologioiden näkökulmasta. Tšekkiläiset CESNET-tutkimusverkko-operaattori ja SITOLA-tutkimuslaboratorio ovat sittemmin jatkaneet tätä kehitystä yhteistyökumppaniensa kanssa, ja UltraGridiä voi nykyään käyttää kehittyneiden matalalatenssisten videokoodekeiden avulla myös hitaammissa kuluttajakäyttöön paremmin sopivissa tietoverkoissa.
UltraGrid tukee monenlaisia videostandardeja 4K-resoluutioon asti, ja suositeltavinta on käyttää jonkinlaista videokorttia videon lähetystä (ja toisaalta myös näyttämistä) varten. UltraGrid tukee suoraan useimpien valmistajien tuotteita. Äänenkin osalta ohjelmistorajapinnat ovat monipuoliset, ja UltraGrid lähettää lähtökohtaisesti pakkaamatonta PCM-ääntä. Tutuimmat äänipakkausmenetelmät ovat myös käytettävissä, joista Opus lienee nykyään käytetyin matalaan latenssiin ja toimivaan laatuun tarkoitetuissa käyttötilanteissa.
UltraGridin käyttö
UltraGridiä käytetään lähtökohtaisesti komentokehotteen kautta, mutta myös graafinen käyttöliittymä on saatavilla. Ohjelman käyttöönoton tekninen kynnys voi olla totuttua korkeampi, mutta kattavan dokumentaation ja pikakäyttöoppaan avulla kokemattomampikin selvinnee ohjelman käyttämisestä – myös komentokehotteen kanssa.
MUSE-hankkeen testeissä graafinen käyttöliittymäkin havaittiin toimivaksi, ja itse ohjelman toimintavarmuus ja äänen- ja videokuvan laatu miellettiin erinomaiseksi.
Graafisen käyttöliittymän äänimittarien ja videon esikatselunäyttöjen ansiosta ohjelman käyttö on aiempaa useamman ulottuvilla. Kätevää on myös nähdä asetuksista muodostuva komentorivi graafisen käyttöliittymän alaosassa – näin ohjelman toimintalogiikka tulee selvemmäksi, ja halutessaan käyttäjä voi siirtyä operoimaan ohjelmaa myös komentokehotteen kautta. Tällöin myös komentokehotteeseen tulostuvat tarkemmat tilatiedot ovat käyttäjän saatavilla. Seuraavassa esitellään ohjelman toimintaperiaate komentokehotekäskyjen ja esimerkkitilanteen kautta. Ohjeet ovat ensisijaisesti macOS-käyttöjärjestelmälle, mutta esim. Windowsin tapauksessa samoja ohjeita voi helposti soveltaa.
Ohjelman käynnistys
Ohjelma ladataan UltraGridin kotisivuilta osoitteesta http://www.ultragrid.cz/download/. Kun ohjelma on latautunut, uv-qt (UltraGridin ohjelmapaketti) voidaan siirtää haluttuun kansioon raahaamalla. Esimerkkitapauksessa ohjelma siirretään käyttäjän kotihakemistossa sijaitsevaan Applications-kansioon, jossa muutkin sovelluspaketit yleensä sijaitsevat. Tämän jälkeen avataan komentokehote eli macOS:n tapauksessa Terminal eli terminaali (löytyy esim. Spotlight-hakutoiminnon avulla: Cmd + välilyönti + kirjoita ”terminal” + paina Enter). Kun ohjelmapaketti on siirretty työpöydälle, voidaan ohjelma avata seuraavalla komennolla:
/Applications/uv-qt.app/Contents/MacOS/uv
Käsky on pitkä, koska macOS:ssa sovellukset ovat lähtökohtaisesti pakettimuotoon koottuja (bundle), ja niiden varsinaisiin suoritettaviin ohjelmiin pääsee käsiksi ainoastaan kirjoittamalla polun auki. Pelkän ohjelman käynnistäminen ilman sille annettuja parametreja ei kuitenkaan tuota vielä paljoakaan iloa käyttäjälle. On siis käytettävä ohjelman apukomentoja (help), kuten:
/Applications/uv-qt.app/Contents/MacOS/uv -help
Tämä antaa jo paljon tietoa ja ohjaa erillisten parametrien apukomentojen pariin.
Videokuvan asetukset

UltraGrid sisältää seuraavat yleiset parametrit:
- -d <näyttölaitteen nimi>
- -t <kaappauslaitteen nimi>
- -c <videopakkauksen koodekki>
- -r <äänen toistolaite>
- -s <äänen syöttölaite>
- vastaanottajan IP-osoite
Jokaisen parametrin käytöstä saa tarkempaa tietoa jo tutulla help-komennolla, eli esimerkiksi uv -d help antaa tietoa saatavilla olevista näyttölaitteista. Läppärin kanssa on helpoin käyttää saapuvan videokuvan toistoon OpenGL-näyttölaitetta, eli tällöin kirjoitetaan uv -d gl. Vastaavasti uv -t avfoundation:help antaa tietoa AVFoundation-rajapinnasta, jonka avulla UltraGrid voi käyttää macOS:n sisäisiä kaappauslaitteita, kuten läppärin kameraa ja mahdollisia virtuaalisia kameralaitteita (esim. OBS Virtual Camera). Aputietojen avulla käy selväksi, että testikoneen kamera on numeroltaan laite 0, joten kaappauslaitteen voi valita esimerkiksi käskyllä -t avfoundation:device=0:preset=high. (Viimeinen parametri asettaa videokuvan tietylle esiasetetulle laadulle – parametrit voi myös asettaa tarkemmin käsin.)

Videokuvaa on hyvä pakata esimerkiksi MJPEG-koodekilla seuraavasti -c libavcodec:codec=MJPEG. Lisätietoja pakkauksesta yleensä ja koodekkispesifisti saa kirjoittamalla -c help ja -c libavcodec:help. Nyt videokuvan lähetys, pakkaus ja vastaanotto on asetettu, ja testiä varten tarvitaan enää vastaanottajan IP-osoite parametrien loppuun. Voit kokeilla videon kierrätystä paikallisesti omalle työpöydällesi kirjoittamalla osoitteeksi 127.0.0.1 (niin sanottu localhost-osoite). Tässä tapauksessa koko komento kuuluisi siis seuraavasti:
/Applications/uv-qt.app/Contents/MacOS/uv -d gl -t avfoundation:device=0:preset=high -c libavcodec:codec=MJPEG 127.0.0.1
Komennon suorittamisen johdosta ohjelma käynnistyy, ja työpöydälle ilmestyy videokuvaikkuna, jonka kokoa voi halutessaan muuttaa ja paikkaa siirtää tutuilla työpöytäikkunan työkaluilla. Komentokehotteeseen kirjoittuu samaan aikaan tilatietoja ohjelman ja yhteyden toiminnasta, jotka ovat enemmän tai vähemmän selkeitä ja informatiivisia peruskäyttäjälle. Ohjelma-ajon voi lopettaa Ctrl + C -komennolla, kun terminaali-ikkuna on valittuna aktiiviseksi, tai q-kirjaimella, kun videoikkuna on aktiivinen.

UltraGrid sisältää myös erilaisia testiruutuja, joita voit käyttää kaappauslaitteen asemasta. Tällöin komennon voisi kirjoittaa esimerkiksi seuraavasti:
/Applications/uv-qt.app/Contents/MacOS/uv -t testcard:1920:1080:30:UYVY -d gl 127.0.0.1
Testiruudun parametrit annetaan muodossa [leveys pikseleinä]:[korkeus pikseleinä]:[ruudunpäivitysnopeus]:[haluttu testiruututila (help-komennon avulla saa tietoja eri tiloista)]. Huomaa myös, että parametrit voi asettaa vapaassa järjestyksessä. Jos teet virheen komennon kanssa, niin nuolinäppäimet ylös/alas antavat selata viimeksi kirjoitettuja komentoja.
Kun kuva halutaan siirtää etäpisteeseen, täytyy ainoastaan muuttaa localhost-osoite 127.0.0.1 etäpisteen IP-osoitteeksi. Etäpisteessä ohjelma täytyy käynnistää myös ja valita (ainakin) haluttu näyttölaite kuvan vastaanottamista varten. Yleensä tarkoituksenmukaista on valita myös etäpisteessä haluttu kaappauslaite, pakkausasetus ja vastapuolen IP-osoite, jolloin yhteydestä saadaan kaksisuuntainen.
Ääniasetukset
Ääni liitetään yhteyteen mukaan seuraavalla tavalla. Parametri -s <haluttu äänen syöttölaite ja sen asetukset> valitsee etäpisteeseen lähetettävän äänen asetukset. UltraGridissä on mahdollista käyttää kaiunkumousta, mutta tämä toiminnallisuus on ohjelmassa tällä hetkellä testausvaiheessa. Suositeltavaa on siis kytkeä tietokoneeseen kuulokkeet ja kirjoittaa esimerkiksi Mac-läppärin tapauksessa -s coreaudio:[haluttu syöttölaite]. Testijärjestelmässä tietokoneen mikrofoni oli laitenumeroltaan 215 – tiedon saa -s coreaudio:help -komennon avulla.
Äänentoistoon liittyvät asetukset kirjoitetaan komentoon mukaan parametrillä -r <haluttu äänen toistolaite>. Mac-testiläppärin kuulokeulostulo oli laitenumeroltaan 304, joten koko komento kuuluisi videokuvan ja äänen lähetykseen ja pakkaamiseen seuraavasti:
/Applications/uv-qt.app/Contents/MacOS/uv -t avfoundation:preset=high -d gl -c libavcodec:codec=MJPEG -s coreaudio:215 -r coreaudio:304 127.0.0.1
Kun yhteys toimii kierrätettynä omalle koneelle takaisin localhost-osoitteen avulla, voidaan etäpisteeseen yhdistää yksinkertaisesti vaihtamalla IP-osoitteeksi etäpisteen osoite. Samat asetukset vielä kuntoon etäpisteessä, ja yhteys käynnistyy hyvälaatuisena ja todennäköisesti hyvin stabiilina.
Lisävinkkejä UltraGridin käyttöön löydät ohjelman verkkosivuilta osoitteesta https://github.com/CESNET/UltraGrid/wiki ja sinne linkitetystä tutoriaalista: https://community.jisc.ac.uk/system/files/15551/Ultragrid%20–%20How%20to%20use.pdf. Tutoriaalin on tehnyt brittiläinen voittoa tavoittelematon JISC-yritys, jonka tavoitteena on avustaa korkeakoulutoimijoita IT- ja tietoverkkosektorin asioissa.
Pedagoginen näkökulma
Toinen artikkelin kirjoittajista pääsi UltraGrid-ohjelman testauksen koekaveriksi ilman minkäänlaista kosketuspintaa kyseiseen ohjelmaan. Näin saatiin tuore ja todennäköisesti käyttötilannetta vastaava reaktio huomioiden, että videoneuvotteluissa pitkällinen kokemus valitusta ohjelmasta kaikkien käyttäjien kohdalla ei ole aina itsestäänselvyys. Alkukankeuksien jälkeen yhteys saatiin toimimaan – ohessa aiheesta muutama testaajan mielipide.
Macin terminaali oli testaajalle melko vieras, ja UltraGridin käyttöönotto sen kautta vaikutti vertahyytävältä prosessilta. DOS-aikakauden nostalgiat hälvenivät äkkiä. Kuvayhteys saatiin melko mutkattomasti aikaiseksi, mutta ääni ei tahtonut tulla kuuluville. Jälkeenpäin kävi ilmi, että vika oli joko Core Audio -äänilaitteen kaatumisessa tai käyttäjien hetkellisessä huolimattomuudessa, mutta silti syvempi selvittely korvattiin testivaiheessa siirtymällä ikkunassa aukeavan käyttöliittymän puolelle. Näkymä oli selkeä ja informatiivinen, eikä siinä tuntunut olevan mitään ylimääräistä. Yhteys lähti muitta mutkitta toimimaan niin äänen kuin kuvankin osalta. Kuvan- ja äänenlaadussa ei ollut moittimista.
Pikainen käsienläpsytystesti paljasti viiveen olevan noin neljäsosasekunnin luokkaa. Tämä pääteltiin unisonossa taputtamisen kuuluessa 8-osaviiveellä noin 120 bpm -tempossa.
Asiaa ei tarkastettu metronomista eikä bittinopeusmittareista. Testaajat jäivät kuitenkin pohtimaan, mitkä asiat määrittävät tiedon maksimisiirtonopeuden. Toisen testaajan Activity Monitor -seurantaohjelma näytti noin seitsemää megatavua molempiin suuntiin sekuntia kohden – olisi hauska tietää millaista reittiä IP-osoitteiden välillä matkataan.

Graafinen käyttöliittymä näytti alapalkissa, ikään kuin käyttäjää sivistääkseen, ruudussa tehtävät valinnat siten miten ne esitettäisiin terminaalin puolella. Erittäin havainnollistavaa. Ääniasetuksissa kanavien määrän kanssa sössimisestä on varoiteltu ennenkin, eikä UltraGrid ole poikkeus. Testaajat pitivät outona, miten moinen äänensiirtotekninen pykälä voi toimia yhteydenoton esteenä, mutta vika saattoi piillä myös Core Audio -äänirajapinnassa itsessään. Oli miten oli, kun kanavien määrä on molemmissa päissä sama, ei ongelmia pitäisi syntyä. Eikä niitä syntynytkään. Tarvittassa kanavien määrän voi asettaa seuraavalla parametrillä:
--audio-capture-format channels=N (jossa N korvataan tietysti kanavien määrällä)
UltraGrid vaikuttaa olevan hintaansa nähden erinomainen kahden pisteen välillä tapahtuvan videoneuvottelun väline. Yhteismusisoinnit voidaan tässä vaiheessa ellei unohtaa niin ainakin jättää tavoitteissa taka-alalle, mutta testaajat eivät nähneet mitään syytä miksei tätä ohjelmaa voisi käyttää muihin musiikillisiin etäyhteystarpeisiin. Toki ohjelman peruskäytön yksipuolisuus tuo varjopuolinaan niin chat-toiminnon kuin tiedostojensiirtomahdollisuuksien puutteen. Ehkä olemme tottuneet teamsien ja zoomien kanssa liian monipuolisiin alustoihin. Jäimme myös miettimään monipisteisen kokouksen järjestämisen mahdollisuutta. (UltraGrid mahdollistaa monipisteisen kokouksen, mutta ehkä LoLa:n tavoin tällöin voisi tarvita myös useampaa verkkokorttia.) Oli miten oli, UltraGrid on erinomainen yhden tempun poni ilman hintaa, ja jonka käyttöönotto oli loppujen lopuksi sangen mutkatonta.


