Vores DIY streambro kan yderligere restreame ud til facebook, youtube og evt. kanalhovedstaden på samme tid uden at det behøver gå via stations obs/videomixeren men den har ikke kapasitet til i sig selv rendere streams til en masse andre til dette skal der laves en mere dedikeret webserver - vores streambro er kun til produktions stream - det ikke en server som klare at en masse kigger med men den kan skubbe samme stream frem til en anden server platform som kan håndtere en masse klienter.
Indgående streams kan yderligere sætte op i en player sådan at kan afspille videoklip og andre externe kamera streams som skal ind i videomixeren.
Fordi den VLC er browser baseret kan man embedde den i en OBS eller vlc kan styres med en app på telefonen.
Det er en VLC player som kan afspille alt næsten så den kan jo i forvejen en masse ekstra smart og når jeg alligevel var igang så kunne jeg ligeså godt lave restreamer så flere indput og output kan laves.
I dette eksempelv kan kamera streams sættes ind i en playliste og vi har mulighed for at flere protokoller - playeren sender valgte playout videren til mixeren via hdmi udgangen.
Remote tilgang til VLC er på http://streambro:8080 og brugernavn er tomt men så der en "kendt" adgangkode - man kan have en playliste med mulige input kilder.
På RaspberryPI3 streambro er har vi en netvmærksforbindelse på 100mbit - En RapsberryPI4 er dog bedre og klare 1 gigabit men 100mbit er fint men hvis hvis afsender sidder på en god fibernet forbindelse så kan man få god forbindelse frem til den aktuelle computer via SRT stream er afsender forbundet via 4G/5G + wifi så sætter det også sine grænser for hastigheden men mindt 6mbit-10mbit anbefales til full hd streams.
Tip til vlc med brower interface: cvlc --intf http --http-port 9090 --http-password kodeordet
Restreamer adgang admin adgang
Findes på port http://streambro:8090 til port 8093 og her er brugernavnet admin og vores hemmelige "kendte" kode.
Hvis man har 3*10mbit udgående streams så er vi jo og ikke de vilde cpu/gpu kræfter så skal det vi blot sende ind og helst bare sendes videre i præcist samme format dvs. typisk 6000 kbps med 128kbps audio og h264 codec men jeg har tilføjet sådan at vi har måske 4 input og tilsvarende output så en input kan være fra kamera med Teradek Vidiu og så kan vi lave 3 udgående streams som evt. er youtube, facebook og kanalhovedstaden men via OBS kan vi jo ha mange flere indkommende SRT streams men der også den fordel at screencaster app osv. kan send out put ind via streambroen.
En af fordelene ved eksempelvis SRT er at nyere h265/hvec codec kan benyttes men GPU/Grafik processeren i RPI3 er bedre til H264 - vi kan vælge at tage srt input direkte ind i OBS ved at ændre så
udp port forwardes til OBS/Vmix computeren men standard er at vi bare håndtere det på streambro computeren.
Husk at Streambro RPI3 bør sættes til fast intern statisk IP adresse på lokal netværket - evt. i dhcp/router konfiguration og med portforward af relevate porte.
Playeren = VLC er tilgængelig på streambro:8080 (http/tcp)
Derudver har vi nogle tcp/udp porte til rtmp samt srt som benytter udp - disse skal åbnes i firewallen
1935 udp/tcp srt samt rtmp
1945 udp/tcp srt og rtmp - http 8090
1946 udp/tcp srt og rtmp - http 8091.
1947 udp/tcp srt og rtmp - http 8092.
1948 udp/tcp srt og rtmp - http 8093.
Udfra dette skal vi åbne 1935 samt 1945:1948 for tcp/udp fordi indgående SRT sendes til restreameren som laver en rtmp med en defineret rtmp streamkeys.
Det er muligt for OBS at sætte en http/HLS stream input fra streambroen og tilsvarende VLC playeren kan også afspille den stream som man kan se via webinterface på porte fra 8090 til 8093.
Det ikke meget nødvendigt at åbne for adgang til tcp 8080 med vlc og 8090:8093 medmindre man vil og skal fjernstyre disse udefra men så kan man jo ha en vpn tunnel til dette.
SRT-SERVER med output til flere OBS/VMIX/VLC
Der nu også tilføjet en SRT server som kan sende til flere SRT modtagere - eksempelvis man kan sende SRT til srt://streambro:9000 og en modtager kan være eks. en OBS/vmix kan læse fra srt://streambro:9001.
Det er efter næsten samme princip som at man kan læse rtmp indput fra vores streambro dog er SRT metoden meget hurtigere - det er lavet som en option men der ikke defineret noge passphrasse endnu så det er primært til internt bru og en forbedret mulighed.
Hver af disse "rtmp/hls/rtsp" Restreamers har både en input og output men trikket er at en restream kan modtages/læses af en andens hls stream eks. hvis streamer på port 1945 modtager en stream så kan streameren på port 1946 læse/bruge den anden ports stream og sende den også og hver enkelt server kan starte/stoppes og sende til andre destinationer som eks. facebook og youtube osv. så vi let kan tilpasse streamkey til hver platform gemme web interface hvis de skifter.
Så server port 1945 modtager en stream, server port 1946 vælger at læse det som 1945 publisere lokalt via loopback 127.0.0.1 netværket og kan sende det til facebook hvor den anden måske sender til youtube.
OBS kan ogs¨læse/signal - endelig så er port 1935 mere åben og vores vlc player kan jo tilføje flere streams som kun den har adgang til og kan sende videre til videomixeren.
Tricaster450 har kun sine 4 SDI input men nu er en af disse måske remote vores mobile streams live fra gaden anden OBS/mixer.
På den aktuelle tv stations (router/firewal) sættes så portforwards (firewall) op til at sende UDP trafik på Port 1935 frem til streambro RaspberryPI3 eksempelvis UDP port 1935 portforwardes også streambro computeren og fordi vi også har lavet mulighed for indgående rtmp via tcp så portforwardes tcp 1935 osv. frem til vores raspberry streambro.
Vores /boot/config.txt på RPI3 skulle sættes op til 1080i 50hz sådan:
# På bullseye os skulle jeg vælge dtoverlay=vc4-fkms-v3d
Jeg valgte dog Raspian Buster 32 bit på RPI3 pga. audio udfordringer og fordi omxplayeren var mere praktisk.
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
overscan_left=16
overscan_right=16
overscan_top=16
overscan_bottom=16
###overscan_left=24
###overscan_top=24
###overscan_bottom=24
###disable_overscan=0
###overscan_right=24
gpu_mem=256
dtparam=watchdog=on
dtparam=audio=on
disable_splash=1
avoid_warnings=1
decode_MPG2=0x00000000
#hdmi
config_hdmi_boost=4
hdmi_drive=2
hdmi_mode=20
hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
hdmi_group=1
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=1
hdmi_mode=20
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]
#dtoverlay=vc4-fkms-v3d
|
For at sende en SRT stream til ChristinaTv eksempelevis - kan anvendes:
srt://catv.christiania.org:1945?mode=caller&passphrase=enkodesomerrelevant
og input er mpegts - timeout reconnect 2-4 sekunder.
For at lave rtmp fra eksempelvis et GoPro kamera så vil adressen være sådan
rtmp://catv.christiania.org:1945/live/external.stream?token=enkodesomerrelevant det er så muligt at se denne stream på http://streambro:8090
Derudover kan vores streambro player også modtage klassisk rtmp og hls streams men der fordele med SRT blandt andet at signal ikke behøver enerver men OBS og VMIX håndtere det
direkte men så kan man jo stadig blot portforwarde netop disse til OBS/Vmix computeren - nu er det bare implementeret fordi Tricaster mixeren kan ikke dette selv og det er fleksibel konfiguration.
Dette setup kan let afprøves med Lariks Brodcaster App eller Screencaster app - som findes til både android og apple IOS iphone/ipad.
Du kan læse mere om evt. opsætning af lariks app her.
OBS/VMIX
Hvis nu vi har en OBS/VMIX Computer - så kan den være videomixer for ganske ubegrænset kamera input streams SRT/NDI/webRTC og rtmp pull.
Det kan være interne kilder/streams men det kunne også være externe streams som portforwardes på router/firwall eks. hvis UDP 4000-4006.
Modtager side lytter/venter=listen
srt://0.0.0.0:5001?connect_timeout=3000&latency=200000&listen_timeout=4000000&mode=listener&smoother=live&transtype=live&timeout=2000000&passphrase=langkode
Tip: Bemærk hvis nu man flytter scene setup fra en pc til en anden kan ip/navn give problemer og så kan man evt. benytte srt://:port eller srt://@:port fordi exportere man OBS scene setup til en anden computer så det lettere.
Jeg løb ind i et problem med at nyeste Raspian bullseye ikke havde omxplayer også gik jeg tilbage til den gamle raspian buster men jeg skal nok recompilere omxplayer så SRT også er mulig eller lade den lave rtmp men det giver jo et delay så tanken er at lade signalet gå direkte til hdmi - men jeg besluttede at give bullseye et forsøg igen eftersom ffplay virkede og fordi srt-tools og ffmpeg er allerede compileret med srt og jeg kunne så lave det samme uden compilering men blot med nogle script - eks. men det var alligevel meget smart at lade vlc være "playeren" som kunne vælge kamera streams osv.
Sådan i sammenhæng med videomixeren er vores lille streambro smart og jeg overvejer at den evt. også kunne få en VPN til fjernkontrol og sammen med en andre mixere end Tricasteren er det jo en smart lille computer som ikke fylder en masse - det handler også lidt om at en videomixer i sig selv ikke har de samme muligheder som en computer så det er et suppplerende værktøj til mixeren.
Men det kommer måske i version 2 ;)
Men denne løstning er lavet til CATV eftersom Tricasteren "gammel software" har sine software begræsninger.
Så er der tilføjet mulighed for at lave en VPN connection så BlackMagic ATM mini eller RGBlink kan styres med tilknyttet software - BlackMagic har en ATEM streaming bridge som har SDI osv. og den koster måske omkring 1700 kr men en RPI3 tja den koster omkring 500 kr også kan man jo lave en masse ekstra sjov men der så ikke SDI interface.