In autumn 2016, after the merge of mytaxi and hailo, it was made clear that the new management wanted to make the monthly “all hands” meeting visible to everyone in the company, not just the employees in our HQ in Hamburg. That meant recording the speakers and the presentation to stream it live to all our ~20 offices in Europe.
I asked a company for help, and they made an offer for a setup consisting of a video camera with streaming capabilities, an audio mixer and some microphones for about 12000 €. That was way too much in my opinion. So I went to my boss and told him I thought I could do it for much less money. In the end, I managed to build the setup for just about 4500 €.
The goal was to have a point from which we can direct what’s shown in the stream and control what’s being said. We wanted to switch video sources in software as this seemed far more flexible than a hardware solution.
After a few months of testing and iterating with a 15″ MacBook Pro as the streaming controller, we came to the conclusion that the performance was not sufficient (we had quite a few dropped frames), also the maximum number of inputs via Thunderbolt (2) wasn’t enough for us. So we decided to build a bigger, better, faster machine.
I wanted to have every video source coming in from external (via SDI/HDMI). I wanted to use SDI for the connections because SDI allow much longer cable lengths than HDMI. In the previous setup we used a 15m HDMI cable and already had problems in screens with 100% red (flickering).
The processor had to be very powerful. We plan to do 60fps streaming in 1080p in the future, so it should be able to encode that without problems.
It should fit in a 19″ flight case, so it can be transported without big hassle.
This is the core system. This machine will be used to run Telestream Wirecast, the streaming software (see more below):
19″ Flightcase: JV Case 6U
19″ Computer Case: Chenbro RM42300
Mainboard: MSI Z270 Gaming Pro Carbon
CPU: Intel Core i7 7700K
CPU Cooler: BeQuiet ShadowRock LP (we bought the non low-profile version by mistake, which led to us having a muscle car cooler now)
Power Supply: EVGA 550 G2
RAM: Corsair Vengeance 16GB
SSD: Samsung 850 EVO 500GB SATA You may also use an M2 SSD, the mainboard supports two of them: Samsung 850 M2 500GB
Video Capture Card: Blackmagic Design Decklink Duo 2
Graphics Card: NVidia Geforce GTX 1050Ti
Primary Display: LG Ultrawide 34″ display – any large ultrawide will do (you will need the space for the software audio mixer)
Keyboard and mouse: use any you like
This allows front access to all the inputs and outputs. Put labels on the inputs so you know where to connect the cables to.
Microphones + Audio Equipment
Audio Mixer: Behringer XENYX X1204USB
Hand microphones: 2x Sennheiser XSw 35 Set
Lavalier microphones: 2x Sennheiser XSw 12 Set
Transmitter Rackmount Brackets: 2x Sennheiser GAM 3
19″ case: JV Case 8U DJ case
The microphone signal reception wasn’t very good while the antennas were connected directly to the EM100 receivers (from the microphone sets). I took a simple 1U rack cover, drilled 8 10mm holes in them, put BNC connectors in there and mounted the Antennas on them. Result: Much better reception, at the very least double the distance.
After many events where we used an existing GoPro for video capture, we decided that it was time to step up the game and buy a real zoomable video camera. Our choice was the Canon Legria HF G40 which was about 900 € and offeres a good picture quality and a wide zoom range.
We had connected our video inputs via HDMI cables. That went well until we had a connection that required a 20 meter HDMI cable. Very strange flickering in scenes with 100% red was the result. We switched to Connections via SDI, which is better suited for longer connections. We don’t have devices that can connect SDI directly, so we had to buy a bunch of HDMI->SDI converters, but they only cost about 35 € each.
Our choice was basically Open Broadcaster Software (OBS) or Telestream Wirecast. The latter has a steep price tag of 500 € (and that’s not even the PRO version), but we needed a function that only Wirecast could provide (Virtual Camera Output). Plus, I have found Wirecast to be a intuitive and easy to use software with a huge amount of features.
You can define scenes beforehand in which you reference the inputs that you have. For example, for mytaxi I have created the following scenes:
- Stream Intro (“Please stand by, the presentation will start soon”)
- Camera only
- Presentation only
- Zoom.us only (video conference input)
- Presentation with Camera (picture-in-picture)
- Presentation with zoom.us (picture-in-picture)
- Camera / Zoom.us side by side
- Stream Outro (“thanks for watching”)
You can use keyboard shortcuts to switch between the scenes (with cut/smooth transitions).
Here’s a tip for layering your scenes:
- The top layer should be the logo of your company if you need it in your stream. Things that should always be on top.
- Layer 2 will contain graphics, subtitles or auxiliary texts (for example, the name of the active speaker), things that you can fade in and out easily.
- Here are your video inputs. Disable all audio here (see below for the reason)
- This is the layer for additional audio files. Music, sound effects.
- On this layer is your basic audio. Microphone input, inputs from the video sources. The reason for separating them is because you can change the audio level easily and it won’t change volume when you switch video inputs
We currently stream to YouTube as this allows us set the video to private, but still easily share it with the whole company (thanks, G Suite).
Sadly, YouTube does not allow something like a closed, internal channel that only the members of a company may see. A place where every employee can re-watch all the previous videos. Pretty bummed that this is not possible on YouTube at the moment.
Key takeaways from a number of events
- Build a team. You will save yourself from a lot of heart attacks if you have some people you can rely on to do specific tasks. For a streaming event of our size we need 3-5 people to operate:
- A director – this person operates Wirecast and makes sure that there’s always the right picture and sound in the presentation.
- The camera kid, who keeps the cam on the person that is currently talking.
- An audio operator – keeps their eyes (and ears) on the sound level of microphones.
- The liaison officer, who is near the speakers, outfits them with microphones and fixes possible problems on stage.
- The streaming controller – watches and listens to the final livestream and checks it for potential errors.
- Test everything before the event. My personal choice is to set up everything the day before (if possible), so I have the night to fix errors if something comes up. Test everything again 2 hours before the event.
- Don’t trust Wifi. Always use a tethered network connection for the stream. Your audience will bring their devices with them and the access points begin to ache under the load. We had a very bad experience once because of this.
There are still a few things I want to change with that setup. For example, the audio mixing: I’d love to have all the microphone inputs in Wirecast as separate audio channels, so I could record single channels and mix them together later.
To control those audio channels, a multi-channel audio interface and a control panel (preferably with motorized faders and per-channel VU meters) will be necessary.
As we moved into a new, larger presentation room, the distance between the microphones and the receivers is getting bigger and we already had small hickups (half-second audio dropouts). We need to find a solution for bringing the microphones and receivers closer again.
Furthermore, I want to have more than one camera. When there are questions from the audience, it should be possible to have the questioner on video.
I think it was definitely the right decision to build that setup inhouse and not resort to a pre-built solution. First, saved more than half of what we would have paid. Second, this setup is more modular and future-proof than the pre-built one. So I’m really happy with it.
Let me know of your experiences in the comments and follow me on twitter here: http://twitter.com/carstenwolfram