Radiostreaming på FreeBSD 10 med IceCast og Ices

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.


Sådan installeres Tiny Tiny RSS Reader på en FreeBSD 11 FAMP VPS

Sådan installeres Tiny Tiny RSS Reader på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Tiny Tiny RSS Reader er en gratis og open source selv-hostet webbaseret nyhedsfeed (RSS/Atom) læser og aggregator, designet til at allo

How to Install Wiki.js on FreeBSD 11

How to Install Wiki.js on FreeBSD 11

Using a Different System? Wiki.js is a free and open source, modern wiki app built on Node.js, MongoDB, Git and Markdown. Wiki.js source code is publicl

Sådan installeres Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Pagekit 1.0 CMS er et smukt, modulært, udvideligt og let, gratis og open source Content Management System (CMS) med

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg

Opsætning af OpenBSD 5.5 64-bit

Opsætning af OpenBSD 5.5 64-bit

Denne artikel guider dig gennem opsætning af OpenBSD 5.5 (64-bit) på KVM med en Vultr VPS. Trin 1. Log ind på Vultr kontrolpanelet. Trin 2. Klik på DEPLAY

Sådan installeres osTicket på FreeBSD 12

Sådan installeres osTicket på FreeBSD 12

Bruger du et andet system? osTicket er et open source kundesupport billetsystem. osTicket-kildekoden er offentligt hostet på Github. I denne tutorial

Sådan installeres Flarum Forum på FreeBSD 12

Sådan installeres Flarum Forum på FreeBSD 12

Bruger du et andet system? Flarum er en gratis og open source næste generations forumsoftware, der gør online diskussion sjov. Flarum kildekode er hostet o

Sådan aktiveres TLS 1.3 i Nginx på FreeBSD 12

Sådan aktiveres TLS 1.3 i Nginx på FreeBSD 12

Bruger du et andet system? TLS 1.3 er en version af Transport Layer Security (TLS) protokollen, der blev offentliggjort i 2018 som en foreslået standard i RFC 8446

Installer WordPress på OpenBSD 6.2

Installer WordPress på OpenBSD 6.2

Introduktion WordPress er det dominerende content management system på internettet. Det driver alt fra blogs til komplekse websteder med dynamisk indhold

Sådan installeres Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Subrion 4.1 CMS er et kraftfuldt og fleksibelt open source Content Management System (CMS), der bringer et intuitivt og klart indhold

Sådan konfigureres DJBDNS på FreeBSD

Sådan konfigureres DJBDNS på FreeBSD

Denne vejledning viser dig, hvordan du konfigurerer en DNS-tjeneste, der er nem at vedligeholde, nem at konfigurere, og som generelt er mere sikker end den klassiske BIN

Sådan installeres Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

Sådan installeres Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

En FEMP-stak, som kan sammenlignes med en LEMP-stak på Linux, er en samling open source-software, der typisk installeres sammen for at aktivere en FreeBS

Installation af MongoDB på FreeBSD 10

Installation af MongoDB på FreeBSD 10

MongoDB er en NoSQL-database i verdensklasse, der ofte bruges i nyere webapplikationer. Det giver højtydende forespørgsler, sharding og replikering

Sådan installeres Monica på FreeBSD 12

Sådan installeres Monica på FreeBSD 12

Bruger du et andet system? Monica er et open source system til styring af personlige relationer. Tænk på det som et CRM (et populært værktøj, der bruges af salgsteams i th

OpenBSD som en e-handelsløsning med PrestaShop og Apache

OpenBSD som en e-handelsløsning med PrestaShop og Apache

Introduktion Denne tutorial demonstrerer OpenBSD som en e-handelsløsning, der bruger PrestaShop og Apache. Apache er påkrævet, fordi PrestaShop har kompleks UR

Installation af Fork CMS på FreeBSD 12

Installation af Fork CMS på FreeBSD 12

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM

Sådan installeres Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Directus 6.4 CMS er et kraftfuldt og fleksibelt, gratis og open source Headless Content Management System (CMS), der giver udviklere

Forbedring af sikkerheden for FreeBSD ved hjælp af IPFW og SSHGuard

Forbedring af sikkerheden for FreeBSD ved hjælp af IPFW og SSHGuard

VPS-servere er ofte målrettet af ubudne gæster. En almindelig type angreb dukker op i systemlogfiler som hundredvis af uautoriserede ssh-loginforsøg. Sætte op

Opsæt httpd i OpenBSD

Opsæt httpd i OpenBSD

Introduktion OpenBSD 5.6 introducerede en ny dæmon kaldet httpd, som understøtter CGI (via FastCGI) og TLS. Der kræves ikke yderligere arbejde for at installere den nye http

Konfigurer iRedMail på FreeBSD 10

Konfigurer iRedMail på FreeBSD 10

Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af FreeBSD 10. Du bør bruge en server med mindst én gigabyte o

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.

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.

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.

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