Tricaster450-raspberrypi-input

29 september 2021 Skrevet af 
i Blogs
  • Skriftstørrelse
Bedøm denne artikel
(0 bedømmelser)

Med et udgangpunkt i en kendt lokaltv station har jeg lavet en forklaring til et setup hvor remote streams kan sendes hjem til tv stationen og ind i en ældre Tricaster450 videomixer.

Det kunne være et kamera som sender sit signal eller det kunne være en anden videomixer (en anden måske obs) med flere tilkoblet flere kamera med RTMP eller SRT.

Dette er fordi CATV ikke bare kan opgradere Tricaster450 så kan vi dog nu sende rtmp eller srt til Tricaster gennem en DIY streambro lavet med en RaspberryPI 3.
Denne løsning virker også med andre typer af videomixere som ATEM mini og RGBLink+.

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.
 

Strembro

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://catv.christiania.org:4001?connect_timeout=3000&latency=2000000&listen_timeout=5000000&mode=listener&smoother=live&transtype=live&timeout=5000000&passphrase=ukendtEksempel
 
srt://192.168.9.9:4002?connect_timeout=3000&latency=2000000&listen_timeout=5000000&mode=listener&smoother=live&transtype=live&timeout=5000000&passphrase=kodenduskalkende
 
 
På Linux kan man benytte srt://@:port?osv  tilsvarende kan man på windows skrive srt://0.0.0.0:port?osv
 

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.
Jeg har flere gode ideer som kunne være sjov og lave i netop en lille computer som Raspberry men klart man kunne også bare vælge en vild og voldsom server.

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.
 
Nu er ideen med at benytte en raspberry sammmen med video mixer ikke ny - men jeg har bare udbygget den med RTMP+SRT protokollen og VLC samt restreamer funktionen.
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.

 
 
926 Senest ændret Fredag, 21 oktober 2022 13:10
Mere i denne kategori: