Techniek:Livestream

Uit Parwiki



DE DOCUMENTATIE MOET DRINGEND AANGEVULD WORDEN.
TODO o.a. omschrijving arduino software,br>

  • pythonleestitel7.ino (of hoger nr)
  • livestreamsignaal10.ino
  • lcd_livestream.ino ... de oranje lcd
  • volgmij_extra_17.ino


1 Trouble shooting

Let op OBS Studio v. 27.1.3 is geïnstalleerd. Versie 28 heeft problemen met de OBS NDI plugin, dus niet upgraden!!
Het probleem is dat er kennelijk problemen zijn met de rechten van het NDI gebeuren.

Wachten tot dit probleem is opgelost voor je kan upgraden. Immers je hebt zonder deze plugin geen toegang tot de camera of ander computerscherm.
Mocht je per ongeluk toch upgraden. Je kan downgraden door gewoon de oude versie opnieuw te installeren. (ervaring 2/9/2022)
Bij een update van Elgato Stream Deck zet deze zichzelf in opstarten (okt en dec 2021)
Echter indien Stream Deck in opstarten staat dan werken in OBS-Studio een aantal hotkeys niet!!
Indien Stream Deck automatisch opstart, dan werken een aantal hotkeys (om OBS te besturen) niet.
Uit opstarten (bij instellingenvan Windows) gooien (apps -> opstarten.

2 Huidige versie

Eerste keer in gebruik op zondag 6 september 2020.
Centraal PTZOptics HD Videocamera: Model PT30X-NDI-WH-Cserienr. rf06190039 (=PT30X-NDI-GY)
NDI betekent: beeld, geluid, besturing camera allemaal via UTP kabel, met eigen IP adres (hier 192.168.2.111).
De kabel UTP 6 getrokken vanuit meterkast naar balustrade oksaal (in totaal 96! meter).
Streamen via Youtube, met behulp van programma OBS Studio.
Camera-besturing van PTZ Optics als plugin in OBS Studio.
Geluid is identiek aan dat ontwikkeld voor de eerste versie.

Het beeld van de projectiecomputer (ChurchSlide) wordt via NDI Screen Capture (via internet) in de livestream geplaatst.

Let op: vanuit OBS instellingen moet je steeds weer een streamsleutel activeren in Youtube. Dit moet handmatig. Kan niet geautomatiseerd in juni 2021.

3 Koppeling met ChurchSlide

Zie hier de schemata en uitleg.

4 Geluid

Het geluid wordt afgetapt van ... met een mono jack ... deze met behulp van zelfgebouwde omzetter/attenuator naar de computer (via microfoon op usb ingang) (Deze moet je natuurlijk selecteren in de livestream-software OBS Studio). Dit geluid is perfect.
Ervaring: noise suppression van OBS Studio maakt spreken kraakhelder maar vervormt zang zeer erg, dus uitgezet.
schema omzetter

5 Beamer beeld in livestream

  • het beeld wordt verzonden via NDI Screen Capture op de projectiecomputer (sacristie).[1]

Dit gaat gewoon via een netwerkkabel over intranet.
Dit programma start automatisch mee op. Je hoeft verder niets te doen.
De vinkjes moeten allemaal uit staan voor het beste resultaat.

  • op de livestream-laptop moet studiomodus uit staan.
  • Via wat hardware wordt het signaal van de gele led (beamer aan) optisch gekoppeld aan de arduino leonardo die via usb gekoppeld is aan de laptop. Deze geeft bij aan / uit de hotkeys Alt-D en Alt-C door naar de livestream computer via USB deze moet nu gekoppeld aan NDItmSource2.

Dit is ingebouwd in de arduino die ook het volg-mij systeem beheert.
Op de laptop zijn deze hotkeys in OBS Studio gebruikt om de scene Churchslide (hierin staat het zwarte tekstprojectiebeeld van ChurchSlide!) aan en uit te zetten.

  • Dit veronderstelt uiteraard dat deze hotkeys in OBS Studio gedefinieerd zijn en de functie hebben om in dit geval de scene churchslide, waarbinnen het NDI signaal van de projectiecomputer binnenkomt en weergegeven wordt.

Let op: de laptop ziet het beeld pas als het verandert.
Dit werkt zo: de scene ChurchSlide is genest in alle andere scenes, zodat aan of uit overal verschijnt.
Zorg dat ook de scene ChurchSlide in alle scenes genest is, ook waar de tekst niet gezien hoeft/mag worden.
Plaats deze scene waar hij niet gezien hoeft te worden onderaan in de bronnen. Dan blijft het beeld in de scene ChurchSlide synchroon met het beeld van de projectie, als je naar een scene gaat waar de dia wel geplaatst/gezien moet worden. Anders heeft hij de veranderende dia's niet gevolgd. Nu gebeurt dat op de achtergrond wel en is hij up-to-date bij scene-wisseling.
Let wel: als het uitgaande beeld van de projectie-computer uit staat (gele led uit) dan wordt er helemaal geen beeld verzonden. OBS synchroniseert niet spontaan bij het opnieuw aangaan van het beeld, maar enkel bij een veranderend beeld, vandaar de page-down en page-up truuk van de afstandbediening.

  • P.S. ook het koppelen van de microfoon aan de scenes gebeurt via hotkeys in OBS Studio.
  • De arduino achter de computertafel krijgt zijn input van de afstandbediening.

Omdat er slechts één arduino (in volg-mij-systeem) de hotkeys beheert om OBS Studio aan te sturen zie hier: de nodige schemata.

6 Automatisch volgen door camera van de gekozen microfoon

Let op: werkt enkel indien geluidsinstallatie is aangezet.
Het volg-mij-kastje bevat een arduino die twee dingen doet:

  • het verzorgen van beeld aan/uit van de liedteksten in de livestream. Dit werkt altijd als de projectiecomputer en beamer aanstaan (onafhankelijk van aan/uit stand van dit kastje).
  • het doen volgen van de microfoonpositie door de camera. Hierbij houdt het systeem rekening met het feit of de projectie/beamer aanstaat. De camerapositie wordt zo gekozen dat het projectievlak van de teksten buiten de positie van de persoon/personen bij ambo, altaar of koor valt. Zonder beamer-aan wordt er direct ingezoomd. Bij beamer-aan wordt at random gekozen tussen twee (uit de aard van de zaak relatief dicht bij elkaar liggende) camera-posities.

6.1 Uitleg van het volg-mij-systeem

Let op de arduino in het volg-mij kastje doet drie dingen:

  • Beeld aan beamer en beeld uit (via hotkeys, zie gele leds en knoppen op computertafel)
  • de microfoonvoorkeur stuurt de camerapositie stuurt (indien volg-mij aanstaat)
Indien volgm-mij aan en geen microfoon gekozen dan gaat het beeld binnen 10 seconden centraal (hele priesterkoor)[2]
  • via arduino met pythonlees (zit rechts in kastje) wordt gekeken of de mistijd bekend is. Indien deze bekend dan gaat bij geen gekozen microfoon het beeld centraal met de liturgische titel van die dag.
  • via ethernet gaat het signaal naar de tally of het volgen aan of uit staat en verschijnt de commentaar op het oranje schermpje rechts van de meterkast.

6.1.1 Beeld aan en beeld uit

Gele led aan (beeld aan in kerk)

Let op: komt van Churchslide via NDI Screen Capture.
sneltoetsen
let op: deze arduino geeft permanent de input van de sacristie-monitor door gestuurd door beeld-aan/uit (gele led) boven computertafel. (dit is onafhankelijk van aan/uit zijn van het volg-mij-systeem).

handeling toets commentaar
Toon beeld van computer sacristie ctrl-D hotkey scene (i.c. ChurchSlide) aan, met daarin de NDI link: NDItmSource2
Verberg beeld van sacristie ctrl-C hotkey scene (i.c. ChurchSlide) uit, met daarin de NDI link NDItmSource2

Dit signaal 12V komt via een usb-kabel (niet in gebruik als internetkabel dus) naar de arduino leonardo bij de laptop, via optocoupler.
Het signaal via deze utp-kabel (di type kabel omdat die er reeds lag) in is: beeld aan/uit en beamer aan/uit.
Zie ook: Techniek:MK afstandsbediening ChurchSlide deze bedient de ChurchSlide-computer en kan ook het beeld knippen.

6.1.2 Uitgaande van de microfoonvoorkeur, indien ingeschakeld volgt de camera de voorkeurmicrofoon

De schemata

Volg-mij! (camerapositie volgt voorkeurkeuze microfoon)
Indien de geluidsinstallatie en daarmee de randapparatuur ingeschakeld is kan volg-mij ingeschakeld worden.
Indien ingeschakeld dan stuurt het systeem via hotkeys in OBS Studio de camerapositie naar altaar, ambo of koor.
Een verandering van camerapositie gebeurt enkel als de keuze van de microfoon verandert.
Indien het volg-mij-systeem aanstaat en alle microfoons worden uitgezet, gaat de camera naar preset1, beeld van heel priesterkoor. Voor de dienst gaat die centraal nar priesterkoor met liturgische titel.
Het systeem weet wanneer de beamer aanstaat en zal een camerapositie kiezen die bij beamer-aan voorkomt dat de tekstdia voor de spreker of koor verschijnt.
Indien het een reguliere dienst is zet het systeem alles standaard (micros aan / extra muziek uit / volg-mij aan) en verdwijnt de liturgische titel.
Volg-mij stuurt ook zijn aan/uit stand naar de tally via internet (192.168.2.177), incl. de commentaar naar het oranje lcd-scherm.
Indien volg mij uit staat dan knippert de linker led rood-groen.
Het ip-address van Volg-mij is 192.168.2.178.


De arduino leonardo is optisch gescheiden van de sacristie-computer en van invoer van de voorkeuren van de microfoons. De voorkeuren worden afgetapt van de microfoonswitch.
Via hotkeys (sneltoetsen) in OBS Studio wordt het beeld gestuurd.
Dit is zo ingesteld dat de camera-positie enkel verandert wanneer de microfoonvoorkeur verandert.
Voor het begin van de Mis is het vaak handig om via reset alle microfoons uit te zetten, zodat volgmij reageert bij inschakelen van de eerste microfoon.
De aan/uit-stand van het volgmij-systeem wordt via ethernetshield naar de tally (192.168.2.177) incl. oranje lcd-scherm gestuurd (uit: linker led rood-groen knipper).

knoppen microfoon
op micro of op microfoonswitch

bij beamer aan
random keuze tussen 2 sneltoetsen
aanwezige projectievlak niet voor spreker plaatsen

bij beamer uit
let op hier is slechts 1 keuze, geen random tussen 2 sneltoetsen!! altijd vrij beeld zonder projectievlak

ambo (groene led)

ctrl-M = preset22

ctrl-U = preset32

ctrl-B = preset42

altaar (gele led)

ctrl-L = preset21

ctrl-T = preset31

ctrl-A = preset41

koor (rode led)

ctrl-K = preset23

ctrl-V = preset33

ctrl-F = preset43

reserve 1 (oranje led)

ctrl-xxx de facto niet in gebruik

reserve 2 (oranje led)

ctrl-xxx de facto niet in gebruik

Indien volg-mij aanstaat en alle microfoons uit staan, dan gaat het beeld centaal
Tijdens de dienst is dat:
ctrl-S = preset1 (hele priesterkoor) zonder liturgische titel anders hangt hij op laatste positie en dan kan vreemd zijn
Voor de dienst is dat:
ctrl-Z .. openingsscène met liturgische title


excursie preset:

  • De presets moeten dus gedefinieerd zijn. Nb. het definiëren van presets > 10 lukt niet in OBS Studio zelf. Je kan ze wel oproepen via OBS (PTZoptics toetsen in docks). Je stelt in OBS Studio de beeldpositie in. Definiëren doe je door dit te laten staan en de camera in de browser (buiten OBS dus) op te roepen met zijn ip-adres 192.168.2.10 en dan bij het ip-adres geef je een nummer aan de preset (dit is het beeld in OBS van dat moment). Vervolgens kan je in OBS Studio de preset oproepen onder bronnen als browser -> bv. voor preset 29: http://192.168.2.10/cgi-bin/ptzctrl.cgi?ptzcmd&poscall&29

6.2 Het Volg mij - systeem

Dit kan je enkel aanzetten via de groene pusher op het keuzekastje aanstaat (groeme led brandt).
De arduino krijgt het led-signaal van de microfoons binnen: nl. welke aanstaat. Dit zijn de facto: altaar, ambo en jeugdkoor (de twee reserves werken maar zijn niet in gebruik en in software niet actief). Via optocouplers gaan deze signalen naar de arduino leonardo: deze zendt de codes (sneltoetsen, zie hierboven) naar OBS. Uiteraard moeten die sneltoetsen/hotkeys in OBS gedefinieerd zijn. Behalve volgaan/volguit deze gaan via ethernet direct naar de tally en oranje lcd-scherm.
Het volg mij-systeem kijkt of de beamer aan of uit is en past het gekozen beeld (preset) aan zodat bij beamer-aan het zwarte scherm van Churchslide niet voor je snuffert staat.
Op dit moment is het zo ingesteld dat bij beamer-aan at random gekozen wordt uit twee camera-instellingen bij ambo / altaar / koor. Bij beamer uit is dit enkel één positie.
Over de automatische positionering bij volg-mij aan en alle microfoons uit, zie hierboven.
Er zijn nog twee reserve-keuzeknoppen voor extra-microfoons voorzien. Indien andere keuzemicrofoons aangesloten worden dan is dat uit te breiden.

De Arduino leonardo met ethernetshield op basis van W5500 aansluitingen (D10-13 gereserveerd):
D0 volgaan/uit dit is de groene pusher op volg-mij-kastje.
D1 beamer is aan /uit rode led op bedieningspaneel onder
D2 beamer beeld aan/uit dit is beeld-aan vanuit projectie daar nr 4 in standaarcontact (pinhead 8x)

gele led op bedieningspaneel onder

D3 van arduino met pythonlees puls hoog op moment dat dienst begint (de facto 30 sec. eerder). (Uiteraard indien reguliere diensttijd bekend is).

De zet ook volg-mij-pusher hoog!

D4 hoog, titel toonbaar; van arduino met pythonlees deze is hoog voor de dienst. (Uiteraard indien reguliere diensttijd bekend is).
D5 ambo
D6 altaar
D7 koor
D8 reserve1 dit is een niet-gebruikte microfoon met keuzeschakelaar
D9 reserve2 dit is een tweede niet-gebruikte microfoon met keuzeschakelaar

De gebruikte software is volgmij_extra_17.ino in arduino
Het volg-mij kastje heeft 5 aansluitingen/bussen:

  1. USB naar laptop voor livestream (deze geeft de hotkeys door naar OBS) dank zij de Leonardo
  2. sub-D stekker (in) hier komt het signaal van de leds (voorkeuren) van de microfoonswitch of microfoonkeuzeschakelaar binnen
  3. RJ45 stekker (geen internet!) deze is voor het ophalen van de signalen beamer / beeld beamer van de kerkprojectie (opgepikt aan de standaard pinhead van 8 achter projectiecomputer) en het uitzenden van de puls naar de arduino van de projectie om het scherm te verversen (refresh). Dit refreshen is afgekoppeld vw. overbodig, nl. ondervangen door bij beeld aan iedere keer vooruit-achteruit snel te doen (page-down en page-up truuk) om het beeld te bewegen.
  4. RJ45 stekker (wel internet!) direct van arduino ethernet-shield naar internet vw. doorgeven volgaan/volguit
  5. 3-voudige dupont-stekker voor input van de arduino met pythonlees: signaal: titeltoonbaar en puls: mis begint (30 sec. voor dienst)

(Zorg dat de arduino-stacks vastgeschroefd zitten, de zware stekkers en draden kunnen ze anders makkelijk loswrikken.)

6.3 Nog enkele hot-keys, i.v.m. geluid

  • microfoons aan: CTRL-2 (dan rode mic plaatje niet in beeld) en CTRL-6 betekent microfoon ook aan (kan ook direct binnen OBS, maar niet indien van arduino direct gestuurd, bij mis begint)
  • microfoons uit: CTRL-1 (dan rode mic plaatje wel in beeld) en CTRL-5 microfoon effectief ook uit, niet enkel het plaatje
  • externe muziek aan: CTRL-4 (in OBS: Desktop-audio 2 toggle mute)
  • externe muziek uit: CTRL-3 (in OBS: Desktop-audio 2 toggle unmute)

6.4 Pythonlees arduino

Via het python-programma liturgietitel wordt aan de arduino met pythonlees de begintijd van de dienst (indien deze die dag gepland is tenminste) doorgegeven.
Op het witte lcd scherm wordt aangegeven of dit programma gerund is en indien gerund of er een begintijd bekend is (dit is voor normale geplande missen en uitvaarten altijd zo).
De arduino geeft ook op het rode 4digit-schermpje de begintijd aan. (pythonleestitel7.ino (of hoger nr)(
Via een drieaderige dupont draad wordt aangegeven aan de volg-mij-arduino of de titel toonbaar is (voor de mis) en wordt 30 sec. voor begin van de dienst een puls gegeven waardoor het volg-mij-systeem automatisch alles overneemt en volgmij aanzet, micro aan enz.
Liturgietitel.exe hoort automatisch te runnen bij opstarten (deze is ondergebracht onder de knop OBS Studio starten).
Dit programma plaatst de liturgische titel in het bestand \\server2020\actueletitel.txt waar OBS het kan ophalen. (O.a. via knoppen auto opening en nu titel op Stream Deck).
liturgietitel geeft ook de exacte tijd (met max afwijking van 15 sec) en de exacte begintijd van de dienst door. Het programma litrugietitel sluit indien de arduino antwoordt en anders automatisch na 15 minuten (900 seconden).
Mocht er een tweede dienst zijn, uiteraard met ander begintijd, dan dien je liturgietitel en de hele opstartprocedure opnieuw te runnen.
Voor de python-programmeur: in python staat liturgietitel.py als liturgietitelmet.py. Je moet de naam veranderen bij gebruik op website.
schema Pythonlees alias liturgietitel

7 On-air, ledaanduiding van toestand livestream

Deze commando's worden verstuurd via de toetsen van streamdeck (via url aldaar).
WAARSCHUWING: als de laptop niet volledig uitgeschakeld wordt (maar bv. gewoon dicht gedaan) dan blijf streamdeck kennelijk in zijn geheugen oude waarden bewaren en werkt de "on-air" aanduiding niet.
Wat helpt is streamdeck opnieuw opstarten.
Let op na een streamdeck-update moet je streamdeck weer als administrator laten opstarten. Anders krijgt streamdeck geen toegang tot OBS!

Het correct opstarten van de arduino blijkt uit het flitsen rood / groen. Dit zegt echter niets over de toestand van de streamdeck zelf.

Let wel: volg mij! stuurt via ethernet shield ook het commando volgaan / volguit dit geeft aan of het camera-volgsysteem aan / uit staat.

Schemata

Aanduiding tally: on-air / recording (192.168.2.177/?xxx)
(nb. dit vaste IPadress is nodig voor OBS)
voorheen werd 2.11 genomen. Deze lage nummer wordt al gauw door UDP toegewezen en dan werkt dit niet.

leds

betekenis

intern commando

alles uit

geen life stream (begintoestand)

streamuit

groen aan

life stream is aan

streamaan

linker led knippert rood-groen

het automatisch volgen door camera staat uit

volgaan / volguit

middelste rode led knippert

uitgaande microfoons uit (mute)
begintoestand = microaan

microaan / microuit

rechter gele led knippert

externe muziek (bandje) naar livestream
begintoestand = externuit

externaan / externuit

alle leds knipperen

life stream is aan het sluiten, leadout-scherm

streamsluit gevolgd na 30 sec. door streamuit

enkel groene leds (normaal tijdens viering)

livestream aan
automatisch volgen aan
uitgaande geluid/microfoon aan
extra uitgaande muziek (niet geluid van kerk) uit


Via arduino ethernet shield worden de commando's
streamaan / streamuit / streamsluit / microaan / microuit / externaan / externuit / volgaan / volguit gelezen
Deze worden vanuit streamdeck verzonden (url), behalve volgaan/uit die rechtstreeks vanuit volgmij gestuurd worden.
(dit vw. historische reden. Kan natuurlijk allemaal rechtstreeks vanuit volgmij indien gewenst.) browser: 192.168.2.177/?streamaan enz.

Tally

ON AIR / RECORDING / MIKE MUTE
let op: werkt enkel indien geluidsinstallatie is ingeschakeld.
Bij het opstarten knippen de leds 3x gezamelijk groen - rood.
één of meer groene leds vol aan: livestream aan
linker led rood-groen knipper: volg mij (van camera in obs) staat uit
middelste led rood knipper: microfoon (uitgaand naar livestream) uit
rechter led geel knipper: externe muziek (uitgaand naar livestream) aan
één of meer groene leds knipper: livestream sluit af (30 sec. countdown)
Het oranje lcd-scherm geeft ook tekst en uitleg.

Tally en Volg-mij zijn gebouwd in december 2020 en compleet herzien in december 2023.

8 Pro memori

  • hou reed-relais uit de buurt van trafo op de print
  • gestapelde (stacked) arduino-shields vastschroeven, zeker als er bussen met bedrading op zitten
  • om software tally te uppen, usb stekker plaatsen (vergeet die van volgmij dan niet tijdelijk uit te trekken)
  • de liturgische datum, titel en begintijd (dit laatste enkel als er die dag een geplande mis is) wordt ingelezen van \\server2020\share\actueletitel.txt. Deze titel/inhoud wordt uit de mysql database van parwiki gelezen door liturgietekst.exe (een eigen python-programma)
De titel kan via toets in streamdeck geupdated worden. De facto wordt deze elke nacht via System Scheduler -> (OBS) liturgietitel geupdated.

9 TODO

  • Uitwerken van achtergrondmuziek.
  • Livestream aan en uit livestreamstart.exe en livestreamstop.exe werken, maar nog niet geintegreerd.

10 Voetnoten

  1. Voorheen was dat Newtek Scan Converter. Deze moest iedere keer handmatig worden ingesteld.
  2. Anders blijft het beeld bv. op ambo gericht indien microfoons uit, bv. bij een groot koor of fanfare