přejít na obsah přejít na navigaci

Linux E X P R E S, Nahrávání rádia z Internetu

KARAT Software

Nahrávání rádia z Internetu

Když jsem už nevěděl, co bych na tom slavném Internetu stáhnul, vzpomněl jsem si na mé oblíbené rádio Praha a jeho slavné rozhlasové pohádky a pořady pro mládež, u kterých jsem strávil prakticky celé své mládí.


reklama

Cíl, který jsem si vytknul, zněl docela jednoduše, ale později se ukázalo, že to tak snadné nebude. S oblibou používám pro ripování internetových rádií program Streamripper, o kterém jsem již v minulosti napsal krátký článek. Program to je výborný, protože díky informacím zasílaným spolu se zvukovým streamem interpretuje i jméno skladby a interpreta, a tak je schopen získaný proud dat ihned rozdělovat do samostatných souborů podle toho, co se zrovna hraje.

Bohužel v kombinaci s Českým rozhlasem selhal. Na seznam online vysílání se můžete podívat zde. Další problém spočíval v ne zrovna typické příponě .pls pro stream ogg ve vyšší kvalitě (nad 128kb), kterou nezvládá. Naštěstí se jedná jen o jakousi „novinku“, která je obdobně jako .m3u čistě textovým souborem a jen nese informace o umístěném proudu zvuku, takže z něj lze adresu pohodlně vytáhnout.

Možná si také říkáte, proč záznam nahrávat, když Český rozhlas disponuje tzv. Podcasty. Jak se ale snadno přesvědčíte, rozhlasové hry obsaženy nejsou (na to jsou moooc kvalitní ;-)). Další moje požadavky byly asi takovéto:

Chtěl jsem program, který by se dalo snadno ovládat, kde bych jednoduše nastavil co chci nahrát a dál se o něj už nemusel starat. Nakonec jsem zjistil, že bude vůbec nejlepší, si něco napsat sám... Takže co jsem spáchal je následující soubor nahrani_radia2

#!/bin/bash 
# skriptu se predava jeden parametr - delka nahravani v minutach 
wget -P /mnt/mp3/radio http://amp1.cesnet.cz:8000/cro2.ogg &> /dev/null & 
sleep $1m
kill $!

Co to dělá? Zvukový proud ve formátu ogg stahuji pomocí wget, do adresáře /mnt/mp3/radio. Kouzelné ukončení wgetu „&> /dev/null &“ mi zajistí přesměrování jakéhokoliv výstupu programu do /dev/null a poslední symbol „&“ se stará o spuštění programu na pozadí.

Příkaz sleep počká stanovený počet minut (to, že se jedná právě o minuty je dáno písmenem m na konci) a konečně příkaz kill zabije poslední příkaz, který byl spuštěn na pozadí, tedy wget, který se stará o stahování.

Další problém spočíval v tom, jak tento skript spouštět v daný okamžik. Pokud by se jednalo o opakované spouštění, hodil by se na to jistě cron, pokud ale spouštíte příkaz jednorázově, pak je jistě lepší příkaz at. Abych si pak zjednodušil nastavení nahrávání, vytvořil jsem další soubor, který se na předchozí odkazuje, soubor nahrani_radia

#!/bin/bash 
# prvni parametr udava cas ve formatu HH:MM 
# druhy parametr udava den ve formatu DD:MM:RR 
# treti parametr udava delku poradu v minutach 
# napr. nahrani_radia 13:00 10.2.08 60 
echo "/cesta/k/souboru/nahrani_radia2 $3 &>/dev/null" | at $1 $2

Soubor obsahuje jediný příkaz, který se stará o nastavení nahrávání. Jakýkoliv výstup programu je opět přesměrován do /dev/null (je to především z toho důvodu, že pokud by program měl nějaký výstup, poslal by vám příkaz at tento výstup na email). Pro správné spuštění hlavního skriptu nahrani_radia2 je potřeba uvést kompletní cestu k němu!

Skriptu jsou předávány 3 parametry, příklad spuštění skriptu je uveden a pokud se nacházíte v adresáři, kde je skript umístěn, může vypadat např. takto:

./nahrani_radia 20:05 6.1.08 115 

Tím provedete nahrání programu začínajícího ve 20:05 dne 6.1.2008 v délce trvání 115 minut. Informace o tom, které úkoly čekají na zpracování, nebo zrovna probíhají, se dozvíte z příkazu atq, který vám vypíše jejich seznam. K odstranění úkolu slouží příkaz atrm následovaný číslem úkolu (je uvedeno na začátku řádku před každým úkolem).

Pozor, aby bylo možno skripty spouštět, musíte nastavit oběma souborům příznak spustitelného souboru, tzn. zadejte příkaz:

chmod u+x nahrani_radia*

Výsledkem je nějaký soubor ve formátu ogg. Soubor však není ničím jiným než uloženým streamem. Jeho přehrání je sice možné, ale zřejmě se nebudete moci v souboru posouvat – soubor neobsahuje žádnou hlavičku, ani další informace... Pro jeho další převedení (oříznutí začátku a konce nahrávky) a vytvoření plnohodnotného souboru .ogg lze použít program Audacity.

Při použití streamu o rychlosti 128kb/s získáte audio nahrávku velmi slušné kvality, kterou lze bez problémů poslouchat ve svém mp3 přehrávači nebo jinde. Hodina záznamu má pak okolo 60MB.

Nahoru

Top články z OpenOffice.cz

Martin Šín

Martin Šín

Martin Šín (*1980) vystudoval pedagogickou fakultu a nyní pracuje jako učitel matematiky a výpočetní techniky na střední škole. Ve volném čase překládá a také hraje hry (ani jedno mu příliš nejde). V práci se snaží prosazovat open-source programy.


  • Distribuce: Debian

| proč linux