My church is hosting the Global Leadership Summit again in August. This will be our second year. If you’re unfamiliar with the GLS, it is a 2-day intensive leadership conference with world-class speakers that takes place globally. The live speakers are at Willow Creek church in Illinois, and they send the content live around the globe via satellite and web stream.
As a host site, we have a variety of tasks to accomplish throughout the year as we prepare to host. As the technical director, it’s my job to make sure the satellite feed is working properly, and we do tests months in advance to be ready. In fact, we just had our first full test last week.
Sometimes during the actual event, the satellite feed will go down or have a problem and we will need to switch to the web stream. I decided a quick Dashboard Panel would be an easy solution to enable this, so that in the heat of the moment, I’m not having to think through audio de-embedders, video routes, etc. I can just click a button, and have the computer do the work. It will also help in case I have to step out and there is an issue while I am gone, because anyone on my team can click a button!
Are you hosting or attending the GLS this year? What are you doing to prepare?
We used this in production this week and it worked great! I decided quickly though that this needed some form and style, not just function.
I also added the ability to be able to send a custom message to the screen!
The two buttons, “Send to Screens” and “Screens Back to Normal” in this panel are for my team, we use them to control MiniMEs on our Ross Carbonite switchers that send to our confidence monitors in the auditoriums.
I’ve updated the files on Github, if you want to go grab them!
Accurate clocks and countdowns can be a huge help when it comes to keeping services and productions on time. In our control rooms, we use these clocks:
They’re made by a company called ESE and they are basically network-based POE-powered NTP clocks. Because they are synced to NTP (Network Time Protocol), they are all in sync to the exact same time down to the second. We like them because they are big and grab your attention. We have them mounted above the multiviewers in each control room along with a couple of others in the actual tech booths out in the auditoriums.
But what about everyone else, like the band or people on stage? We don’t have clocks like this where they can easily see. And, the ESE clocks just tell the time, they don’t count down to a specific time.
I decided to do something about that. We have a server in the video rack room that has a video out connection into the video systems. It’s just a simple output of the secondary monitor. So, I figured it would be pretty easy to display a clock in a browser, and run it full screen on that secondary monitor, that feeds into the video router where I can then easily send it to any screen in the system that needs it.
This computer’s time is synced to NTP, so it stays in sync with the clocks in the control rooms, too.
I quickly decided to take this a step further and incorporate some countdowns. I had a couple of self-imposed restrictions though:
I wanted the countdowns to be customizable as our needs change, not just always count down to the same date/time.
I didn’t want to run a web server just to accomplish this, in order to pass new data to the locally running page/JavaScript.
I decided an easy method would be to have a separate JavaScript file that defines some countdown data, and include that in my main clock page, and just refresh the page to get the new data. I set the page to reload every 30 seconds by putting this in the <head> of the HTML:
<meta http-equiv="refresh" content="30">
I want my volunteers to be able to easily change this countdown data, without having to know JavaScript. Time for Dashboard! My directors have a Dashboard Custom Panel that I created for them which they use every week. It has a myriad of control options for them, so it was simple to just add another tab for the new countdowns.
Dashboard has a built in date picker and time picker, which makes it super easy.
I added two options in addition to the date and time, publish time, and expire time.
I limited it to these few options, between 2 minutes and 7 days. This determines when the countdown will appear on the screen.When a countdown expires, it turns red so it grabs your attention.
When the user clicks, “Update”, it runs a simple function that grabs all of this data, writes the JavaScript into a string, and then saves that into a file using the ogscript.saveToFile function. The file is saved to a common Dropbox folder that the server running the web page clock has access to.
Here it is in action. The countdowns automatically update when the page reloads every 30 seconds.
I’ve made the files available on my Github, if you can benefit from them! We will be giving this a trial run on Sunday.
Wirecast is a great tool for live streaming. At Fellowship Greenville, we use it as our encoder to stream to YouTube Live, whether it be the regular Sunday morning sermon live stream, or for special events, conferences, funerals, etc.
Lately, I’ve been working specifically on some improvements to make it easier for me to operate a live stream from our second auditorium, where we typically host funeral services and special events. Our live stream server is located in our control rooms in the main building, so when I am working tech for an event in the second auditorium, I am completely separated from the control rooms.
For regular Sunday services, that’s not a problem to be separated because we have a great team of volunteers working in both areas who stay in communication with and support each other. But for smaller services like a funeral, where it is typically only me and one other staff member running everything, it can be challenging to run a full production while I am sitting in the tech booth, far away from the control room areas where the live stream server and video switcher are located.
This is where my Stream Deck Production Controller software is going to be a great help. I have created a button set that allows me to send RossTalk commands to the Ross Carbonite switcher, change the necessary routes on the BlackMagic VideoHub router, and start/stop the Wirecast live stream.
So how does this work? The Stream Deck software is sending a GPI trigger request to Dashboard, where I have these buttons in my production control custom panel:
Clicking the “Wirecast – Start Streaming” button runs a custom ogscript function that runs this AppleScript:
And that’s it! By using the existing infrastructure I’ve designed for our production control, I’m now able to easily run the live stream but still maintain high value in what is streamed. By using the stream deck to operate not only Wirecast, but the video switcher remotely, I can change sources as needed, play videos, show cameras, etc. I even have a button that jumps to my PTZ camera control where I can recall presets that I’ve designed specifically for special events like this!
My Stream Deck software is available on Github if you would like to use it, and feel free to reach out if I can help!
In Part 1 of this post, I wrote about the technical side of how to use Ross Dashboard to send a TCP message to a Blackmagic VideoHub video router.
I thought I would expand on that recently and now I have made available a panel that, when set up with the IP address and port of the router, will automatically load the input (source) and output (destination) names into dropdown lists where the user can easily choose a source and destination to make a route.
We have a Panasonic AW-HE40 located in each auditorium at my church to allow the control room operators to see the space. We also occasionally use them as on-screen cameras since they have HD-SDI outputs. The quality is surprising for the size of the device.
The cameras come with a fully functional webpage that allows you to control them.
By peeking around at the code some, I was able to figure out how to send HTTP requests to change presets of the camera.
Here is my Ross Dashboard custom panel that allows our volunteers to quickly pull up presets:
The panel allows the user to see the camera’s viewing angle and select a pre-defined preset. Presets can be modified within the existing web interface for the camera. A Setup tab is also available to configure the IP address of the camera you wish to control.
If you use my panel, you’ll still need to manage/modify the presets using the existing interface. We don’t change our presets often, so I didn’t feel the need to recreate any other functionality than recalling presets.
At my church, we use Unity Intercom to expand our wired intercom system. It is very useful to have users who can be mobile and still stay in communication.
We wanted to have the ability for our directors to see who is currently logged into Unity without having to log into the server or be logged into a Unity client on a device.
After doing some digging and consulting the forums, I found out that if you go to this address:
http://unityserverIPaddr:20101/userconfig
The Unity server will return a JSON dataset of the server information including the list of users.