CasparCG for use with Birddog Mini NDI Decoder and TV Wall

Hi there, just downloaded CasparCG in hopes of trying to find better solution to using a 6 screen TV wall for playout of backgrounds and videos. Currently using https://www.ndistuff.uk/zen-ndi-drag-drop-image-viewer/ with 6 instances to play out static backgrounds.

How would I configure CasparCG to output multiple NDI channels and have it so that whatever image or video I put into the rundown will get split evenly to the 6 screens. Sorry I couldn’t find any documentation on how to do this so if there’s something I missed I’d be happy to have a look at it.

Currently I can get one NDI stream out of CasparCG but can’t figure out how to get it to work with 6 screens.

Cheers!

Overwrite the channels block in your casparcg.config file with this example. Change the settings the way you need them.

	<channels>
		<channel>
			<video-mode>1080i5000</video-mode>
			<consumers>
				<ndi>
					<name>Screen1</name>
					<allow-fields>false</allow-fields>
				</ndi>
			</consumers>
		</channel>
		<channel>
			<video-mode>1080i5000</video-mode>
			<consumers>
				<ndi>
					<name>Screen2</name>
					<allow-fields>false</allow-fields>
				</ndi>
			</consumers>
		</channel>
		<channel>
			<video-mode>1080i5000</video-mode>
			<consumers>
				<ndi>
					<name>Screen3</name>
					<allow-fields>false</allow-fields>
				</ndi>
			</consumers>
		</channel>
		<channel>
			<video-mode>1080i5000</video-mode>
			<consumers>
				<ndi>
					<name>Screen4</name>
					<allow-fields>false</allow-fields>
				</ndi>
			</consumers>
		</channel>
		<channel>
			<video-mode>1080i5000</video-mode>
			<consumers>
				<ndi>
					<name>Screen5</name>
					<allow-fields>false</allow-fields>
				</ndi>
			</consumers>
		</channel>
		<channel>
			<video-mode>1080i5000</video-mode>
			<consumers>
				<ndi>
					<name>Screen6</name>
					<allow-fields>false</allow-fields>
				</ndi>
			</consumers>
		</channel>
	</channels>

The post from didikunz neatly describes how to set the config file to create 6 outputs.

CasparCG works internally with RGB+alpha. A full screen alpha is auto-created for full screen sources. The alpha signal is encoded as part of the NDI signal. Tests show the channel output is typically 150 Mbits/s per NDI output for a 1080 line HD source. It is therefore probable that the total bandwidth for 6 outputs may exceed the usable capacity of a single Gbit/s ethernet link, so multiple 1 Gbit/s interface cards or a 10 Gbit/s interface (and switch) will probably be required for “safe” operation.

1 Like

CasparCG auto scales still images to fit the output channel resolution. Each server channel includes a mixer module that can extract a section of the source and zoom and pan to extract a segment of that source. If you created a source still at 5760 x 2160 (3 * 1920 by 2 * 1080), each channel mixer can be set to select the relevant one sixth of the source still whilst maintaining full HD resolution from the source.

The SVT client has tools that set the mixer pan and zoom. Once set, the mixer continues to hold the pan and zoom values until a channel clear instruction is issued. Changing the still feeding the videowall then needs 6 media play commands, one per channel. The standard client has a grouping mechanism to issue the 6 play commands using a single keystroke.

CasparCG server also supports higher resolution virtual channels (e.g. UltraHD 1) plus channel to channel routing. A virtual channel is one which has not been assigned to a consumer such as NDI or Decklink, but it still has replay and processing capabilities. The entry in the config file that creates a virtual channel is short:

   <channel>
      <video-mode>2160p5000</video-mode>
      <consumers></consumers>
   </channel>

(You may even be able to omit the consumers line) The SVT client includes commands to route the virtual channel to a physical channel. By routing the virtual channel to all 6 physical channels all content updates for the video wall are play commands in the virtual channel. One, small, restriction is that the virtual channel must operate at one of the CasparCG supported video modes. So using a Ultra-HD virtual channel for 6 video wall feeds would require the output channels operate at 720p, with up to 9 1280x720 segments available from the Ultra-1 source.

I have some descriptions of grouping commands, routing commands, and virtual channels in my “Introduction to CasparCG Graphics System” document available from Github (see here).

It doesnt support NDI currently (only decklinks for output), but feat: custom channel resolutions & subregion copy by Julusian · Pull Request #1433 · CasparCG/server · GitHub will allow for situations like this to be massively simplified.

3 Likes