Multiple Video Insertions on casparcg

Hi all,
I currently have a graphics machine that is used to create 16 video boxes and animate it with low latency (at the moment 2 frames delay),
I’m looking for a replacement for it as it’s end-of-life
The video latency needs to be low as it’s for talking heads

I was wondering if anybody has ever tested such a thing on casparcg - will it be able to support it?
has anybody ever tried 16 NDI streams?
If so - what kind of hardware would I need for that? I guess it would require a lot of bandwidth on the motherboard to support that much data

Any help would be appreciated!


We have been playing 16 signals sometimes. The machines with Xeon W-2195 (18 cores) are able to handle it, mostly.

I said mostly because it all depends on your content. If it’s mainly static you’re good for sure, but…

When it comes to HTML templates, they don’t really use all the cores, so it’s probably better to have fewer cores and higher clock speed. Performance can get worse if the machine has two physical processors (like Z8 workstations).
When it comes to videos, being ffmpeg it ends up using all the cores but 16 signals are a lot so depending on the type of codec, the bitrate, etc. there are bound to be some other bottlenecks around the system (GPU, for example). If you need smooth playing 100% and with audio, it could require quite some research to fine tune the choice of hardware. Caspar is capable for sure, but with some machines you can end up with choppy playout and not smooth templates.

In cases like this it can be a safer route to split the 16ch in two parallel 8ch systems that receive orders from a main client.

For SDI output we used two Decklink Quad 2. I haven’t measured latency or tested 16 ndis, so I cannot say.

I once built a system, that displays stuff on video-walls. It was under Caspar 2.0.7. I had a dual CPU, dual GPU machine with 16 outputs (dual Quad 2). I could play out 6 channels simultaneously and smoothly. Anything more was not possible. I solved it by running multiple instances of CasparCG on the same machine. You need to make sure, that each has it’s own port to listen for commands and of course that each instance controls it’s own set of output channels. That made the distribution of CPU cores etc, work much better, because for the system these were individual processes.

Actually that’s true, I forgot we did that too. Opening several instances of Caspar within the same machine also yielded better results than a single instance.