Vlastní internetové rádio streamované nejen do mobilu

26. 9. 2011
Doba čtení: 6 minut

Sdílet

Taky nesnášíte reklamní bloky dnešních moderních rádií? Hudba, kterou si nahrajete do mobilu, se vám zase rychle oposlouchá? Chtěli jste poslouchat internetové rádio, ale stejně vás žádné nezaujalo? Řešení je jednoduché: Udělejte to sami a lépe. Streamujte si svoji vlastní hudbu, kamkoliv půjdete.

Dnešní nabídka internetových rádií je celkem široká, ale docela často se stává, že když už najdete některé, které vám vyhovuje a kde hrají přesně to co se vám líbí, tak za pár týdnů přestane adresa existovat a po nějakém odkazu o přesunu není ani náznak. Když si nahrajete svoji kompilaci do mobilu a posloucháte na cestách, tak se skladby brzo tak omrzí, že vybrané písně nemusíte zase nějaký ten čas slyšet.

Řešení je celkem nasnadě. Vytvořte si vlastní internetové rádio a svou domácí sbírku hudby (moje třeba má pár set GB) streamujte přímo do vašeho mobilu. Pořadí skladeb si snadno můžete určit a nebo nechat rozlosovat, když chcete některou konkrétní, tak není problém ji posunout výš a při dnešních cenách za mobilní internet je to i poměrně levné řešení.

Co tedy budeme potřebovat? Určitě server schopný streamovat obsah pomocí některého z protokolů. Pro naše potřeby jsem zvolil Icecast, který je součástí projektu běžícího již od roku 1998 a u nás ho využívá i například Evropa 2. V Ubuntu repositářích je připraven balíček, takže stačí napsat pouze

$ sudo apt-get install icecast2

Po jeho instalaci následuje jeho nastavení. Nebojte se, že by mohlo již nyní dojít k nějakému zatížení vaší sítě, protože teprve po dokončení konfigurace musíte nastavit daemon ke spuštění.

Konfigurační soubor je uložen v /etc/icecast2/icecast.xml. V něm lze nastavit množství nastavení jako počet současných posluchačů, velikost fronty a podobně. Osobně mi vyhovuje nastavení, které je vybráno jako výchozí a měním pouze položku port (listen-socket – port), která je aktuálně nastavena na 8000, což je port tak široce využívaný, že volím raději nějaký méně vytěžovaný. Dále si pak nastavte heslo pro komunikaci (source-password). Tím jsme nastavili server pro vysílání na námi vybraném portu.

Nyní potřebujeme aplikaci, která bude pro server připravovat playlisty, pozastavovat a pouštět stream a vůbec obsluhovat vaše internetové rádio. Pro naše potřeby jsem zvolil Music Player Daemon (MPD), který je dostatečně flexibilní pro obsluhu všech výše zmíněných potřeb. Možná jej někdo z vás využívá i jako přehrávač pro desktop.

Tento nástroj má mnoho možností. Opět je zde po Ubuntu připravený balíček a je připraven i konzolový klient mpc, takže nyní nainstalujeme oba zároveň.

$ sudo apt-get install mpd mpc

Přistoupíme ke konfiguraci MPD pro naše potřeby. Lze si buď umístit konfigurační soubor .mpdconf do vašeho domovského adresáře a nebo editovat přímo výchozí konfigurační soubor /etc/mpd.conf. Protože nevyužívám MPD jako klasický přehrávač na desktopu, tak využiji druhou možnost.

Musíme nejprve nastavit cestu k adresáři, kde máme uloženu hudbu ( music_directory) a cestu ke složce, kde chceme archivovat playlisty ( playlist_directory). Výchozí nastavení portu je 6600 a protože i MPC funguje pak s tímto portem (jestliže mu to nepřenastavíte), tak jej necháme. Stejně budeme přehrávač hudby směřovat na port, který jsme si nastavili na Icecastu. Klasický výstup je aktuálně nastaven na alsa. Ten si dejte do komentáře a vrhneme se do nastavení našeho rádia.

#audio_output {
#   type        "alsa"
#   name        "My ALSA Device"
#   device      "hw:0,0"    # optional
#   format      "44100:16:2"    # optional
#   mixer_device    "default"   # optional
#   mixer_control   "PCM"       # optional
#   mixer_index "0"     # optional
#}

audio_output {
    type        "shout"
    encoding    "lame"          # původně ogg změňte na lame
    name        "Moje radio"        # zde si zvolte název vašeho rádia
    host        "localhost “
    port        "1111"          # zde zadejte port, který jste si nastavili v Icecast
    mount       "/radio"        # volací znak vašeho rádia
    password    "heslompd"      # heslo, které jste si v Icecast nastavili
    bitrate     "128"           # bitrate, který je pro vás vhodný
    format      "44100:16:1"
    protocol    "icecast2"      # optional
    user        "source"        # optional
}

Tímto jsme nastavili většinu nejnutněji potřebných parametrů pro spuštění našeho streamu. V tomto nastavení bude obsahovat i odesílání názvu přehrávané skladby v ID3 tagu. Je proto dobré mít ve skladbách pořádek, protože pak vidíte informace na displeji vašeho telefonu.

Poslední krok, který musíme v konfiguraci nastavit, se nalézá v souboru /etc/default/icecast2, kde je nutné na konci souboru nastavit hodnotu ENABLED na true.

Nyní tedy můžeme přistoupit ke spuštění serveru icecast2 příkazem

$ sudo service icecast2 start

Pak spustíme MPD příkazem

$ sudo /etc/init.d/mpd start-create-db

Nyní máme funkční všechny služby, ale bohužel nemáme co vysílat. K tomu využijeme klienta MPC, kterého jsme si již nainstalovali. Příkazem mpc update se načtou všechny podporované hudební soubory do databáze.

Pak již stačí jen přidat zvolené soubory do aktuálního playlistu parametrem add a spustit parametrem  play.

Zde je seznam dalších parametrů, které můžete při práci s MPC využít:

mpc - zobrazí aktuální status
mpc add <jméno souboru> - přidá píseň do aktuálního playlistu
mpc del <playlist #> - odebere aktuální píseň z playlistu
mpc play <číslo> - začne přehrávat (od čísla stopy, výchozí je 1)
mpc next – přeskočí na další píseň v seznamu
mpc prev – přeskočí na předchozí píseň v seznamu
mpc pause – pozastaví aktuálně přehrávanou píseň
mpc stop – zastaví aktuálně přehrávaný playlist
mpc seek <0-100> - posune se na místo v aktuální skladbě (vyjádřeno v %)
mpc clear  - vymaže aktuální playlist
mpc shuffle – zamíchá pořadím skladeb
mpc move <A> <B> - přesune skladbu z místa A na místo B
mpc playlist – vypíše aktuální playlist
mpc listall -  vypíše všechny dostupné skladby v DB
mpc ls [<adresář>] - vypíše skladby v adresáři
mpc lsplaylists – vypíše seznam všech uložených playlistů
mpc load <soubor> - nahraje připravený playlist
mpc save <soubor> - uloží aktuální playlist
mpc rm <soubor> - vymaže uložený playlist
mpc voluem [+-]<číslo> - nastaví hlasitost v % (nebo +- zvýší/sníží o číslo)
mpc repeat <on|off> - přepínač opakování
mpc random <on|off> - přepínač náhodného přehrávání
mpc crossfade [vteřiny] – nastaví překryv skladeb ve vteřinách
mpc update – prohledá adresář na nové soubory a uloží je do databáze
mpc version – zobrazí verzi MPD

Tyto příkazy lze používat i pomocí ssh a lze si tak například měnit playlisty na dálku podle vaší aktuální nálady.

Jestliže jste vše udělali podle návodu, lze si nyní vyzkoušet poslech rádia například příkazem

ict ve školství 24

$ mplayer http://localhost:1111/radio

Na svém mobilu pak do přehrávače zadáte adresu

http://[IP vašeho serveru]:[Port zvolený v Icecast2]/[mount zvolený v MPD]

např. http://192.168.1.1:1111/radio

Nezapomeňte si na svém firewalu otevřít port, který jste si pro rádio zvolili, a jestliže máte domácí router, tak také přesměrovat venkovní volání na váš počítač. Osobně jsem zjistil, že při nastavení bitrate na 64 lze přijímat hudbu v mobilu i při jízdě na dálnici bez jakýchkoliv přerušení. Celkově počítejte, že čím vyšší bitrate, tím vyšší přenos dat a jestliže máte na svém mobilu nějaký limit FUP, tak tím rychleji bude vyčerpán. Přeji příjemný poslech.

Zdroje k dalšímu studiu

Autor článku