Livestream playout og tilpasset setup

21 oktober 2022 Skrevet af 
i Blogs
  • Skriftstørrelse
Bedøm denne artikel
(0 bedømmelser)
restreamer kanaler restreamer kanaler

Vi har nu flere indgående streamer kanaler og hver enkelt kanal kan så yderligere være publisering til andre platforme.

Publisering af streams indhold på facebook, youtube er ikke altid den optimale løsningen hvor man bare ønsker fremvisning til de besøgende på eget website.
Et selvstændigt medie er jo ikke selvstændigt hvis indholdet er placeret hos andre sociale platforme og det evt. kræver at de besøgende har facebook, youtube, soundcloud osv. 
Der kan også være reklamer og registering som brugerne påtvinges via de sociale platforme og det er heller ikke altid ønsket.

Oven i dette kan Youtube/Facebook etc. af mange forskellige årsager pludselig lukker aktive livestreams ned uden man altid ved hvorfor også kan det være praktisk at have sine egne muligheder.

Hvis facebook automatisk opdager at der noget musik i baggrunden som er en underlagt en ophavsret så kan facebook godt finde på at stoppe en livestreams hvor youtube er lidt mere anderledes.

Behovet for flere indgående streams på samme tid gør det muligt at modtage livestreams fra flere events på samme tid og det kunne være fra København, Odense, Århus eller det kunne være fra måske 2 eller flere forskellige baner - og hvor man evt. restreamer eller blot lagre/gemmer modtaget streams.

Det er jo ikke altid at man ved hvad som kan være lidt automatisk genkendelig "baggrundsstøj" hvis man dækker en begivenhed og måske livestreamer fra gaden kan der være nogle som har en musik i baggrunden og måske nok til at musikken genkendes.

Derfor kan vi nu lave en kombineret installation med et restreamer setup og plus evt. en owncast chat service som stadig og yderligere kan sende til andre sociale platforme eller vi kan også bare "nøjes" vores egen.

Når man sender fra "gaden"  kan det også være bøvlet at sende evt. 6-12 mbit stream via en evt. ustabil mobil telefon forbindelse også det jo bedre at nøjes med at sende til en destination som så fordeler til de andre destinationer.

Med vores eget setup kan vi også lettere embede vores egen player på et website så live fremvisning sker på vores egen platform fordi hver enkelt kanal og afspiller kan vises på eget website/portal som embeded en iframe indhold via en https forbindelse.  

Dette setup giver også for fremvisning/playout med cromecast samt airplay hvis man skulle ønske at se en undsendelse på sit tv er dette en mulighed.

Laver man een livestream engang om året så det måske fint nok og "låne" et setup men ønsker man et permanent setup som står klar til hyppige udsendelser kan det bygges.

Er vores installation placceret på en hosted VPS løsning med begrænset diskplads så kan vores stream sendes via den platform og  til en "recorder" optager installation og som ligge optagen klar på en lokal cloud server hvis optagelse skal redigeres lidt.

Streaming frem til vores server er så heller ikke begrænset til rtmp/rtmps men srt protocolen kan også benyttes - selvom vores owncast chat/play kun håndtere rtmp så tillader vores restreamer at den kan modtage srt også kan den sende lokal rtmp til owncast serveren og det kan gøre via de interne docker ip adresser og dermed ikke begrænset af netværks båndbrede via loopback ip adresser så vores owncast adresser/porte behøver ikke være åbne men owncast modtager via restreamer setup som også kan sende til "optagelse" lager destination.

Fordi vi kan tilføje mange flere streams input og output kanaler så kan vi også fremvise selvstændige streams fra flere kilder på samme tid.

Vi har mulighed for at sætte en begrænsning på hvor mange som må kigge med på vores restreamer fremvisning sådan at vi stadig har evt. båndbrede nok til at kunne sende til andre platforme.

Hvis vi evt. siger at vi måske kun har en 0.5 gigabit forbindelse og siger vi reservere 6mbit pr. client/deltager så er det 250mbit/6mbit vi kan have cirka 41 deltagere sådan cirka og stadig have masser af kapasitet til at kunne sende vores til til andre platforme.


Går man efter rigtige deltagere men har en begrænset kapasitet kan vi vælge og sende vores stream i hd 720p fremfor 1080p og dermed have plads til endnu flere deltagere på samme tid. 


Uden blive alt for teknisk med og forklare det hele så har jeg lavet en installation som står af følgende:


En Unix/Linux VPS sever eller en windows 10/11 med WSL samt Docker - mindre kan også være en RaspberryPI 4-8 Gb med SSD.

0) Docker og docker compose på vores platform er krævet af vores proxy manager eller restreamer.

  sudo apt install apt-transport-https ca-certificates curl software-properties-common
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee etc/apt/sources.list.d/docker.list > /dev/null
  sudo apt update
  sudo apt install docker-ce
  sudo systemctl status docker
  sudo apt-get install docker-compose-plugin
 
1) Nginx Proxymanager er lidt smart fordi vi kan lave evt. LeTsEncrypt (LTE) certifikat eller måske benytte en Cloudflare certifikat setup evt. hvis cloudflare proxy også benyttes.

2) Restreamer installation modtager rtmp eller srt streams til publisering lokalt samt til owncast plus evt. facebook/youtube.

sudo docker run -d --restart=always --name restreamer -v /opt/restreamer/config:/core/config -v /opt/restreamer/data:/core/data -p 8081:8080 -p 8181:8181 -p 1935:1935 -p 1936:1936 -p 6000:6000/udp datarhei/restreamer:latest

3) Owncast installation med chat service på samme host eller vi kan vælge en helt anden host/server docker installation ikke nødvendig.
 

curl -s https://owncast.online/install.sh | bash

Vi skal lige stoppe vores evt. kørende restreamer mens og rette porte fordi owncast vil også gerne bruge port 1935 men modtagelse lader vi restreamer del håndtere også sætter en anden port på owncast.

Vi kan lade restreamer sende udvalgt stream til 172.18.0.1:1945/live og vi behøver ikke at have port 1945 åben i firewall og den ip adresse og port kan owncast lytte på.
Vi undgår netværks trafik via loopback forbindelse lokalt mellem restreamer og owncast plus vi kan tilføje flere rtmp eller srt connection - push/pull som vi vil.
Plus en record stream samt restreams til evt. andre platforme.
 
4) Cloud opsamling af optagelse samt placering arkiv evt. til konvertering/redigering som virker med ovenstående punkter.

5) Nginx recoder kan benytte til at sende en stream lagring på disk. Den laves om fra FLV til MP4 samt flyttes over til nextcloud skyen efter endt stream.

6) Hvis host/vps skifter ip (kan ske) så kan ddns opdaterings script være smart - køres i crontab som */1 * * * * /bin/bash /home/bin//home/ubuntu/cloudflare-ddns-updater/cloudflare.sh

 

Hosted restreamer


Vi kan jo stadig blande ovestående setup helt som vi ønsker og man kan benytte CDN (Contest Distributed Network)  men eksempelvis så har mange VPS ikke så mange GPU kræfter til at lave flere udgaver af samme stream.

Filip har testet den mindste "gratis" VPS løsning hos Oracle cloud med blot 1G ram og cpu 2 kerner samt Ubuntu Linux med stadard 50gb disk plads man kan vidst have to af disse uden det koster og hvor man kan vidst lave 200gb plads som max men da vi ikke skal gemme/lagre vores stream her er det jo OK nok plads og holde sig til deres "free forever" installation som vidst først koster hvis man skal opgradere men klart linode og andre leverandøre er en god mulighed også hvor de tilbyder 40gb ind og 1 gbit ud på en vps.

Jeg anbefaler:

1080p Video Resolution: 1920x1080 Frames per second: 25 Video codec: H.264 Main Video bitrate: 3 - 6 Mbps Rate control: CBR Audio codec: AAC Audio bitrate: 128 Kbps Keyframe: every 2 seconds
720p Video Resolution: 1280x720 Frames per second: 25-60 Video codec: H.264 Main Video bitrate: 2 - 4 Mbps Rate control: CBR Audio codec: AAC Audio bitrate: 128 Kbps Keyframe: every 2 seconds

Det er ikke alle apps. som håndtere 25 (pal) standard men vi kan evt. konvertere det efter afsluttet restream og ikke bruge kræfter på det under transmission (hvis de ikke findes).
 
Den nuværemde aktuelle demo installation har en afgrænset båndbrede uden opgradering men kan vi evt. sætte en grænse på hvor mange deltagere vi vil håndtere herpå men vi kan altså sende til andre platforme hvis behovet er større eller man kan vælge en større vps løsning men pt. benytter vi cloudflare.com som vores DNS leverandør og dette giver os nogle ekstra fordele eks. så kan vi beskytte vores "lille" server imod ddos angreb og gemme den bagved endnu en proxy hos cloudflare og de kan blokkere ip adresse imod ddos angreb og endnu mere hvis man opgradere til deres betalings udgave så kan den lave loadbalancing og fordele et load mellem flere kørende servere.

 

Hvis man kigger på vores restreamer billede setup så har vi også en muliged for at hente/pulle stream fra vores VPS hosted restreamer via HLS,SRT,RTMP direkte ind i vores OBS/VMIX eller en anden restreamer samt pushe vores stream direkte til de oprettet platforme.

Selv en lille raspberrypi3 kan vi faktisk pulle vores hls/srt/rtmp stream fra en kanal og via en restreamer framebuffer kan vi få input via vores video mixer Tricaster,Atem Mini, Rgblink+.

 


 

Hvis man har mulighed for at placere sin owncast installation på en anden server med GPU og en måske 1G upload bit forbindelse så kan der være gode grunde til at lade sin restreamer være et punkt hvortil man bare sender til også sender/restreamer man yderligere til sine øvrige publiserings steder og evt. embedder de ønskede streams/kanaler på sit eget side men fordi vi evt. benytter proxy så vil clienter ikke har en direkte kontakt til restreameren.



 

Blot for at give et eksempel så sender vi fra "gaden" til vores VPS host via RTMP/SRT som derfra har nogle publiserings kanaler samt vi kan embede vores streams direkte på vores website eller også sender vi til en restreamer som køre vores chat.

På grund af vores aktuelle strømregning så anvendes her nogle små raspberryPI computere til at hoste vores kørende installation men dette er også fint nok til vores lille eksempel men en større virksomhed ville jo godt kunne retfærdiggøre at bruge penge lidt en større server installation måske som vps men igen fordi vi kan sende vores streams andre steder og kan gemme dem bagved proxy og firewalls så kan vi også "låne" noget båndbrede via fremvisning hosted på andre platforme.


 

Man behøver dog ikke have et site med flere streams kanaler men vi kan også bare nøjes med at embede en bestemt kanal/afplayer på en side/event opslag i sit cms.

Man kan indsætte <iframe allowfullscreen="true" frameborder="no" height="360" scrolling="no" src="https://stream.undergroundnews.dk/f43a2449-eeca-472a-a03d-c720cb378e8c.html" width="640"></iframe>

 

 

Den aktuelle embeded livestream player kan også lave cromecast/air play.

Ovenstående virker naturligvis perfekt ganske med vores portable mobile kamera streambox som kan sende SRT med low latency og vi kan lave flere input streams til mange kamera.

Det kunne være man havde flere baner til en sport event hvor man ønskede en stream/dækning pr. bane.

Filip kan måske overtales til at yde konsulent bistand med installation af dette af hvis du har website/portal/platform som du ønsker skal kunne livestreame og derudover kan dette system jo kombineres med evt. fjernstyret OBS/VMIX.

Video playout loop

En af kanalerne er en mappe/folder med indhold - kan opdaters med en udsendelse (mp4 filer) og et mellem pause/klip som gentages næsten som på TV2News og man så kan altid tilføje flere klip/indslag.
Tidligere havde jeg OBS til at vælge dette men pga. en voldsom strøm  strømning er dette erstatet af en mere simpel løsning som også kan opdatere evt. via en cloud placering.

Det kan være arkiv løsningen opgraderes med en mere avanceret VOD (Video on Demand) løsning når jeg opgradere operativ system.

Det næste bliver at jeg vil lave et bedre fri alternativ platform til Youtube og Facebook VOD (video on demand) delen fordi det kan være problematisk hvis man tvinger brugerne til at anvende de sociale medier fordi man dermed giver de sociale meider alt for meget kontrol over ens indhold og hvis man tilstræber at være en fri og gratis platform hvorfra man også publisere sit indhold uden at det skal være på facebooks betingelser så må man organisere alternativer.

Fordi vi også kan tilføje en record/optage destination på hver enkelt player og den kan placere filen på vores nextcloud installation så kan man allerede dele evt. fil derfra også efterfølgende så man dermed har en VOD tjeneste også men det handler også om brugerflade og oversigt over de tilgængelige optagelser.

 

501 Senest ændret Tirsdag, 15 november 2022 12:23
Mere i denne kategori: