How I set up a semi professional video streaming system for mytaxi

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.

the control console of our streaming setup


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.

Diagram of streaming setup version 2 (click to enlarge)



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

I also added a 1U cover and a 1U configurable patch panel with 12 slots and the following configuration:

Streaming controller with 12 port patch bay in a 6U flightcase

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.

Sound case with Behringer 12 channel mixer and antennas for the microphones at the top

Sennheiser EM10 receivers and a 2U drawer for the microphones

Two lavalier microphones plus two hand mikes are almost enough for our talks


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.

The Canon Legria HF G40 camera for about 900 € is a good semiprofessional camera with 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.

HDMI-SDI-Converters allow longer cable distances


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
  • only (video conference input)
  • Presentation with Camera (picture-in-picture)
  • Presentation with (picture-in-picture)
  • Camera / side by side
  • Stream Outro (“thanks for watching”)
  • etc.

You can use keyboard shortcuts to switch between the scenes (with cut/smooth transitions).

Here’s a tip for layering your scenes:

  1. The top layer should be the logo of your company if you need it in your stream. Things that should always be on top.
  2. 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.
  3. Here are your video inputs. Disable all audio here (see below for the reason)
  4. This is the layer for additional audio files. Music, sound effects.
  5. 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

A screenshot of wirecast on our ultrawide monitor. on the left the preview and live area, the scenes in the bottom and on the right the audio mixer (click to enlarge)

Streaming Output

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.

So, for the future we have to look into other streaming server solutions. For example, there’s Wowza or the open source Voctomix from the CCC streaming team (C3VOC)

Key takeaways from a number of events

  1. 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:
    1. A director – this person operates Wirecast and makes sure that there’s always the right picture and sound in the presentation.
    2. The camera kid, who keeps the cam on the person that is currently talking.
    3. An audio operator – keeps their eyes (and ears) on the sound level of microphones.
    4. The liaison officer, who is near the speakers, outfits them with microphones and fixes possible problems on stage.
    5. The streaming controller – watches and listens to the final livestream and checks it for potential errors.
  2. 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.
  3. 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:


Which type of sysadmin are you?

If you’re a sysadmin, chances are that you have admin rights for most systems, your firewalls, the mail and messaging services, even the computers of your users. How do you deal with such responsibility? And how do your users cope with the fact that you are basically able to observe everything they do?

Some admins tend to believe that they’re godlike and their users must fear them. Most of the times those admins don’t talk much, they go the users desks, fix the problem and then crawl back to their caves, where they personally inspect every IP packet in their network for illicit material.

I don’t think that fear is a good motivator for most productive work environments. I also believe that educating a user to fix problems themselves is more rewarding in the long run. Your colleagues shouldn’t be afraid of you, they should be able to trust you with their data. After all, in almost every company in the tech business the internet connection is also used for personal, noncorporate matters.

With great power comes great responsibility, that much is known. As an admin, you need to be a person with solid ethics. You cannot be the type of guy that snoops around in other people’s private stuff.

My team colleagues at mytaxi have similar views, and so we drafted a Code of Conduct that will henceforth be our moral guideline. We signed it and nailed it onto our office door for everyone to see. First responses from our coworkers have been overwhelmingly positive.

What do you think? Leave a comment or write me on twitter: @carstenwolfram

Oh, and if you want to work with me, take a look at the open positions at mytaxi, maybe there’s something in it for you.

The sysadmin code of conduct

Inventory Management with Jira

This article is about using Jira as an inventory and asset management system and how we use it at mytaxi.

The situation before

When I came to mytaxi in 2013, there was no inventory system. The need for it arose in 2014, when the company grew and grew. First, we installed GLPI, an open source system which wasn’t quite sure what it wanted to be. GLPI was an issue tracker, a license database and an inventory system. It was okay, but soon we discovered the limitations of it. There was no real API for automation, inserting new information was hard and above all, it wasn’t really nice to look at. Continue Reading

The best wallet

I was always on the search for the perfect wallet. The most common problem of all wallets is that they don’t have enough slots for all the cards that are so widespread nowadays.

So I found myself in many a situation where I had to put two or more cards in one slot, with the inevitable outcome that the seam went loose and the wallet was broken.

Now, at this year’s Amazon Sale, I found myself a wallet that could be my solution: A wallet with enough space for SIXTEEN cards. They even fan out easily. Plus, this wallet is super compact and made of beautiful leather. Feels really high-quality.

Woodland Wallet

space for 16 cards (and for coins too)

Woodland Wallet 2

…and it doesn’t look shabby.

I don’t know if it’s BIFL (buy it for life) yet – I think it may be possible that the seam of the cardholders will come loose at some time – but I’ll test it out. I have it for about three weeks now and I’m happy.

Here’s the link to Woodland Leather Wallet

Worst practices for your helpdesk

I was inspired by a great speech by Charles Edge I saw at MacSysAdmin 2014 where he talked about the opposite of best practices he discovered throughout his career.

So I decided to blatantly steal this idea. Here are some worst practices if you take care of a helpdesk in your company. (Also works if you do tech support for friends and family)

Always be grumpy

Man, working at the helpdesk sucks. Always those stupid idiots with their stupid problems. Most of them can’t even use a computer properly. Here’s a tip for you: if you look really pissed, they will leave you alone. Continue Reading