1 / 27

Streaming (nettiradio)

Streaming (nettiradio). Tuomas L Karhula Tite4. Sisältö. Mitä ’streaming’ on? Palvelinarkkitehtuurit Client/Server ja Peer-to-peer Asentaminen Icecast2 ja IceS2 Konfigurointi Ylläpito. Streaming - yleisesti.

azura
Download Presentation

Streaming (nettiradio)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Streaming (nettiradio) Tuomas L Karhula Tite4

  2. Sisältö • Mitä ’streaming’ on? • Palvelinarkkitehtuurit • Client/Server ja Peer-to-peer • Asentaminen • Icecast2 ja IceS2 • Konfigurointi • Ylläpito

  3. Streaming- yleisesti • Liikkuvan kuvan ja äänen reaaliaikaista tasaista siirtämistä Internetin välityksellä • Kolme päätekijää • Sisällöntuotanto-ohjelma, palvelin, toisto-ohjelma • Sisällöntuotanto-ohjelma vastaa sisällön tarjoamisesta palvelimelle muuntamalla median streaming-muotoon (.ogg tai .mp3), palvelin toistaa sitä käyttäjille, jotka voivat kuunnella sisällön toisto-ohjelman avulla • Tiedostoja ei tarvitse ladata kokonaisuudessaan ja tallentaa asiakkaan koneelle

  4. Streaming- yleisesti • Voidaan jakaa kahteen tyyppiin • live-streaming • on-demand –streaming • Live-streamingissa lähetetään asiakkaalle lähetystä suorana jostain tapahtumasta (radion live-lähetykset, bändien live-konsertit) • On-demand –streamingissa lähetetään reaaliajassa ennakkoon nauhoitettua sisältöä, jota asiakas voi kuunnella haluamallaan hetkellä (esim playlist) • Lähetystavat unicast ja multicast • Streamingia kutsutaan myös termillä ’webcast’

  5. Streaming- toiminta • Käyttäjä ottaa yhteyden streaming-palvelimeen ja valitsee lähetyksen • Palvelimelle lähetetään pyyntö kyseiseen dataan • Toisto-ohjelma alkaa lataamaan puskurimuistiin dataa  kun tarpeeksi, alkaa toistamaan • Samanaikaisesti datan seuraavia osia ladataan puskurimuistiin, jotka siirretään toisto-ohjelmalle tasaisena virtana • Jos dataa ladataan nopeammin kuin mitä tarvitaan, ylimääräinen data tallennetaan puskuriin kunnes sitä tarvitaan  taataan tasainen jatkuva tiedonsiirtovirta ja siten äänen tasainen kulku • Kun data esitetty, se poistetaan puskurimuistista

  6. Streaming- toiminta • Toiminnan mahdollistavat RTP- (Real-Time Transport Protocol) sekä RTSP-protokollat (Real-Time Streaming Protocol) • RTP: palvelimelta käyttäjälle lähetettävän tiedon siirtämiseen (hyödyntää UDP:ta) • RTSP: palvelimen ja käyttäjän välinen viestintä • Streamingin merkittävin ero tiedostojen tavalliseen lataamiseen RTP-protokollan ominaisuus, että tiedostoja ei varsinaisesti ladata käyttäjälle vaan toistetaan ne

  7. Streaming • Datasiirto voidaan jakaa kolmeen luokkaan: • Lataa ja soita (Download ’n’ Play) • Vähittäinen lataaminen (Progressive Download) • Varsinainen streaming (True Streaming) • D’n’P: Käyttäjän ensin ladattava koko audiotiedosto koneelleen ennen kuuntelua. • Vähittäinen lataaminen: Mahdollistaa musiikin toistamisen jo ladattaessa. Ei voida kontrolloida kuuntelua

  8. Streaming • True Streaming: mahdollistaa käyttäjälle musiikin kuuntelun samalla kun sisältöä ladataan reaaliajassa verkosta (kuten progressiivinen). • Käyttäjä voi kontrolloida kuuntelua (pause, skip, kelaus jne)

  9. Palvelinarkkitehtuurit • Verkkojen arkkitehtuuri voidaan jakaa kahteen pääasialliseen malliin palvelimien käytön perusteella: • Client/Server –malli (C/S) • Peer-to-Peer –malli (P2P)

  10. Client/Server -malli • C/S –arkkitehtuurilla tarkoitetaan verkkoa, jossa jokainen verkon jäsen (solmu) on joko asiakas tai palvelin • Kommunikointi keskittynyt yhteen palvelimeen, johon asiakkaat ovat yhteydessä • Asiakkaat lähettävät palvelimelle pyyntöjä palveluista, joihin palvelin vastaa tarjoamalla kyseistä palvelua (esim resurssien jakaminen ja hallinnointi) • Asiakkaat riippuvaisia palvelimen tarjoamista palveluista

  11. Peer-to-Peer -malli • Verkkoarkkitehtuuri, jossa jokaisella solmulla yhtäläiset ominaisuudet ja vastuut • Verkko ei ole keskittynyt yhteen palvelimeen (decentralization), vaan liikennöinti tapahtuu suoraan solmujen välillä • P2P-mallissa kaikki solmut periaatteessa sekä palvelin että asiakas

  12. Peer-to-Peer -malli • P2P-mallissa voidaan hyödyntää myös palvelimia, jonka perusteella P2P-mallit voidaan jakaa kolmeen eri ryhmään • Puhdas P2P • P2P solmujen löytöpalvelimella • P2P solmujen löytö- ja listauspalvelimella

  13. Peer-to-Peer -malli • Puhdas P2P • Ei hyödynnä palvelimia, tiedonsiirto ja kommunikointi solmujen välillä. Jokainen solmu joutuu etsimään ja paikantamaan solmujen sijainnit ja tarjoamat palvelut lähettämällä kyselyn jokaiselle solmulle erikseen • P2P solmujen löytöpalvelimella • Sisältää palvelimen, joka tarjoaa jokaiselle solmulle listan P2P-verkkoon liittyneistä jäsenistä  nopeuttaa kohteiden löytymistä • P2P solmujen löytö- ja listauspalvelimella • Sisältää löytöpalvelimen lisäksi listauksen jokaisen solmun verkkoon tarjoamista palveluista  solmut lähettävät kyselyt vain palvelimelle

  14. Asentaminen • Sisällöntuotto-ohjelmisto • IceS 2.0.1 (vaatii libshout-kirjaston) • Palvelin • Icecast 2.2.0 • Vaatii kirjastot: • libxml2 • libxslt • libogg • libvorbis • Toisto-ohjelmisto XMMS valmiina Lähiverkot1 -koneessa

  15. Icecast2 • Uusin versio Icecast 2.2.0 • Tukee mp3- ja Ogg/Vorbis –tiedostoja • Helpohko asentaa ja konfiguroida, selkeät ohjeet saatavilla • Palvelin asennettiin Lahiverkot10 -koneelle

  16. Icecast2 –asennus1 of 3 • tar.gz –paketti kehittäjän sivuilta (downloads.xiph.org) komennolla # wget http://downloads.xiph.org/releases/icecast/ icecast-2.2.0.tar.gz • Purettiin komennolla # tar xzvf icecast-2.2.0.tar.gz • Vaatii kääntyäkseen kirjastot libxml2, libxslt, libogg ja libvorbis, löytyy pakettilähteistä valmiina # apt-get install libxml2 # apt-get install libxml2-dev # apt-get install libvorbis # apt-get install libvorbis-dev

  17. Icecast2 –asennus2 of 3 • Olin hakenut myös libxslt- ja libogg –kirjastot pakettilähteistä, mutta nämä olivat liian vanhoja toimiakseen uuden Icecast 2.2.0:n kanssa  syntyi eri kirjastojen versioristiriita, eri kirjastot riippuivat toisista kirjastoista. Tämän seurauksena jouduin asentamaan seuraavat paketit kokonaan uudestaan: libgcrypt11-dev_1.2.0-9 libgcrypt11_1.2.0-9 libgpg-error-dev_1.0-0 libgpg-error_1.0-0 libxml2-dev_2.6.11-4 libxml2_2.6.11-4 libxslt1-dev_1.1.8-4 libxslt1.1_1.1.8-4 libxslt1_1.1.8-4

  18. Icecast2 –asennus3 of 3 • Hain Debian Backportsista kaikkien kyseisten kirjastojen uusimmat versiot • Asensin kyseiset paketit komennolla# dpkg –i ’*paketti*’ • Kun tarvittavat paketit haettu ja asennettu, voidaan kääntää ja asentaa itse Icecast2 # ./configure # make # make install • esimerkkikonfigurointitiedostoicecast.xml hakemistoon/usr/local/etc • varsinaiset konfigurointitiedostot hakemistoon/usr/local/share/icecast/conf/, jonne tallensin myös oman lopullisen konfigurointitiedostonicecast_testi.xml

  19. IceS2 • Source client • Saman organisaation kehittämä ja ylläpitämä  ’varma’ yhteensopivuus • Valitsin uusimman version eli IceS2.0.1, joka tukee Ogg/Vorbis –tiedostoja (mp3-tiedostoja varten tarvitaan lisäksi IceS0) • Asennettiin myös Lahiverkot10 –koneeseen • Valitsin playlist-menetelmän demostraatioon, sillä järkevää live-materiaalia hankala saada 

  20. IceS2 –asennus1 of 2 • tar.gz –paketti kehittäjän sivuilta (downloads.xiph.org) komennolla # wget http://downloads.xiph.org/releases/ices/ices-2.0.1.tar.gz • Vaatii kirjaston libshout # wget http://downloads.xiph.org/releases/libshout/ libshout-2.1.tar.gz • Purettiin komennoilla # tar xzvf libshout-2.1.tar.gz # tar zxvf ices-2.0.1.tar.gz • Käännettiin ja asennettiin (libshout ensin) # ./configure # make && make install

  21. IceS2 –asennus2 of 2 • Asennuksen jälkeen konfigurointitiedostot luodaan hakemistoon /root/ices-2.0.1/conf • Esimerkkitiedosto ices-playlist.xml, josta konfiguroitiin tapauskohtainen tiedosto ices-playlist_testi.xml

  22. Icecast2 -konfigurointi • Seuraavassa on esitelty icecast_testi.xml –tiedostoon tehdyt muutokset verrattuna valmiiseen esimerkkitiedostoon (itse konfiguraatiotiedostot näytetään demo-osuudessa) <sources>2</sources> <source-password>testi_01</source-password> <hostname>Lahiverkot10</hostname> <basedir>/usr/local/share/icecast</basedir> <logdir>/usr/local/share/icecast/logs</logdir> <webdir>/usr/local/share/icecast/web</webdir> <adminroot>/usr/local/share/icecast/admin</basedir> <user>nobody</user> <group>nogroup</group>

  23. IceS2 -konfigurointi • Konfigurointitiedosto oli melko pitkälle oikeanlainen, kovin montaa oletusta ei tarvinnut vaihtaa. Muutin seuraavia parametreja: <logpath>/usr/local/share/icecast/logs</logpath> <name>Testi-playlist</name> <description>Lahiverkot –erikoistyokurssi</description> <hostname>Lahiverkot10</hostname> <password>testi_01</password> <mount>kokeilu.ogg</mount> <nominal-bitrate>192000</nominal-bitrate>

  24. Ylläpito- Soittolistan luominen • Streaming-palvelun käyttöönotto tapahtuu seuraavasti • Ensin laitetaan .ogg –tiedostot (löytyy netistä kuten mp3-tiedostojakin) johonkin kansioon, itse valitsin /root/ -kansion  luodaan kyseisistä tiedostoista soittolista komennolla # find /hakemisto/ -name ’*.ogg’ –print > playlist.txt ’Find’ etsii kyseisestä hakemistosta .ogg –päätteiset tiedostot ja kirjoittaa niiden polun ja nimen playlist.txt –tiedostoon, josta source client tietää, mitkä tiedostot tulee lukea ja streamata palvelimelle

  25. Ylläpito- Palvelimen ja source clientin käynnistäminen • Seuraavaksi käynnistetään Icecast2 –palvelin init-skriptillä komennolla # /etc/init.d/icecast start Palvelimen käynnistymisen voi todetapstree –komennolla • Sitten käynnistetään source client komennolla # ices /root/ices-2.0.1/conf/ices-playlist_testi.xml Ices-log rupeaa rullaamaan ruudulla, josta näkee, toimiiko IceS2.

  26. Ylläpito- Toisto-ohjelman käyttöönotto • Lahiverkot1 –koneessa on valmiina äänikortti ja XMMS –soitin. Oman streamin voi ottaa soitettavaksi ottamalla XMMS:n valikosta ’play location’ ja kirjoittaa riville http://Lahiverkot10:8000/streamin_nimi.ogg (Määritelty IceS2-konfiguraatiotiedostossa)  Soitin alkaa toistamaan lähetystä Progressiivinen streaming  radiolähetys, asiakas ei voi kontrolloida sisältöä

  27. Ylläpito- Sammuttaminen • XMMS:n voi joko sulkea tai pysäyttää lähetyksen kuuntelun omalta osaltaan • IceS2 –source client pysäyttää lähettämisen ja sulkee itsensä painamalla ’Ctrl+C’ lokissa • Icecast2 –palvelin sammutetaan komennolla # /etc/init.d/icecast2 stop

More Related