CasparCG Basic Questions Before I Get Started

Hello, I am currently using CG-350 software on a Windows machine with a DeckLink 4K Extreme 12G video card. I wish to migrate to Linux. I’m considering using CasparCG but I want to understand a few things first. So, a few questions …

  1. This is, I am assuming, a Character Generator program that can generate Key and Fill for laying text and graphics over a video source. Correct?
  2. This software is available, I understand, for both Windows and Linux. What Linux distros are supported? I am most familiar with CentOS and would like to stay with a Red Hat type platform.
  3. Does the Linux product look/behave similarly to the Windows product? I would like to try it first on Windows before making the migration.
  4. Are both Server and Client software packages needed? This is for a stand-alone application.
    Thanks much!

CasparCG generates fill and key for each output channel. That fill and key can be output as two signals for use in an external mixer/keyer, or be combined with background content using the keyer present in some models of decklink card. CasparCG also supports NDI output of the fill and key.

CasparCG works in layers, combining one or more layers to create the channel output. The sources for each layer can be full frame moving video or stills, video or stills with alpha channel, or character generator style content. The character generation requires user-provided templates that define the layout design. The design is combined with instance data sent by some form of client. Examples of instance data include a name and job title, a list of swimmers in the lanes of a pool, or stock-market prices. CasparCG server uses HTML to define the behaviour of the template. The server also includes a powerful mixer engine that can modify the look, transparency size and position of each layer.

There is no built-in template editor. The end-user decides how to create the templates for their system. Methods include manually created HTML plus Javascript coding, using a visual edit tool plus Javascript add ins, or using an external template generator such as loopic. See for more details of this generator.

Based on the posts in this forum people running CasparCG on a linux box use Ubuntu, but I lack the knowledge to say if CasparCG can be run on Red Hat.

The look and feel of CasparCG on Windows and Linux hosts is identical. CasparCG uses a client server architecture. The client program sends simple text commands to the server to control it’s operation. A very simple command to play a video called is:

PLAY 1-10 WorldNewsTitles

If there is also a video file called this file is used as the alpha channel for the main fill content.

The detail of the command protocol, called AMCP, is available at the CasparCG wiki here.

A deployed CasparCG system requires the server package and one or more client packages. SVT created a visual client that can create, edit and replay sequences of commands. Events in the SVT client can be triggered manually or using OSC (Open Sound Control) messages. The SVT client can also emit OSC messages and HTTP PUT/GET messages to either control other kit directly or via user provided middleware.

Many users have created custom clients for specific operational needs, and some of the clients are available to other users. See the client links on the Wiki.

You can also directly control CasparCG using Stream Deck combined with BitFocus Companion software.

There is an overview of the CasparCG system describing the server and SVT client functions availble here on Github.

Thank you, Andy. That’s what I was looking for. I’ll give it a whirl here soon.

OK. One more question, if I may … Something I’m not clear on is whether or not the client and server software can be run on the same machine. Or do I have to have separate computers to run these two packages for a standalone system.

Yes, you can run both server and client on a single machine.

The dominant computational power is used by the server, the client only uses a low amount of processor time. Several users have reported issues when they use localhost as the network address for the server plus client, so use the explicit instead.

You can run multiple clients connected to the same server. If two clients both have rundown items in the same server channel, the most recent client action (normally) takes precedence. You can lock a selected client onto a channel, the server then rejecting requests from other clients directed at that channel. The lock command uses a user provided password also used in the unlock command. There is a master password defined in the server configuration that can be used to override any locks that are active.

1 Like