The Wall

I was tasked with creating a TV system similar to what we normally use for our sports book locations. A wall that can utilize a cluster of televisions and display many sports events at one time. We have a software solution that costs about $100k that takes all of about 8 TV streams and displays them on a giant TV wall with many different layouts. Wall Control is the name of the software. From a company called DataPath. Their software uses RTSP for the video coming in from cable boxes. The Real-Time Streaming Protocol (RTSP) is a tried-and-true video technology. It’s used to control audio/video transmission between two endpoints and facilitate the transportation of low-latency streaming content across the internet or for my implementation a local network.

The reason I was tasked with this and my company did not outsource was because this was needed for our main office. The budget wasn’t as big as a full retail location so I had to figure this one out on my own.

I started by referencing our first major sports book In Iowa.  Looking at the video wall in Iowa I found that we have about 32 televisions routed to a main server (Datapath). The Datapath takes those output and merges them in to one resolution:


From here I needed to find something that could produce the same result. Make a cluster of televisions into one giant screen. On my various searches online I found that there are specific hardware devices that can do just this. You take your monitors, plug them in to this device and it turns them into one screen. These ranged from incredibly cheap to ridiculously expensive. There was one big hardware limitation; they limit you on the amount of televisions you can add in a cluster. Cheaper units usually are limited to four or six screens. The more screens you want to add the exceedingly expensive they become. So that was out of the question for me. 

I soon came across a software solution. Nvidia, a company that produces graphic cards for our workstations has a feature in its display driver software that allows the user to combine their monitors into one large one. The feature is called “Mosaic” and allows the user to choose the topology and resolution of the cluster. This was completely free and the hardware that was required for this was already available to me due to the fact that we use Nvidia Quadro video cards for our workstations.

Armed with that knowledge and what I could do with Mosaic which (will be discussed further later), I put in an order for our screens. I settled on 55 inch QLed Samsung panels. Their color accuracy and amazing low light representation really sold me on the picture quality I could expect. I had decided on a 2×4 topology two screens high and four screens wide.

Once the televisions were up on the wall I went to work building my server. I procured three Nvidia Quadro p1000 cards that could handle 4x 4k monitors each.I then installed them in a HP Z Workstation computer tower. All the hardware was free and readily available in our office. Then it was installed in our server rack located in a room at the back of our office.


This brought to light a new issue for me. How would I get the televisions connected over to the server across the office? In the original Iowa sports book setup, HDMI cables were dropped down into the server due to the close proximity of the screens to the server. I couldn’t do something like that because my server room is at the back of our offices. After some google searching I came across a technology called HDbaseT. This can take a video signal from one point and transmit it through ethernet. This really helps because the HDMI cables are limited in how long they can be. With HDBaseT I can transmit up to about 330 ft which is more than enough for what I need. The way they work is by having a device on one end that takes the HDMI signal and converts it to ethernet and transmits to another device connected to the TV on the other end using HDMI.


Each of these boxes (HDBaseT) is one of the screens. These connect directly to my Nvidia P1000 cards in my server. So now I had my screens connected to my server.

Now with Nvidia’s Mosaic feature I could tie it all together. Once the televisions were all connected I had to take note of what screen number every panel was. Then I could input my topology into Mosaic.


I settled with a resolution of 1200×720 per screen due to our cable boxes being normal consumer ones that don’t really output a high resolution anyways. Resolutions like 1080p and 4k should work just fine but I wanted the stress on the server to be limited just in case. They all added up to a giant screen coming in at a resolution of 5120×1440. Now was the time to look into a solution for getting our cable boxes streamed to the screens and making a nice layout for them, a.k.a more software.

On my search I came across many solutions for creating screen layouts and streaming content to a TV wall. Most of them were proprietary and didn’t really have the simplicity I was looking for. Then I came across an open source broadcasting software. OBS or Open Broadcaster Software is targeted for users who need to stream content to online platforms like YouTube and Twitch. After digging into the software on websites like Reddit and GitHub I found that it could also be used offline as a local streamer. Not only that, I found that you could specify what resolution you needed and it would create a dashboard for you to add graphics and editable sources (you could move around different inputs). 

After installing it on my server I input the resolution of my TV wall I had created with Mosaic. With my dashboard in OBS created, I started adding my layout. Choosing how many sources I wanted on the screen at one time and organizing my future TV stations.

AV1 through AV5 are the cable boxes I had planned to have connected to the server. With my switchable layouts ready, It was time to integrate some cable boxes to get my sporting events on screen.

Duplicating this part of the Iowa sports book setup was simple. They had used IP encoders to stream the cable boxes over the local network using RTSP. IP Encoders allow you to transform analog video into high quality IP video streams. This helps leverage existing analog systems like cable boxes while converting your video to an IP stream for use on network connected devices. This could be done for relatively cheap and didn’t need a ton of research to do. I bought enough IP encoders to cover my 5 main boxes and a few more I wanted for other projects.


With this done I added my IP streams into OBS and saw the layout come to life. I also added a ninth screen inside the server room for OBS to be displayed away from the main TV wall.


Getting audio out to the office was very simple. We already had an analog overhead audio system installed for announcements and big meetings that incorporated the entire office. So knowing this I took an audio cable from that system located on the same rack as my server and plugged it into an analog audio port on the main machine. Audio volume can fully be adjusted on the main server via OBS. 

The last goal on my list was finding a way to have my users out on the floor be able to change channels and layouts on the wall without touching my precious server. More searches on google lead me to an open source project on GitHub called “OBS Remote”. A protocol created for remotely changing sources and settings in OBS. It uses a web-socket to create a local webpage that gives users a dashboard with controls for OBS. When compiled it did what it was advertised to do but not as simply as I had hoped. I then found another program that was freely available on the IOS app store called OBS Blade. It uses the same OBS web socket but comes in the form of an easy to use iPad/iPhone app. This was perfect. I wrote up a guide for my users on how to use the app and my system has been in service for about a year now.


The final product was a video wall that can be used to watch sporting events, test our marketing material or even monitor our odds boards.


Below are sources for the terms and items mentioned:

Nvidia P1000
OBS Software
OBS-Remote
OBS_Blade
Samsung Q85 TV
RTSP
IP Video Codec