Radiostreaming på FreeBSD 10 med IceCast og Ices

Følgende vejledning forklarer, hvordan man opsætter en IceCast radiostreamingserver og afspiller lydfiler (musik eller podcasts) på FreeBSD-platformen. Denne vejledning antager, at du kører FreeBSD 10.0 eller højere, og at du er logget ind som root-brugeren. Det antog også, at du har en teksteditor til at redigere konfigurationsfiler.

Før vi begynder, er det vigtigt at forstå de tre dele af en audiostreamingserver. For det første har vi selve serversoftwaren, IceCast. IceCast fungerer som en central hub, hvor lydstreams kommer ind og bliver sendt ud. IceCast-tjenesten modtager lydstreams fra kildeklienter. Kildeklienter er programmer, der læser lydfiler eller andre lydkilder, såsom mikrofoner. I vores eksempel er kildeklienten Ices, og den leverer en lydstream til IceCast-serveren. Den tredje komponent er en lyttende klient. Lydstreams rejser fra IceCast-serveren til lyttere, som derefter hører lyden. Typisk er en lytteklient en desktopapplikation, såsom en webbrowser, VLC multimedieafspilleren eller WinAMP. Visuelt ser arrangementet således ud:

 Source client (Ices) --> IceCast server --> Listening client (browser)

For at opsætte en IceCast-streamingserver på FreeBSD installerer vi først selve serversoftwaren. Dette kan gøres ved at køre følgende kommando.

 pkg install icecast2

Vi åbner derefter /etc/rc.conffilen og aktiverer IceCast-baggrundstjenesten. Dette gøres ved at tilføje følgende tekst til bunden af /etc/rc.conffilen.

 icecast_enable="YES"

Vores næste skridt er at konfigurere IceCast-tjenesten. IceCast-pakken leveres med en prøvekonfigurationsfil, som vi kan ændre. Denne eksempelfil er placeret i /usr/local/etcmappen. Vi vil lave en kopi af denne eksempelfil, før vi redigerer den.

 cd /usr/local/etc
 cp icecast.xml.sample icecast.xml

Vi ønsker nu at redigere nogle få nøglefelter i icecast.xmlfilen. Det meste af filen kan efterlades med standardindstillingerne, men vi bør ændre loginoplysningerne. Vi kan gøre dette ved at besøge godkendelsessektionen (ca. linje 30) og ændre kilde-adgangskoden og relæ-adgangskoden til noget passende. Disse adgangskoder giver os mulighed for at streame data til IceCast-serveren fra en kildeklient. Vi bør også ændre admin-bruger- og admin-password- variablerne til noget unikt for vores system. Disse to legitimationsoplysninger beskytter IceCast-serverens webbaserede grænseflade. Derefter, nede omkring linje 150, skulle vi ændre variablerne mount-name , username , ogadgangskode . Disse tre variabler beskytter IceCast-serverens monteringspunkt. Til sidst, nederst i icecast.xmlfilen skulle vi se en sikkerhedssektion , der er blevet kommenteret ud. Vi bør fjerne åbningssymbolerne <-- og afsluttende --> omkring sikkerhedsafsnittet . Når icecast.xmlfilen er blevet ændret, skal du gemme filen.

Når konfigurationsfilen er blevet redigeret, ønsker vi at aktivere logning. For at gøre dette skal du køre følgende kommandoer.

 mkdir /var/log/icecast
 chown nobody:nogroup /var/log/icecast

Til sidst starter vi IceCast-serveren. Dette får serveren til at lytte efter input og indgående klientforbindelser.

 service icecast2 start

IceCast-serveren er oppe og køre, så nu skal vi forsyne den med noget at spille. Vores næste trin er at installere Ices source-klienten. FreeBSD tilbyder i øjeblikket ikke en binær pakke til Ices, så vi skal bygge den fra porte. Dette kan gøres ved at køre følgende kommandoer.

 portsnap fetch
 portsnap extract
 cd /usr/ports/audio/ices
 make install
 make clean

Ices-kildeklienten skal bruge en brugerkonto og logning. For at oprette en bruger til Ices-softwaren og indstille en adgangskode på kontoen, skal du køre disse kommandoer.

 pw groupadd ice
 pw useradd ices -g ice -m
 passwd ices

Med brugeren oprettet, kan vi nu aktivere logning for Ices.

 mkdir /var/log/ices
 chown ices:ice /var/log/ices

Herfra skal vi ikke længere have brug for root-brugeradgang og kan fungere som ices- brugeren. Dernæst skal vi oprette to mapper. En mappe, music, vil indeholde de lydfiler, som vi vil streame. Den anden mappe, conf, vil indeholde vores konfigurationsfiler.

 su ices
 cd /home/ices
 mkdir music conf
 cp /usr/local/share/ices/ices-playlist.xml conf/configuration.xml

Vi har nu en prøvekonfigurationsfil på plads. Det er tid til at redigere conf/configuration.xmlfilen, så den passer til vores miljø. De eneste dele af filen, som vi skal ændre, er nede omkring linje 60. Her skal vi angive adgangskoden og monteringsplaceringen, vi har angivet i icecast.xmlfilen. For eksempel, hvis vi indstiller vores monteringsnavn i icecast.xmlfilen til at være /radio.ogg, så skal vi ændre vores configuration.xmlfils monteringsparameter til også at være /radio.ogg. Vores adgangskodefelt i configuration.xmlskal matche det kildekodeord, vi oprettede i icecast.xmlfilen. Når vores configuration.xmlfil er blevet redigeret, bliver vi nødt til at gemme vores ændringer.

Med konfigurationsfilen på plads, bør næste trin være at kopiere lydfiler, som vi ønsker at streame til musicbiblioteket. Lydfilerne skal alle være i .oggformat, da IceCast ikke håndterer .mp3filer med standardindstillingerne. Når alle de lydfiler, vi ønsker at streame, er i musicmappen, skal vi oprette en afspilningsliste. En afspilningsliste er en almindelig tekstfil med en liste over den musik, vi vil streame. Vi kan nemt oprette en afspilningsliste med følgende kommandoer.

 cd /home/ices/conf
 ls -d ../music/*.ogg > playlist.txt

Lydfilerne afspilles i den rækkefølge, de vises i playlist.txtfilen. Filen kan redigeres i enhver teksteditor for at justere rækkefølgen af ​​streaming-lyden.

Alt, hvad vi skal gøre for at begynde at streame vores lydfiler, er at køre denne kommando.

 ices configuration.xml

Sidebemærkning: Ofte vil vi måske køre Ices-kildeklienten og derefter logge ud og gøre noget andet. I så fald, jeg kan lide at køre Ices fra inden for en skærm session. Her er et eksempel på, hvordan man kører is med skærm.

 screen
 cd /home/ices/conf
 ices configuration.xml

Tryk derefter på Ctrl + A og tryk på D- tasten. Det vil frakoble skærmsessionen og give os mulighed for at logge ud, mens Ices afspiller lyd i baggrunden. Senere kan vi stoppe Ices ved at logge ind og køre:

 screen -r
 killall ices
 exit

Vi kan nu oprette forbindelse til vores server på port 8000 i en webbrowser for at lytte til vores lydstream. URL'en vil se ud http://myservername:8000. Denne adresse kan gøres offentlig tilgængelig, hvis du vil lade andre lytte til streamen.

Tidligere nævnte jeg, at IceCast afspiller .oggfiler og ikke .mp3. Dette er ret nemt at overvinde på FreeBSD. Som root-bruger kan vi installere et konverteringsværktøj, kaldet sox , som vil konvertere vores .mp3filer til .oggfiler. Forudsat at alle vores .mp3filer er i /home/ices/musicmappen, kan vi installere sox og udføre en konvertering som følger:

 pkg install sox
 cd /home/ices/music
 for i in *.mp3; do sox ./"$i" ./"$i".ogg; done

Vi kan derefter opdatere vores afspilningsliste ved at bruge:

 cd ../conf
 ls -d ../music/*.ogg > playlist.txt

Vær opmærksom på, at lydstreaming kan være båndbreddekrævende. En eller to klienter, der lytter til vores radiostation, kræver ikke meget båndbredde, men 50 eller flere klienter kan skubbe en server over dens tildelte månedlige båndbredde. Det er en god idé at aktivere båndbreddebegrænsning på streamingserveren for at undgå uventede økonomiske omkostninger.

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere