LOOPING with constrained MVCP protocol

Hello CasparCG community!
My question: Can I define a parameter somewhere in the config file on the SERVER that sets a default to loop clips played on a channel rather than freeze at the end?

I work at a network TV station that uses automation for its newscasts. The CLIENT (automation software) is very limited and basically only plays and stops a clip based on filename.

Heres the setup:

  • CasparCG SERVER version 2.0.7.34150ef
  • The only protocol the automation software provides that is compatible with CasparCG is MVCP.
  • For this explanation/setup I have a video clip called star.mp4
  • AUTOMATION CLIENT and CASPARCG SERVER are different computers on same network. Both computers are windows 10.

SERVER CONFIG FILE:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <paths>
    <media-path>C:\CASPAR\CASPAR SERVER 2.07\media\</media-path>
    <log-path>C:\CASPAR\CASPAR SERVER 2.07\log\</log-path>
    <data-path>C:\CASPAR\CASPAR SERVER 2.07\data\</data-path>
    <template-path>C:\CASPAR\CASPAR SERVER 2.07\templates\</template-path>
    <thumbnails-path>C:\CASPAR\CASPAR SERVER 2.07\thumbnails\</thumbnails-path>
  </paths>
  <template-hosts>
    <template-host>
        <video-mode>1080i5000</video-mode>
    </template-host>
  </template-hosts>
  <channels>
    <channel>
        <video-mode>PAL</video-mode>
        <consumers>
          <screen>
            <device>1</device>
          </screen>
        </consumers>
    </channel>
  </channels>
  <controllers>
    <tcp>
        <port>5258</port>
        <protocol>MVCP</protocol>
    </tcp>
  </controllers>
</configuration>

When the automation server connects CASPARCG displays:
[mvcp] started connection
[mvcp] Parsing Command UGIN U1
[mvcp] Parsing Command User Robert
[mvcp] Parsing Command UCLS U1
[mvcp] Parsing Command UADD 1 * EXCL Robert%Computername

It then constantly provides a “heartbeat” time of day command every 5 seconds

[mvcp] Parsing Command GTOD

I can specify a clip name in the automation software. For this example I would put STAR. When I execute the command to play the clip the sequence is as follows:
[mvcp] Parsing Command /SEQA STOP 1
[mvcp] Parsing Command UNLD 1
[mvcp] Parsing Command /SEQA LOAD 1 star
[mvcp] Parsing Command /SEQA CUE 1
[mvcp] Parsing Command /SEQA PLAY 1

The clip plays fine, and then freezes and holds on the last frame.

I have no control over this sequence of commands. Other than the file name(in this case ‘star’).
I know in a perfect world, If I were issuing the commands I would add LOOP or define PASSES after the clip name, either in the cue or play stage.
I have tried manually applying CALL 1 LOOP and SSET / SET commands in the terminal to no avail.
Interestingly if I make the clip name ‘loop.mp4’ and have the automation program play ‘loop’ it will do what I want, but in a news setting with the need to play multiple files I cannot name all the clips the same thing.

So: my question is can I define a parameter somewhere in the config file on the server side that sets the default of loop rather than freeze when it gets to the last frame?
If not… is there a middleman program or template that I can setup that will allow the automation program to connect via MVCP, yet pass along more customize able commands? If I were to modify the server build in visual studio to create a customized version, what module should I look in?

Thank you in advance! Any guidance would be greatly appreciated!

Have you tried putting “star LOOP” instead of “star” as a clip name in your automation software playlist?

It is easy to build templates (in Flash) that connects to Caspar and issue any AMVP command that you want. If your playout system supports graphic templates with variables, you can even make it send commands set as vsriables to the template.

Good thinking! This was one of the first things I tried, and the result is strange.
The Automation client issues the command:
/SEQA LOAD 1 star LOOP (Which can also be seen in the caspar server terminal)
Automation client balks and displays an error thinking the clip doesnt exist…yet proceeds to issue the PLAY 1 command.
However on the server side no commands make it through after the initial /SEQA LOAD 1 star LOOP command.
I even tried putting in an add-on secondary command to send another PLAY 1, which does makes it through, but nothing happens. Even though that initial command comes through, it isnt actually activated and nothing truly loads/cues.
Strange/frustrating/makes no sense. If I issue the same commands manually it works fine. Theres just something lost in the translation.

Very Interesting. I will take a look into flash templates and see what sorts of functionality/workarounds I can incorporate.

Caspar is supported by the automation program when incorporated in a graphics capacity with robust configuration options available and I can actually get the looping function to work natively without the need for custom templates if connected in that way.
However we extensively use VIZ graphics engines for our actual graphics handling, and adding in Caspar causes some complicated issues/conflicts which is why I am trying to get it working as a standalone video source.

I will definitely look into this avenue and see if I can get something working. I greatly appreciate the tip/suggestion!