With the advent of the Coronavirus pandemic and the closure of church gatherings, I was thankful to be called into a new kind of service, putting my liturgical & technical knowledge to use streaming some liturgies from my home parish of Holy Family in Granite City, Illinois. (Web | Facebook | YouTube)
While I’m currently assigned at St. Mary’s in Alton at the moment for pastoral formation in our diaconate formation program, my pastor-supervisor there told me when this started that it’d be best to stay close to home, safe with the family. It took a couple of weeks, but when the pastor of my home parish, Holy Family, called and said he was interested in streaming liturgies so the parishioners could take part and feel connected, I was thrilled to be able to help.
I thought it would helpful to share an outline of our setup and how we’re accomplishing the streaming for anyone else who might be interested or might find it helpful.
First things first… I started with a quick read of a blog post from Jeff Geerling from back when this whole “no church” thing started. Reading his post got my brain going about how to piece together a system. Thank you, Jeff!
Luckily, almost everything we needed was already laying around my house from past projects or tinkering. Here’s the end-to-end run-down, though:
Video Sources: Webcams & Pixel Phones
The two primary video sources are a couple of older Logitech C930e 1080P HD Video Webcams on tripods (1 in the image above.) I had these sitting in storage with the plan to install them in a video studio set up in the boys’ school’s media lab once Suzanne told me they were ready to redo it.
Two additional video sources we added on Good Friday and plan to use on Easter Sunday are our Google Pixel Android phones (2). This thread/tutorial tipped me off to this idea. It leverages the phones and laptop on a basic standalone WiFi network (3, using an old wireless router I had laying around) with the IP Webcam App running on the phones and alex.info’s IP Video Source 64bit (4) running on the laptop. The apps on the phones then broadcast constant video camera streams across the WiFi into the computer as a video source.
Computer & OBS Studio
The computer (5) running open source OBS Studio forms the heart of the system. OBS provides all of the switching and mixing of the various sources and encodes into an outbound stream. It’s nothing special – just a Dell XPS 13″ (a couple of years old) that I use for all of my personal stuff.
I have been taking some photos around the church to use (i.e. for during the stations, as image inputs in scenes in OBS), as well as leveraging some imagery from Adobe Stock to create some of the before and after images, or the lower-thirds (when we put the citation of the reading, etc.) Of course I’m doing all of the image prep in Adobe Photoshop (shameless plug for my day-job/employer.)
For audio, we wanted to have the best we could, so we decided to use the existing church sound system (6), with the wired (ambo, choir loft submix) and wireless (priest & deacon) mics and other sources. A simple XLR mic cable from a spare output of the main church mixer into a Focusrite Scarlett audio interface (7). This, plus an additional mic directly into the Scarlett, allow basic audio control and monitoring, and then is fed into the computer as the audio source for OBS.
We also took the step of turning off the main amplifier & speakers in the church, so that we get just the sound from the microphones and the natural echo in the space, and not a bunch of additional sound from the amplified sound reverberating around. (It is basically a structure of brick, marble, and wood, with some plaster above.)
When we’re ready to stream, we click “Start Streaming” in OBS, which we have configured to send the main stream to an account at castr.io (8) which makes easy work of “watching” for the stream from the church, then simultaneously sending it out to pre-configured streaming properties. We’re sending from castr.io to (9) Facebook video streaming on the church’s Facebook page and to YouTube, on a channel that we set up when this need arose.
(I also have an additional Facebook stream going out to a live video on my personal Facebook profile, that only Suzanne can see, that we’ll now use to test before we go live.)
Learnings & Gotchas
A few key learnings / gotchas…
- The first “aha” I noticed from Jeff Geerling’s blog is that YouTube live streams take a 24-hour period to set up. So if you’re going to do this, get your Channel squared away immediately and make sure you validate and request live streaming. It’ll definitely take 24 hours from that moment until you can even think about streaming to YouTube.
- The out-of-the-box config in OBS had a screen resolution and frame rate that killed the processor on the laptop, so I’ve been using a smaller video resolution of 1280×720 at 30fps.
- We also initially tested sending from the laptop to the internet and castr.io via a wifi connection to the Internet. Not only was the router about 100′ away, but it was through a couple of brick walls, and we just couldn’t keep reliable enough of a connection. We kept seeing drops in the broadcast in the monitor at castr.io, so we knew it wouldn’t work reliably. Luckily, the local Best Buy had a 150′ cat6 cable available for same-day curbside pickup. A wired connection from the streaming computer to the Internet proved key for us.
- On Good Friday, we had a good old fashioned issue with a microphone in the church system. We hadn’t even spent time testing that out before we started on Friday, but if it could happen any given Sunday at church, it could happen in this setup. This comes with all the usual caveats like fresh batteries in the mics’ battery packs, etc. Now we’re going to do some good old fashioned sound system debugging before Sunday.
That’s all for now. I hope it’s helpful or interesting. If or as we add or think of more, I’ll add it as updates below. Who knows how long we’ll be at this…
Let’s pray for a quick resolution to this pandemic, for comfort and recovery to those affected, and for strength for those caring for them.
Stay home, stay safe!