Graphic playing slightly distorted

Hi,

I have a Decklink Duo 2 card set up with a blackmagic atem with 1 key and fill channel plus 2 normal channels. I am using this to play out speaker bugs on our event. I have a fill and and alpha file separately for the graphics in mxf format. And use a png with the name on the key and fill channel. I put it in a group and it works fine, but there is a small bug i cannot figure out. At the end of the graphic there is a flame pulling out to the right and while it is pulling out at the very edge of the flame the reddish colour becomes black.
I have a different device i can playback 2 files in sync and playing it from there the edge of the flames keeps the normal colour of the graphic so the files are not defective. I tried an MOV format but have the same colour distortion while playing it from the Caspar. I use server 2.3.3 and client 2.2 on a windows 11.
Does anybody have any idea why this colour distortion occurs?

Many Thanks,
Csaba

This sounds like your key and fill outputs aren’t in sync. If they are a frame off, it often looks as a black edge at the lead or tail of something that’s moving.
The best way to solve this is to wire in a ref-signal to the duo2-card.

You might also get lucky and get them in sync by restarting Caspar or tweak the latency options in the config file.

…or it could be a wrong setting in the vision mixer’s DSK. What vision mixer do you have and how is the keying mode setted?

Do you use internal keyer or external seperate device/key-only tag in config? Friend did the seperate device and had same issues because the fill/key dont come out in sync.

Can you show us your problem with a screengrab ?
It can be several things with this info
but imo it sound like premultiplied keying where straight is used or viceversa.

grt
Maurice

I agree with the points raised by the other replies. Just trying to summarise here:

Have you used the Blackmagic Setup utility to create your fill plus key as a logical output? The association pairs two of the SDI outputs for use fill and key outputs, keeping the two in timing step with each other. Set CasparCG channel keyer to external.

If you are using the client to create a group with two videos then instructing the client to play the group there is no inherent mechhanism in generic AMCP commands that guarantees the two files open and play synchronously. Sometimes they will sometimes they won’t. There are methods to do this using the NRK branch with a custom client, as this branch supports “play at time hh:mm:ss:ff”

Are you using CasparCG’s ability to auto replay the key by iust playing the fill file? If the fill file is called graphics01.mxf, name the key as graphics01_a.mxf and play the fill file. The auto file association also operates with stills so you can have mylogo.jpg as the fill and mylogo_a.jpg being the key/alpha.

Thank you for all the replies. Channel 1 is set as key and fill (SDI 1 and SDI 2) in the blakcmagic set up with external keyer.
I use Channel 2 and 3 as individual channels with default keyer option.
I don’t really know about vision mixer’s DSK. Can u pls expain what that is and where and how to set this up. This maybe a problem.
I do group the 3 files (C1 is the title, C2 is fill graphic, C3 is Alpha graphic) and i play the group.
It has not a caspar setting problem not a Blackmagic ATEM keyer problem as when i play the same files from a different device (Grassvalley K2) it plays perfectly with these switcher keyer settings.

I don’t use auto replay. Should i rename the files as andyw said and set auto replay?

Thank you for the answers!

Ah the vision mixer was a misunderstanding for me, you call the switcher like that. I use a Blacmkagic ATEM 2 M/E Production studio 4K. I use a linear upstream key for the keying of the graphic.

I may have misinterpreted your intended output. Am I right to think that you want two logical channels each with fill and key/alpha? Somthing similar to:

SDI 1 = Bug fill content
SDI 2 = Bug key
SDI 3 = Speaker Name fill
SDI 4 = Speaker Name key/alpha

If the above is what you need then it can be implemented as just two CasparCG channels. The Duo 2 card needs to be set as two paired outputs. CasparCG server then has two channels with same settings other than the decklink card id used for output in the channel.

Use the _a file naming convention for the moving video bug files. This ensures they are opened and started at the same instant, and their relative timing is maintained through the Caspar Replay.

For the names there are two methods for output.
Method A) Use the _a naming convention for the PNG files. Again, Caspar will open both files and start the bitstreams for the fill and alpha channels at the same instant.

Method B) Tell the graphics package to output 32-bit PNG (RGBA) and to make the background transparent. When CasparCG plays the PNG it extracts the embedded alpha and sends it to the SDI key output ready for your switcher/mixer to use.

I’ve attached a three stills in the hope they may help you prove part of your workflow. The first pair provide a full frame fill and a central eliptical mask (this mask uses the _a convention). You can easily make these move using the CasparCG mixxer transform tool to check for unwanted trails at the edges.

The third image is a widescreen SD resolution PNG saved with transparent background. Although orignally SD this plays fine in HD resolutions. The the key output should show two sets of white lettering with offsets creating a drop shadow.

Andy

There it is! As Grass Valley AFAIK uses straight alpha key you need to set the keyer in the Caspar config to <straight-alpha>true</straight-alpha> to make it work.

This was the problem. I modified the config file with the straight alpha line and it plays back perfectly.
Thank you very much!

Hi all,

Sorry but looks like i was wrong and the problem is not solved. I modified the config with straight alpha and when i tried after it was fine, but later on it keeps being off 1 frame again than not.
I am not sure did i enter this in the config right.
I entered true under each channel after the video mode part.
Plus i entered a mixer with the same content.
Is this correct? Or i actually need to put a reference in from the switcher to the decklink card?

Can you just post a picture of the problem, plus the contents of your casparcg.config file? It is hard to read your mind, I tried before, but with not much success :slight_smile:

Attached is a picture the best i could capture it. The edge of the flame pulling out to the right is black loosing the golden colour.

here is my config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <log-level>info</log-level>
  <paths>
    <media-path>C:\Users\accou\Desktop\Caspar Server\media</media-path>
    <log-path>log/</log-path>
    <data-path>data/</data-path>
    <font-path>font/</font-path>
    <template-path>template/</template-path>
  </paths>
  <lock-clear-phrase>secret</lock-clear-phrase>
  <mixer>
    <straight-alpha>true</straight-alpha>
  </mixer>
  <channels>
    <channel>
      <video-mode>1080i5994</video-mode>
      <consumers>
        <decklink>
          <device>1</device>
          <key-device>1</key-device>
          <embedded-audio>false</embedded-audio>
          <latency>normal</latency>
          <keyer>external</keyer>
          <key-only>false</key-only>
          <buffer-depth>3</buffer-depth>
        </decklink>
      </consumers>
    </channel>
    <channel>
      <video-mode>1080i5994</video-mode>
	<straight-alpha>true</straight-alpha>
      <consumers>
        <decklink>
          <device>2</device>
          <key-device>2</key-device>
          <embedded-audio>false</embedded-audio>
          <latency>normal</latency>
          <keyer>default</keyer>
          <key-only>external</key-only>
          <buffer-depth>3</buffer-depth>
        </decklink>
      </consumers>
    </channel>
    <channel>
      <video-mode>1080i5994</video-mode>
	<straight-alpha>true</straight-alpha>
      <consumers>
        <decklink>
          <device>4</device>
          <key-device>4</key-device>
          <embedded-audio>true</embedded-audio>
          <latency>normal</latency>
          <keyer>external</keyer>
          <key-only>false</key-only>
          <buffer-depth>3</buffer-depth>
        </decklink>
      </consumers>
    </channel>
  </channels>
  <controllers>
    <tcp>
      <port>5250</port>
      <protocol>AMCP</protocol>
    </tcp>
  </controllers>
  <amcp>
    <media-server>
      <host>localhost</host>
      <port>8000</port>
    </media-server>
  </amcp>
  <flash>
    <buffer-depth>auto</buffer-depth>
    <enabled>false</enabled>
  </flash>
  <html>
    <remote-debugging-port>0</remote-debugging-port>
    <enable-gpu>false</enable-gpu>
  </html>
  <ffmpeg>
    <producer>
      <auto-deinterlace>interlaced</auto-deinterlace>
      <threads>4</threads>
    </producer>
  </ffmpeg>
  <ndi>
    <auto-load>false</auto-load>
  </ndi>
  <osc>
    <default-port>6250</default-port>
    <disable-send-to-amcp-clients>false</disable-send-to-amcp-clients>
    <predefined-clients />
  </osc>
</configuration>

Good. The config does not make much sense for a Decklink Duo 2. You have the first channel set to <keyer>external</keyer> but without the <straight-alpha>true</straight-alpha> that is only enabled on channel 2 using device 2. This has also set to <keyer>external</keyer>. And then you have another channel on device 4 also with both enabled.

If you have set the Decklink card to have BNC 1+2 as paired output, your device 1 supports external keying and straight alpha. But straight alpha is not enabled on this channel.

Dependent on your setup of the other two BNC’s you either get two channels without keying (set <keyer>default</keyer> straight alpha setting is ignored) or you get only one channel of fill & key, that you should setup like you currently have on channel 2.

I still not understand, why you need more than one channel to play out simple graphics like speaker bugs. You can play them on two layers on the same channel (configured as fill & key). Just use the *_a.mxf naming convention mentioned above for the videoclips and play the name tag on a layer above it.

I tried modifying the config and what you said above. It does not seem to work or i am doing something wrong. I made sure i have straight alpha on device 2 and 4 and keyer is external. I tried the way i used it before (play it as a group on 3 channels), but it was doing the same. Than i made sure straight alpha is on channel 1 with keyer external, but could not make this to work. I changed the ATEM’s upstream key inputs to match the caspar channel 1 outputs having the second output as fill.
I renamed the files as above and put them in the group. Played them on the same layer, but the aplha was very much pushing through. I took out the _a.mxf file and just played the fill. Than it looked better but was not as translucent as if i would play them on separate channels and the graphic seemed missing part of it. I did not modify the keyer settings on the ATEM controller thinking it should be the same.

I have a feeling that 2.2 & 2.3 removed support for outputting straight alpha.

Further up you told us, that you use a Grass Valley vision mixer (switcher) now you refer to an ATEM. The ATEM’s never supported straight alpha. So this needs to be removed. You find the settings for ATEM switchers here, scroll down until the paragraph about the ATEM.

Then I strongly suggest using one of the downstream keyers, not the upstream keyer (as described in the settings wiki above) and only use one channel for fill and key. That mess with playing stuff out to 3 channels does not make any sense at all. You need to play the background video (with fill & key) on one layer (say 10) and the text on another (say 20). See example here:

Remarks to this example: The DRONERACE/CREDITS is a graphic with alpha (PNG), the STREAMSTAR/LINEUP are two videoclips, one for fill (LineUp.mov) and one for the key (LineUp_A.mov). Playing them as a group does everything you want to do in one step, without any synchronization issues etc.

Thank you! Under Grassvalley i referred to a Summit 3G+ unit that has something called a K2 player.
The switcher i have is an ATEM 2 M/E Production Studio 4K. Using this Grassvalley unit is complex and Caspar seems easier to use for these graphics playout.
I understand on the ATEM settings, i will try them out and remove the straight alpha lines from the config.
Have one question thou that i don`t understand. You refer to the above example that i get, but you say you have 2 files (lineup.mov and lineup_a.mov), but you only have 1 entry for the graphic on layer 10.
How do you put both files under 1 entry?

As @andyw mentioned earlier in this thread, Caspar can do that automatically. When you have a file with the same name and an “_a” added it will use it as the alpha channel.