Ti5316800 - LÄHIVERKOT -ERIKOISTYÖKURSSI Linux-harjoitustyö Streaming Ville Pesonen
Sisältö Mitä on streaming? Vaihtoehdot streamauksessa Käyttökohteet Arkkitehtuuri Linux-harjoitustyö
Mitä on streaming? Median (kuten ääni tai videokuva) välittämistä verkon yli Datan ei tarvitse sijaita käyttäjän kiintolevyllä Puskurointi Data voi tulla useasta lähteestä ja sitä voidaan lähettää useaan kohteeseen
Vaihtoehdot streamauksessa Streamaus voidaan toteuttaa usealla tavalla Unicast Yksinkertaisia yksi yhdelle streameja Jokaiselle asiakkaalle lähetetään oma stream Multicast Yleislähetysosoitetta käyttämällä asiakkaita voidaan palvella yhdellä streamilla P2P (Peer-to-Peer) Esimerkiksi asiakkaat voivat ottaa vastaan streamia ja lähettää sitä edelleen muille asiakkaille
Vaihtoehdot streamauksessa Streamaus voidaan toteuttaa eri protokollilla, esimerkiksi: UDP (User Datagram Protocol) Datan korruptoituminen tai katoaminen RTP (Real-time Transport Protocol) Aikaleimat ja järjestysnumerot RTSP (Real-time Transport Control Protocol) Interaktiivinen toisto HTTP (Hypertext Transfer Protocol) Tärkeä vaihtoehto kun ei voida käyttää reaaliaikaprotokollia (RTP ja RTSP)
Käyttökohteet Nettiradio Video on Demand Time Shifting Esimerkiksi taaksepäin kelaus uusintaa varten Live Pause Streamin pysäyttäminen ja jatkaminen samasta kohtaa myöhemmin
Arkkitehtuuri Streaming on jaettavissa neljään osaan Kaappaus ja enkoodaus Kuvasignaali sopivaan muotoon Palveleminen Tuloksena syntyvä tiedosto tallennetaan palvelimelle Jakelu ja toimitus Siirretään dataa palvelimelta asiakkaalle Käytön lisääntyessä ruuhkaantuminen kasvaa Mediasoitin Datavirran puskurointi ja näyttäminen käyttäjälle
Arkkitehtuuri
Linux-harjoitustyö Musiikkipalveluksi valitsin Icecast:n ja videopalveluksi VLC:n Musiikkipalvelun toteutin mirroroimalla erästä julkista nettiradiota http:n yli Videopalvelua testasin sekä RTP:n että http:n yli Multicastia en testannut ollenkaan
Linux-harjoitustyö/Icecast Icecast:n asennus sujuu helposti #apt-get install icecast2 Icecast luo itselleen käyttäjäryhmän ja –tilin Ennen Icecastin käynnistystä tulee muokata tiedostoa /etc/icecast2/icecast.xml Muutetaan kohtia hostname, relay ja changeowner. Oletuksena relay ja changeowner ovat kommentoituna, joten niiden kommentoinnit pitää huomata poistaa.
Linux-harjoitustyö/Icecast <hostname>192.168.1.7</hostname> <relay> <server>stream.nute.net</server> <port>8000</port> <mount>/kohina/stream.ogg</mount> <local-mount>/kohina.ogg</local-mount> </relay> <changeowner> <user>icecast2</user> <group>icecast</group> </changeowner>
Linux-harjoitustyö/Icecast Icecast saadaan käyntiin seuraavalla komennolla #icecast2 –c /etc/icecast2/icecast.xml –b Parametrien merkitykset c ladataan jäljessä kerrottu asetustiedosto b käynnistetään Icecast taustalle Logit löytyvät /var/log/icecast2/error.log ja /var/log/icecast2/access.log
Linux-harjoitustyö/Icecast Stream on kuunneltavissa esimerkiksi VLC:llä osoitteessa http://192.168.1.7:8000/kohina.ogg.m3u ”Web-käyttöliittymä” löytyy http://192.168.1.7:8000/
Linux-harjoitustyö/VLC Asennus sujuu vaivattomasti #apt-get install vlc VLC mahdollistaa graafisen käyttöliittymän käytön, mutta komennot onnistuvat myös komentoriviltä Esimerkiksi videotiedosto streamaus http:n yli #vlc /var/video/grand_theft.mpg --sout '#standard{access=http, mux=ts, dst=192.168.1.7:8080}' --loop
Linux-harjoitustyö/VLC Stream on tällöin katseltavissa osoitteesta http://192.168.1.7:8080/ esimerkiksi VLC:llä Lisäämällä seuraavan edellisen komennon perään saadaan logit käyttöön --extraintf logger --logfile /var/log/vlc.log