Hi everyone,
I’m encountering a persistent issue with interlacing artifacts (a “comb” or “tearing” effect) on vertically animating text in my HTML templates when outputting via DeckLink in PAL (interlaced) video mode. I’ve done a fair bit of troubleshooting, and I’m hoping someone in the community might have experienced something similar or can offer some insights.
The Problem:
When I animate simple white text on a black background, moving vertically (up or down) using CSS transform: translateY(), the text appears to “comb” or “tear” on the interlaced PAL output. This is very noticeable.
when animation matches the vertical pixels then it is not showing comb as can see in the video below where duration 4s is the value. but when we change the speed it appears.
What I’ve Observed & Troubleshooting Steps:
Confirmed Interlacing: I’ve verified that the issue is purely related to interlacing. When I switch the CasparCG channel’s video-mode to a progressive format (e.g., 720p5000), the animation is perfectly smooth, with no comb effect.
Browser Preview is Perfect: The HTML template renders flawlessly and smoothly in a standard web browser (like Chrome), indicating that the CSS animation itself is not the source of the problem.
Animation Method: I’m using transform: translateY() with a linear timing function for the animation, which is generally recommended for smooth, GPU-accelerated motion.
“Snap to Even Pixels” Workaround: I’ve implemented a “snap to even pixels” option in my test template (using JavaScript to round positions). When enabled, this does remove the comb effect, but as expected, it introduces a very noticeable jerky, stepped motion, making the animation unusable for broadcast. This confirms that the comb is directly related to sub-pixel rendering being converted to interlaced fields.
Test Template: To isolate the issue, I’ve created a very simple HTML template with:
A black background and white text.
A 1px white border around the text container (which also shows the comb).
Sliders to control animation duration and vertical distance.
A toggle to enable/disable “Snap to Even Pixels” for direct comparison.
A toggle to show/hide the border.
The text is set to a smaller font size (6vw) and the default animation distance is 50px.
My Setup:
CasparCG Server Version: 2.4.1
Operating System: Windows 10 Pro 64-bit
GPU: Quadro k4000
Seeking Your Help:
Has anyone else encountered this specific interlacing issue with HTML text animations, especially vertical ones, on interlaced output? Are there any known best practices.
below is the recording from decklink output.
below is the recording within CasparCG Server.
I’m happy to share the HTML template code if that would be helpful for diagnosis.
Any advice or shared experiences would be greatly appreciated!
Thanks,
