Stlačte "Enter" na preskočenie k obsahu

Softvérové lego na poskladanie internetového rádia

Máte dobrý prehľad o športe, politike, kultúre alebo technológiách a hľadáte spôsob, ako osloviť široké publikum? Ak áno, internetové rádio postavené na vlastnej platforme by pre vás mohlo byť skvelou príležitosťou na sebarealizáciu. Dobrou správou je, že prostredníctvom internetových rádií sa môžu realizovať nielen vidiaci, ale aj nevidiaci. V súčasnosti už mnoho nevidiacich po celom svete úspešne pracujú v rádiách ako moderátori. To dokazuje, že pri diskusiách, rozhovoroch či spravodajských reláciách ich zrakové postihnutie nijako neobmedzuje v moderovaní. V tomto článku sa pozrieme na to, ako si aj nevidiaci môže vytvoriť vlastné internetové rádio na vlastnej Windows platforme – a to úplne zadarmo.

Požadované softvérové balíky

Na vytvorenie vlastného audio streamu budeme potrebovať nasledujúce programy:

Aplikácie Foobar2000 a Virtual Audio Cable (lite verzia) si môžete stiahnuť z uvedených odkazov. Ich inštalácia je štandardná, no používateľom čítača obrazovky NVDA odporúčame pridať si doplnok Virtual Audio Cable (VAC).
Tip: Ak Foobar2000 ešte nepoznáte, odporúčame prečítať si článok o jeho nastavení a používaní.

Presmerovanie zvukového výstupu pomocou Virtual Audio Cable

Po nainštalovaní programu Virtual Audio Cable sa v zozname prehrávacích aj nahrávacích zariadení zobrazí nové zariadenie s názvom Line 1.
Poznámka: Ak chceme rýchlo otvoriť nastavenia zvukových zariadení, použijeme klávesovú skratku Windows + R a zadáme príkazy:

  • control mmsys.cpl (pre prehrávacie zariadenia)
  • control mmsys.cpl,,1 (pre nahrávacie zariadenia)

Program Virtual Audio Cable umožňuje nasmerovať zvukový výstup z ľubovoľného multimediálneho prehrávača do vstupu digitálnych audio editorov alebo iných nástrojov, ktoré podporujú nahrávanie zvuku.

Praktický príklad prepojenia Foobar2000 a Audacity:

  1. Vo Foobar2000 v sekcii Output nastavíme výstupné zariadenie na Line 1 (Virtual Audio Cable).
  2. V Audacity vyberieme ako nahrávacie zariadenie Line 1 (Virtual Audio Cable).
  3. Teraz je zvuk z Foobar2000 smerovaný priamo do Audacity, kde ho môžeme nahrávať a potom upravovať.
    Dôležité upozornenie:Verzia Virtual Audio Cable Lite umožňuje vytvoriť iba jeden virtuálny kábel. Ak máme skúšobne vytvorené prepojenie medzi Foobar2000 a Audacity, výstup aj vstup budú obsadené týmito aplikáciami a ďalšie programy nebudú mať k virtuálnemu zvukovému zariadeniu prístup. Ak potrebujeme virtuálny kábel uvoľniť, stačí v nastaveniach oboch aplikácií prepnúť výstup aj vstup na iné zvukové zariadenia.

Príprava softvérových nástrojov FFmpeg a Icecast

FFmpeg je výkonný nástroj na spracovanie zvuku, videa a obrázkov. Umožňuje konverziu formátov, kompresiu, úpravu videí a zvuku, streamovanie a mnoho ďalších operácií.
Icecast je open-source streamingový server, ktorý umožňuje vysielať audio cez internet. Používa sa predovšetkým na internetové rádiá a podporuje rôzne formáty, ako MP3, Ogg Vorbis, Opus a AAC.
Kombináciou FFmpeg a Icecast získame množstvo užitočných funkcií, ktoré rozšíria naše možnosti streamovania.

stiahnutie a príprava

Obe aplikácie sú dostupné vo forme portable (prenosných) verzií, takže nevyžadujú inštaláciu.

  1. Stiahneme zip balíky FFmpeg a Icecast z vyššie uvedených zdrojov.
  2. Po stiahnutí ich rozbalíme a nakopírujeme do priečinkov určených pre prenosný softvér, napríklad:
    • C:\portable\FFmpeg
    • C:\portable\Icecast

Vytvorenie systémovej premennej Path

Keďže FFmpeg a Icecast sa ovládajú cez príkazový riadok alebo PowerShell, je dôležité, aby boli ich cesty pridané do systémovej premennej Path. Vďaka tomu budeme môcť spúšťať ich príkazy z ľubovoľného miesta bez nutnosti zadávania úplnej cesty k spustiteľným súborom.

Postup pridania cesty do systémovej premennej Path:

  1. Stlačíme Windows + R, zadáme príkaz sysdm.cpl a potvrdíme Enterom.
  2. V okne Vlastnosti systému prejdeme na záložku Spresnenie a skratkou Alt + P vstúpime do Systémových premenných.
  3. Opakovane stláčame Tab, až kým sa nedostaneme do zoznamu so systémovými premennými.
  4. Tlačidlom Nové otvoríme dialóg na vytvorenie novej systémovej premennej.
  5. Do poľa Názov premennej zadáme Path.
  6. Do poľa Hodnota premennej pridáme cesty k priečinkom, kde máme uložené FFmpeg a Icecast. Príklad:
    C:\Portable\ffmpeg\bin;C:\Portable\Icecast
    Poznámka: Pri zadávaní viacerých ciest ich oddeľte bodkočiarkou (;).
  7. Uložíme konfiguráciu kliknutím na OK.

Po vykonaní vyššie uvedených krokov budeme môcť používať príkazy programu FFmpeg bez nutnosti zadávať cestu k jeho .exe súboru. Funkčnosť overíme nasledovne:

  • Po zadaní skratky Windows + X, v zobrazenej ponuke vyberieme Windows PowerShell (správca).
  • V okne PowerShellu zadáme nasledujúci príkaz: ffmpeg -version | set-clipboard Tento príkaz zobrazí číslo verzie a konfiguračné údaje programu FFmpeg a zároveň ich skopíruje do Windows schránky.

Spustenie streamovacieho servera Icecast Na spustenie servera Icecast používame príkaz:

icecast -c icecast.xml
Aby sme nemuseli pri každom spustení zadávať tento príkaz ručne, vytvoríme si jednoduchý .bat súbor, ktorý nám umožní spúšťať Icecast cez grafické rozhranie.

  1. Otvoríme Notepad alebo iný textový editor.
  2. Zadáme nasledujúce riadky kódu: @echo off cd C:\portable\icecast start icecast.exe -c icecast.xml
  3. Súbor uložíme s príponou .bat, napríklad ako start-icecast.bat.
  4. Po uložení spustíme súbor – v kontextovom menu Windows Prieskumníka voľbou Spustiť ako správca.
  5. Otvoríme webový prehliadač a zadáme adresu: localhost:8000 Ak sa zobrazí stránka Icecast Streaming Media Server, server beží správne. Upozornenie: Príkaz v .bat súbore očakáva, že súbor icecast.exe je umiestnený v priečinku C:\portable\icecast\bin\icecast.exe.

Reštart alebo ukončenie servera Icecast

Pri spustení Icecastu cez .bat súbor sa otvorí aj terminálové okno, ktoré zostáva aktívne. Ak chceme Icecast ukončiť alebo reštartovať, v tomto okne zadáme CTRL + C – tým server bezpečne ukončíme. Klávesová skratka Alt + F4 sa pri konzolových aplikáciách neodporúča.

Prihlasovacie údaje do Icecast a prípojný bod

Aby sme sa mohli pomocou FFmpegu pripojiť k Icecast serveru, potrebujeme poznať prihlasovacie údaje. V predvolenej konfigurácii sú tieto údaje nasledovné:

  • Používateľské meno: source
  • Heslo: hackme
  • Prípojný bod: /stream

Prípojný bod je časť URL adresy nasledujúca za číslom portu (8000). Na tomto prípojnom bode bude dostupný náš stream. Prihlasovacie údaje sa zobrazia v konzolovom výstupe po spustení Icecastu. Ak si však chceme zmeniť heslo alebo prípojný bod, prepíšeme ich v konfiguračnom súbore icecast.xml.

Prepájame Foobar2000 so streamovacím serverom Icecast

Na prepojenie Foobar2000 a Icecastu využijeme nástroje Virtual Audio Cable a FFmpeg.

  1. Spustíme Foobar2000 a stlačíme CTRL + P pre otvorenie okna Preferences.
    2.V sekcii Output vyberieme Line 1 (Virtual Audio Cable) ako výstupné zariadenie a potvrďíme nastavenie tlačidlom OK.
  2. Otvoríme textový editor a vložíme nasledujúci kód:
    @echo off
    ffmpeg -f dshow -i audio=“Line 1 (Virtual Audio Cable)“ -acodec libmp3lame -b:a 128k -f mp3 icecast://source:hackme@localhost:8000/stream
  3. Uložíme tento kód do bat súboru, napríklad pod názvom Zvukovy-smerovac.bat.

Spúšťame stream v lokálnej sieti

  1. Otvoríme Foobar2000 a spustíme prehrávanie.
    Upozornenie: Ak je výstup nastavený na Line 1 (Virtual Audio Cable), zvuk nepočuť priamo, ale prehrávanie prebieha.
  2. Spustíme bat súbor Zvukovy-smerovac.bat pre prepojenie Foobar2000 so serverom pomocou FFmpeg.
  3. Spustíme bat súbor start-icecast.bat pre spustenie streamovacieho servera Icecast.
  4. Otvoríme webový prehliadač a zadáme adresu:
    localhost:8000/stream
    Ak je všetko správne nastavené, spustí sa stream z Foobar2000. Na zariadeniach pripojených do rovnakej siete môžeme stream prehrávať napríklad aj pomocou VLC. Stačí použiť skratku CTRL + n, vložiť adresu streamu a Enterom spustiť prehrávanie.
    Upozornenie: Pri prehrávaní na iných zariadeniach adresu streamu zadávame vo formáte:
    http://ipadresa-zariadenia:8000/stream
    Lokálnu IP adresu nášho zariadenia získame z PowerShellu príkazom:
    ipconfig | set-clipboard

Pridanie mikrofónu

Aby mohol FFmpeg spracovávať zvuk aj z mikrofónu a následne ho odosielať do Icecastu, musíme najprv zistiť názov vstupného zariadenia, do ktorého je mikrofón pripojený. Presné názvy zariadení získame v PowerShelle príkazom:
ffmpeg -list_devices true -f dshow -i dummy
Výstup obsahuje riadky s názvami vstupných zariadení. Napríklad:
[dshow @ 0000013f7d40ea80] „Microphone (5- USB Audio Device)“ (audio)
Názov zariadenia, v tomto prípade „Microphone (5- USB Audio Device)“, si skopírujeme a použijeme ho v kóde FFmpeg.

Postup úpravy spúšťacieho bat súboru:

  1. Nájdeme súbor Zvukovy-smerovac.bat a v kontextovom menu Windows Prieskumníka použijeme položku Upraviť.
  2. Pôvodný kód odstránime a nahraďíme ho novým kódom:
    @echo off
    ffmpeg -f dshow -i audio=“Line 1 (Virtual Audio Cable)“ -f dshow -i audio=“Microphone (5- USB Audio Device)“ -filter_complex „[1:a]volume=2.0[mic]; [0:a][mic]amerge=inputs=2[aout]“ -map „[aout]“ -acodec libmp3lame -b:a 128k -f mp3 icecast://source:hackme@localhost:8000/stream
  3. Uložíme zmeny a vo Foobar2000 spustíme prehrávanie.
  4. Spustíme aj súbory start-icecast.bat a Zvukovy-smerovac.bat.
  5. otvoríme webový prehliadač alebo prehrávač VLC a zadáme adresu:
    localhost:8000/stream
    Ak máme mikrofón správne pripojený k vstupnému zariadeniu, okrem prehrávania hudby budeme počuť aj náš hlas.
    Poznámka: Reťazec „Microphone (5- USB Audio Device)“ nahradíte názvom vášho zariadenia, do ktorého je pripojený mikrofón.

Sprístupnenie streamu na verejnú sieť

V poslednej fáze je potrebné sprístupniť náš stream cieľovej skupine poslucháčov. Máme na to niekoľko možností – buď použiť statickú verejnú IP adresu, alebo využiť tunelingový nástroj. Statická verejná IP adresa je platená služba, ktorú možno dokúpiť u poskytovateľa internetových služieb. Na začiatku však využijeme zadarmo dostupnú službu Ngrok, ktorá nám umožní vytvoriť tunel prepojujúci našu lokálnu sieť s verejným internetom.

Stiahnutie a príprava softvéru Ngrok

Ngrok pre Windows si stiahneme zo stránky ngrok.com/downloads. Stiahnutý zip súbor rozbalíme a jeho obsah si umiestníme do priečinka s portable aplikáciami ako napríkladC:\portable\ngrok.
Rovnako ako FFmpeg aj Ngrok je terminálová aplikácia ktorá sa ovláda z CMD, alebo PowerShellu. Preto je potrebné cestu priečinka C:\portable\ngrok pridať do systémovej premennej Path.

  1. Podľa vyššie uvedeného návodu vstúpime do systémových premenných a v ich zozname dolnou šípkou, alebo počiatočným písmenom vyhľadáme premennú s názvom Path.
  2. Aby sme mohli pridať ďalšiu cestu do tejto premennej, musíme najprv tlačidlom Upraviť vstúpiť do jej úprav a následne použiť tlačidlo Nové. Klávesové skratky Alt + i a následne Alt + n.
  3. V edit poli pre zadanie novej cesty Zadáme cestu C:\portable\ngrok a uložíme Enterom.
  4. Na záver tlačidlami OK uzavrieme celú konfiguráciu.
  5. Po týchto krokoch v PowerShell zadáme overovací príkaz na zistenie dostupnej verzie nástroja Ngrok:
    ngrok –version | set-clipboard
    Ak do výstupu a schránky dostaneme číslo verzie, bude to znamenať, že príkazy pre Ngrok fungujú a systém ho pozná.

Získanie autentifikačného tokenu pre Ngrok

Aby sme mohli pomocou Ngrok vytvoriť verejnú IP, je potrebné mať v lokálnych nastaveniach uložený autentifikačný token. Ten získame po vytvorení účtu na Ngrok a následnom prihlásení sa doň.

  1. Navštívime stránku dashboard.ngrok.com/signup a vyplníme registračný formulár.
  2. V overovacom e-maile klikneme na potvrdzujúci odkaz. Nájdeme ho hneď pod textom:
    Use the following link to confirm your email address:
  3. Po kliknutí na odkaz dôjde k overeniu e-mailu a zároveň dôjde k presmerovaniu na stránku účtu na Ngrok.
  4. Pri prvom prihlásení nás privíta stránka s možnosťou multifaktorovej autentifikácie. Teraz ju riešiť nebudeme – pokračujeme kliknutím na Skip.
  5. Na ďalšej stránke, ktorá je len informatívneho charakteru o nastaveniach multifaktorovej autentifikácie, klikáme na Got it.
  6. Nakoniec vyberáme možnosť, ktorá zodpovedá nášmu účelu použitia služby Ngrok (napríklad Testing Webhooks on local) a pokračujeme tlačidlom Continue do webového rozhrania nášho účtu.
  7. Po týchto krokoch klikáme na odkaz Your Authtoken a pomocou tlačidla Copy si skopírujeme autentifikačný token do schránky.

Upozornenie: Tvar autentifikačného tokenu vyzerá približne takto: 2H9xv8t0H72Ewq8hM0kB1yJgJmD8l5FvAp92zxcv8t1M

Trvalé uloženie authtokenu do konfiguračného súboru

Keďže už máme autentifikačný token, je čas uložiť si ho na trvalo do konfiguračného súboru ngrok.yml. V PowerShell ho uložíme nasledujúcim príkazom:
ngrok authtoken kód-nášho-tokenu…
Po zadaní tohto príkazu zobrazená správa: Authtoken saved to configuration file Potvrdzuje úspešné uloženie authtokenu do konfiguračného súboru. Po uložení budeme môcť zadávať príkazy Ngrok bez nutnosti opätovného zadávania authtokenu. Napríklad je jednoduchšie zadať:
ngrok http 8000
Ako použiť Ngrok príkazy s authtokenom:
ngrok authtoken kód-nášho-tokenu…
ngrok http 8000

Spúšťame tunel a streamujeme

Ak náš streamovací server Icecast beží na porte 8000, spustíme tunel príkazom:
ngrok http 8000
Poznámka: Ak by sme používali iný server bežiacom napríklad na porte 3000, použili by sme:
ngrok http 3000
Po spustení tunelu sa vo výstupe zameráme na riadok Forwarding, za ktorým nájdeme vygenerovanú adresu, na ktorej bude náš stream dostupný. Napríklad:
https://9c97-95-103-220-29.ngrok-free.app
Skôr než túto adresu budeme zdieľať s cieľovou skupinou, musíme k nej pridať aj prípojný bod. V Icecaste je prípojný bod predvolene nastavený na /stream, takže výsledná adresa bude vyzerať napríklad takto:
https://9c97-95-103-220-29.ngrok-free.app/stream
Aby sme si boli istí, že stream funguje, otvorme napríklad prehrávač VLC, stlačme CTRL + N, vložíme vygenerovaný odkaz a potvrdíme Enterom. Po overení, že stream prehráva, môžeme túto adresu zdieľať s cieľovou skupinou. Príjemcovia si ju potom vložia do VLC, Winampu alebo iného audio prehrávača a stream sa im spustí.
Adresu nášho vysielania môžeme tiež zdieľať na sociálnych sieťach, s priateľmi a známymi, čím im dáme vedieť o našom projekte. Stream môžeme uložiť aj do súboru s príponou .m3u a posunúť ho ďalej. Po kliknutí na takýto súbor sa stream spustí v predvolenom multimediálnom prehrávači. Keďže Ngrok je konzolová aplikácia aj tu platí, že tuneling ukončíme skratkou CTRL + c, a nie Alt + F4.

Jeden komentár

  1. Ondrej Rosík
    Ondrej Rosík 25. apríla 2025

    Pozdravujem,
    kto by sa chcel zaoberať internetovým streamovaním hlbšie, dal by som do pozornosti:
    – Predinštalovaný icecast server poskytuje služba https://giss.tv. Prípadne je možné použiť aj hearthis.at.
    – Pokiaľ ide o vysielanie, ak by chcel človek investovať, veľmi dobre sa vysiela cez Station playlist, ale uznávam, na občasné streamovanie je to drahé. Station playlist ale poskytuje všetko, čo človek potrebuje vrátane vstavaného pripojenia na icecast, tvorbu playlistov, premixovanie, zapínanie a vypínanie mikrofónov, spúšťanie jinglov a podobne.
    – existuje aj free riešenie, volá sa to Zara radio, nie je to také robustné, ale dá sa s tým pohrať.
    – Nevidiaci v komunite ešte odporúčajú aj lacnejší Radioboss, nemám odskúšané.
    – Prípadne, nezavrhoval by som ani aplikáciu mixxx. Je síce zameraná hlavne na mixovanie tanečnej hudby, ale má podporu pre icecast, vie primiešať do hudby aj mikrofón.
    Na vysielanie do Icecastu sa dá použiť aj aplikácia Edcast, je to jednoduchšie ako ffmpeg v tom, že vieme všetko nastaviť v klasickom rozhraní bez použitia príkazového riadka.
    Ešte by som upozornil, že pred inštaláciou virtual audio cable je rozumné skontrolovať si, ako máme nastavené výstupné zariadenie v čítači obrazovky. Windows totiž funguje tak, že nové audio zariadenie automaticky predvolí. Ak teda Máme zvukové zariadenie napr v NVDA nastavené ako default output device, bude hlasový výstup presmerovaný do audio kábla a my skončíme bez hlasu. Je teda vhodné nastaviť si pred inštalovaním VAC zvukové zariadenie napr na speakers realtek resp. podľa toho, akú zvukovú kartu používame.
    Uznávam, takto napísané je to tiež len ako také lego, internetovému rádiu by sa dalo venovať niekoľko samostatných článkov.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

This site uses Akismet to reduce spam. Learn how your comment data is processed.