150 likes | 294 Views
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
E N D
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
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