Livesändning av gudstjänst 2023

En genomgång av hur vår setup för livesändning ser ut i Ytterby kyrka 2023 följer nedan. Inga stor förändringar på länge, mest vissa uppdateringar och uppstädning av lösningen kontinuerligt.

Hårdvara

Kameror

Använder fortfarande 2 st Panasonic Lumix G7, 1 st Panasonic Lumix GH4, 1 st Sony SRG-120DH PTZ-kamera samt Iphone SE med NDICam app.

Dator

Även datorn är densamma sedan start, en HP Z420 med ett Geforce GTX1660 Super grafikkort för att få bra prestanda på NVEC för encoding.

Kringutrustning

Inmatning

Två stycken Elgato Stream deck med 15 knappar vardera tillsammans med en Korg nanoKontrol Studio midi-kontroller med 8 kanaler för att styra ljud.

Kablar

HDMI-kablar på 15, 20 och 25m till Panasonic och Sony kameror är av den kraftigare typen och inte hybridkablar som finns numera och som är enklare och stabilare.

Ljudmixern

Ljudmixern som är en Yamha TF5 används som ljudkort över USB via ASIO.

Mjukvaror

OBS

Vi har stannat på version 27 av OBS pga. kompabilitet med plugins.

Utökningar

  • obs-asio 2.0.3 för att få in mixerns ASIO-kanaler som enskilda kanaler i OBS
  • obs-ndi NDI-plugin för att ta in kameran från Iphone
  • obs-websocket 4.9 för att externa program ska kunna styra OBS
  • Move-transition för zoomande övergångar mellan de olika utsnitten från samma kamera
  • Transition-table för att styra när vilka övergångar används
  • Spectralizer för grafik på ”väntar”-scenen från ljud
  • Klock-script
  • MIDI-control för att hantera styrningen av OBS från MIDI-kontrollern (vi kör fortfarande med en äldre version 1.9)

OpenLP

Vi kör OpenLP version 2.4.6 och använder en anpassad mall till webbfunktionen för att lägga OpenLP som overlay i OBS.

Holographics

För grafiken använder vi Holographics 1.11.2 som renderar en websida som sedan är overlay i OBS på samma sätt som OpenLP. Utvecklingen av Holographics verkar dock ha avstannat!

Bitfocus Companion

För att styra mer än av Elgato´s mjukvara klara av använder vi även Bitfocus Companion för att styra PTZ-kameran, OpenLP, Holographics.

Vad har vi avvecklat

  • Tally-lampor kopplade till var sin Raspberry Zero W styrda med MQTT/Node-red har vi inget behov längre när det alltid finns personer i kyrkan och inte bara hemifrån.
  • Skylt med ”I sändning” / ”Inspelning pågår” styrd via MQTT/Shelly relä har vi också städat av samma anledning.
  • Möljighet att fjärrstyra OBS via en web-sida publicerad via Nginx
  • Placeringen av PTZ-kameran mitt i kyrkan i korsarmen var bara så länge det fanns begränsningar och numera sitter kameran på en av stolparna som bär upp läktaren istället

Jämförelse av NDI-appar på IOS

Så lång har jag testat följande appar på IOS som utlovar NDI-funktionalitet.

Lite om NDI, finns två varianter, NDI och NDI HX, den senare nyttjar komprimering och har i teorin lite större fördröjning än NDI som däremot nyttjar betydligt mer bandbredd. För mer detaljer; https://www.epiphan.com/blog/ndi-ndihx-network-video-production/

NDICam

NDICam är appen jag använder mest, kostar dock 119:-. Har stöd för både NDI och NDI HX, bandbredd att nyttja för NDI HX går också att ställa in. Ytterligare en fördel för oss som är i Europa är att det skall gå att köra 25fps, dock lyckas jag bara få 29,97fps oavsett inställning. Finns 4 nivåer av kvalitet, brukar köra på 3/4, 720p, max är 1080p, lägsta är 270p, nivå 2 är 540p. Fördröjning till OBS på ~200ms i 720p.
En ytterligare nackdel jag noterat är att om man kör länge så verkar kvalitén att minska och börjar bli pixlig! Dock verkar första timmarna vara ok, sedan behöver appen startas om. Man vill alltså inte montera telefonen otillgängligt.


NDI HX Camera

NDI HX Camera är sedan början på året gratis, kostade tidigare 99:-. Finns 3 kvalitetsnivåer, 480p(4×3)@30p, 1080@30p eller 4k@30p, dock ingen möjlighet att ställa in bandbredd separat. Fördröjning till OBS med 1080p, ~900ms. Bildkvalitén upplevs som så bra som telefonens kamera är, dvs en XS är bättre än en SE, även om den senare är helt ok.


OBS Camera

OBS Camera kostar 189:-. Går att ställa High, Standard, Low, alla skickar 1080@30p. Går att ställa in även lägre upplösningar och andra fps. Exempelvis 720p och 480p, 25, 30, eller 60 fps. Enda läget med fördröjning under kontroll är 480p, de övriga inställningar lyckas jag inte att få något flyt i bilder alls. Finns fler filminställningar i OBS Camera än i övriga appar, dock är de väl tekniska och inte avpassade för praktiskt filmande.


EpocCam

EpocCam marknadsför att den hanterar NDI, lyckas inte få igång något alls…


Newtek har även en app som skickar telefonens skärm via NDI, NDI HX Capture, går att exemplevis använda Filmic Pro utan overlay, dock bara i telefonskärmens upplösning.


Slutsats så här långt är att NDICam går att synka med Panasonic + Camlink, vill man jobba med gratis-app så fungerar NDI HX Camera fint men man behöver ha fördröjning på ljud (och ev. även andra bildkällor)

Spela in med OBS

Här följer noteringar för konfiguration av inspelning parallellt med ström i OBS för att ladda upp efter en liveström.

Inställningar

Inspelningsinställningar återfinns under utmatning

Sökväg: Här anges var filerna skall sparas, se till att det finns tillräckligt med utrymme.

Kvalitet: Välj lämpligen samma som ström, ger minst addering av extra cpu-behov för att spela in samtidigt med ström.

Filformat

Filformaten som finns att välja på är;

  • flv
  • mp4
  • mov
  • mkv
  • ts
  • m3u8

Dessa går att dela upp i två grupper, kraschsäkra och inte kraschsäkra dito.

flv och mkv hanterar om OBS kraschar att öppna filen. en mp4 fil behöver stängas av programmet för att gå att öppna igen, den blir oläsbar vid en krasch.

Förstahandsvalet med mest möjligheter är mkv.

OBS-inställningar-inspelning
OBS inställning inspelning

Remux

Under arkivmenyn återfinns valet remuxa inspelning, här väljer man mkv-fil och konverterar den till mp4 som är ett format med större kompatibilitet för vidare användning.

OBS-remux
OBS remux

 

Lägg till nytt live-evenemang på Youtube

fortsatta noteringar avseende streaming via Youtube…

Skapa nya Youtube-evenemang

  1. Gå till https://www.youtube.com/my_live_events 
  2. Nytt evenemang
    1. Alt. A, Välj Nytt liveevenemang
    2. Alt. B, under en aktuell video välja Skapa nytt liveevenemang med de här inställningarna.
  3. Fyll i titel (Ytterby kyrkan Söndagens namn 2018) och välj dag/tid
  4. Är det en kopia av ett tidigare evenemang så hoppa till punkt 12 nedan.
  5. Välj att göra det olistat om det inte är nästkommande evenemang.
  6. Typ skall vara ”Anpassad
  7. Byt sedan flik till ”Avancerade inställningar”, det flesta av grundinställningarna är ok.
  8. Verifiera att
    1. Strömoptimering = Normal fördröjning
    2. Tillagd fördröjning = 30 sekunder
  9. Bonus
    • Kampanjer – Marknadsför på min kanalsida = 1 dag före schemalagd starttid för att evenemanget skall synas på Kanalsidan redan dagen före.
  10. Om det är nästkommande (men bara då) välj att under ”Starta automatiskt” kryssa i ”Starta streamen automatiskt när du börjar skicka data
  11. Välj sedan Skapa evenemang.
  12. Dags att välja miniatyrbild som visas innan evenemanget startar och även är omslagsbild efter sändning om inte någon annan bild väljs, finns i detta specifika fall på Google Drive att hämta.
  13. Om det är ett nytt evenemang tillse att Streamingnyckel som kan återanvändas är vald och i detta specifika fall Stream Ytterby kyrka 1080p
    • I fältet Namn på ström som står nedanför är strängen som finns inmatad i OBS utskriven.
  14. Välj att Spara ändringar och återgå sedan till listan med evenemang genom att klicka på pil-tillbaka-knappen.

Uppdatering av Youtube-evenemang

För ett redan skapat evenemang är det lämpligt när det sedan är nästkommande att uppdatera med ett kryss för ”Starta streamen automatiskt när du börjar skicka data” enligt punkt 10 ovan.

  • Starta sedan livesändningen enbart genom att välja Börja strömma i OBS!

Starta med streaming av ljud

Här kommer en serie med noteringar om vilka förutsättningar som behövs för att starta med livesändning till Youtube med OBS.

I utgångsläget är första delmålet att skicka ljud återkommande där enkelt handhavande är fokus.

Vad behövs:

  1. ljudkälla, i detta exempel så finns det en Yamaha TF5-mixer som producerar ljudet i kyrkan idag.
  2. ljudinterface USB till datorn
  3. dator, befintligt laptop med Windows 7 som redan används för inspelning till mp3 tillsammans med Audacity, dock med tveksam ljudkvalitet.
  4. internetuppkoppling
  5. mjukvara, OBS, Open Broadcast Software
  6. någon form av bild/grafik behövs också iom att Youtube förväntar sig egentligen en rörlig bild.
  7. Google-konto för att komma åt Youtube studio

Konfigurering

Ljudmixer

Rumsljud

Egentligen oavsett mixer så behöver det förstärkta ljudet i kyrkan kompletteras med någon form av upptagning av rumsljudet som inte skall förstärkas ut i kyrkan utan bara skickas till livesändningen. Efter lite experimenterande så är en komplettering med två stycken RØDE NT5 gjort för detta ändamål, dessa är placerade i höjd med kyrkans högtalare riktade mot församlingen. För att dessa mikrofoner inte skall gå ut i kyrkan så är de exkluderade från mixen till samtliga högtalare.
Mer info om RØDE NT5 här: http://www.rode.com/microphones/nt5

Separat mix

De flesta mixerbord bör ha några ”Aux” där man kan ta ut ljud från mixerbordet, på ett Yamaha TF5-bord finns både mono och stereo-varianter. En stereo-aux är vald iom att de två NT5´or då kan konfigureras för att ta upp vänster resp höger. Övriga kanaler som myggor, handmikrofoner och instrument är mono och skickas till båda stereokanalerna.

Rumsljudets mikrofoner skickas till stereo-aux före reglar (pre-fader), det går med andra ord alltid vidare till livesändningen oavsett mixen i kyrkan, övriga kanaler är ju händelsestyrda och ligger därmed efter regel och följer mixen i kyrkan.

Kompressor

Dynamiken i ljudet till livesändningen behöver minskas jämfört med det som skickas ut i kyrkan därför är en ganska aggressiv kompressor lagd på utgående stereo-aux, Yamaha TF5 har den fina finessen att det finns en ”1-knob”-funktion och den är satt till 60% i dagsläget.

Ljudinterface

För att få in ljudet på ett bra sätt i datorn och som stereo behöver datorn kompletteras med en ljudkort. Den inbyggda mic-ingången är lika bra att ge upp, kvalitén blir inte tillräcklig och är enbart mono. Signalkvaliten blir bäst om den är balanserad så XLR blev valet här, har testkört med en Zoom H5 och kvalitén blir helt ok, dock är uppstarten av den till ljudkortsläge inte så enkel, därav inte att rekommendera som en långsiktig lösning.
Steg två blev ett Behringer UMC204HD som förutom attraktivt pris också har dämpning på ingångarna (”PAD”). Kortet är konfigureras med avstängd 48V, Line-nivå och PAD aktiv och har då en gain på ungefär 50%.
Mer info om Behringer UMC204HD här: http://www.musictri.be/Categories/Behringer/Computer-Audio/Interfaces/UMC204HD/p/P0BK0

Dator

Hårdvarukonfig

En några år gammal HP-laptop av typ Probook fanns redan på plats och visad sig klara av att hantera livesändning av ljud, den har dock inte kapacitet att skicka rörlig bild, för det krävs betydligt mer prestanda, mer om det i samband med konfigurering av OBS.

Nätverk

Att rekommendera är att ha en trådad anslutning till internet från datorn, har testkört med trådlös router och det fungerar (!) dock inte utan problem, stabiliteten med en sladd är svårslagen!

drivrutin ljudinterface

Installation av drivrutin för ljudinterface krävs i Windows, kör man OS X är man startklar utan att behöva installera något.

OBS OBS

Installation

Finns att ladda ner på https://obsproject.com

Förutom själva installationsfilen ovan så kan även ytterligare filer krävas på Windows-plattformen från Microsoft nämligen Visual Studio 2013 Runtime, de hittas här: https://obsproject.com/visual-studio-2013-runtimes

Konfiguration

När installationen är gjord är det dags för konfigurering, finns en automatisk konfigurationsguide som kan köras, den kan användas för att göra alla grundinställningar.

Det som inte ges med automatik är optimeringen för ljud där så här långt följande är justerat;

  • bithastighet för ljud = 160kb
  • bildhastighetsvärde = 10 fps
Skapa sändning

I enklaste utförandet så behövs en Scen och sedan några källor som;

  1. ljudinmatningsenhet, här dyker ljudinterfacet upp
  2. Bild, lämplig bakgrundsbild som kan återanvändas
  3. Text eller bild med sändningspecifik information, jag har i dagsläget valt att göra den Photoshop för att har frihet och möjlighet att vara konsekvent i uttryck.
  4. [bonus] Lua Clock, i senaste versionen av OBS finns ett script för en analog klocka, ett enkelt sätt att förmedla att sändningen inte har hängt sig innan start.
Ljudnivåer

Mixern i OBS har en skala från grönt via gult till rött. En lämplig tumregel är att musik skall hålla sig på den gröna delen av skala, tal kan ligga inom det gula området och inget skall mer än tillfälligt befinnas sig på den röda delen av skalan.

För att inte riskera att ljudet till Youtube bottnar och låter illa så är en kompressor lagd som filter på ljudinmatningsenheten;

  • Förhållande 10:1
  • Tröskel -10dB
  • Attack 6ms
  • Frigör 60ms
  • Utmatningsförstärkning 3,5dB

Youtube

Utgångsläget är att nå Youtube studio, https://www.youtube.com/dashboard?o=U

Livestreaming

I menyn till vänster återfinns ”Livestreaming” och sedan finns två val, antingen ”Streama nu” eller ”Evenemang”. För att kunna marknadsföra och även förbereda är det att föredra att skapa evenemang.

Skapa nytt live-evenemang, ge det en titel och en starttid (du kan även starta innan utsatt tid), välj om det skall vara offentligt eller olistat. För enkelhetens skull är evenemangen vi kör offentliga.
Under avancerade inställningar kan man klicka i att Starta streamen automatiskt när du börjar skicka data, vilket för att man inte behöver gå till Youtube för att starta publik visning av sändningen.
Under strömoptimering, välj Normal fördröjning för bättre stabilitet, kör även med en ytterligare fördröjning på 30s i hopp om stabilare visning.

Under inmatningsinställningar så ladda upp en bild som blir tumnagel innan sändningen startar, har valt att ta delar av bilden med information som överlagras livesändningen och återanvända här med en enfärgad bakgrund.

Dina skapade evenemang återfinns här: https://www.youtube.com/my_live_events

Streamingsnyckel

För att koppla ihop det OBS skickar till Youtube med evenemanget som skapats används en streamningnyckel.

Skapa en av typen Streamingnyckel som kan återanvändas, då behöver inte konfigurationen i OBS ändras, bara att skapa nya evenemang med samma inställningar gång efter gång, ger enkelhet!

Välj kodare: Andra omkodare, då skall ett fält som heter Namn på ström dyka upp, kopiera nyckeln i fältet för vidare användning i OBS.

I OBS inställningar under Ström återfinns val för vart sändningen skall skickas, välj Strömtyp Strömtjänster och sedan Youtube/Youtube Gaming, primär server och klistra sedan in nyckeln från Youtube.

Test

Sist men inte minst så krävs testning av hela kedjan, både avseende konfiguration men inte minst stabiliteten, bli inte orolig om Youtube anser att kvalitén på datan som når dem är dålig under en startperiod, brukar ta en liten stund innan allt är stabilt.

Lasten på CPU bör inte överstiga 60%, är den högre så är en bra början att justera utmatningen från OBS, välj Avancerat utmatningsläge, då dyker CPU användning förinställning upp, en snabbare inställning ger mindre belastning på CPU´n!

Fortsättning följer…