# Developer needed for 607/608 closed caption passthrough on CasparCG

**URL:** <https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495>\
**Category:** Paid Work Available\
**Tags:** development\
**Created:** [October 13, 2021, 6:19pm UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495 "2021-10-13T18:19:32Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![toronto\_media\_2021](https://casparcgforum.org/letter_avatar_proxy/v4/letter/t/439d5e/32.png) [@toronto\_media\_2021](https://casparcgforum.org/u/toronto_media_2021)\
**Post date:** [October 13, 2021, 6:19pm UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/1 "2021-10-13T18:19:32Z")

</div>

We are a large media company based in Toronto-Canada. We have a project using CasparCG with Blackmagic Decklink cards. The SDI signal feeding the casparCG server has 607/608 CC embedded but are removed before the signal exits the server. Currently, we have to re-embed the closed caption data downstream of the casparCG server. We are looking for a developer to allow casparCG to pass 607/608 closed captions. Please msg to discuss details and compensation.

---

<div class="post-metadata">

**Author:** ![didikunz](https://casparcgforum.org/user_avatar/casparcgforum.org/didikunz/32/7_2.png) [@didikunz](https://casparcgforum.org/u/didikunz)\
**Post date:** [October 14, 2021, 8:39am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/2 "2021-10-14T08:39:45Z")

</div>

For curiosity I just googled around a bit and found, that the Decklink 4K Extreme should pass trough CC data, when in internal keying mode. I am not able to verify this, as I live in Switzerland and we do not use CC, so no source material around. But probably that would be worth a try.

---

<div class="post-metadata">

**Author:** ![toronto\_media\_2021](https://casparcgforum.org/letter_avatar_proxy/v4/letter/t/439d5e/32.png) [@toronto\_media\_2021](https://casparcgforum.org/u/toronto_media_2021)\
**Post date:** [October 16, 2021, 4:25am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/4 "2021-10-16T04:25:40Z")

</div>

We hired a casparCG developer to custom some code for us and they could not fix the issue. It would be nice if this is resolved with a simple fix, but I’m not confident it will. I’m going to check the config on our test server to be sure. Thank you for the info.

---

<div class="post-metadata">

**Author:** ![asperi](https://casparcgforum.org/letter_avatar_proxy/v4/letter/a/839c29/32.png) [@asperi](https://casparcgforum.org/u/asperi)\
**Post date:** [November 6, 2021, 7:13am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/5 "2021-11-06T07:13:43Z")

</div>

I am testing now with a 4K extreme. No dice. Any suggestions on how to make this work? All our stuff is 1080i or 720p mpeg-2 files - all have 608 and 708 captions. Playing out of Redcast with CasparCG 2.07.

```auto
 <channels>
    <channel>
        <video-mode>720p5994</video-mode>
        <straight-alpha-output>false</straight-alpha-output>
        <consumers>
            <decklink>
                <device>1</device>
                <key-device>1</key-device>
                <embedded-audio>true</embedded-audio>
                <channel-layout>stereo</channel-layout>
                <latency>normal</latency>
                <keyer>external</keyer>
                <key-only>false</key-only>
                <buffer-depth>3</buffer-depth>
                <custom-allocator>true</custom-allocator>
            </decklink>
        </consumers>
    </channel>
  </channels>

```

Any help would be great, also willing to pay a developer…

Thanks!!

---

<div class="post-metadata">

**Author:** ![andyw](https://casparcgforum.org/letter_avatar_proxy/v4/letter/a/f05b48/32.png) [@andyw](https://casparcgforum.org/u/andyw)\
**Post date:** [November 6, 2021, 2:20pm UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/6 "2021-11-06T14:20:44Z")

</div>

I think there is an incomatibility between CasparCG and 708 captions. I’m less sure about the older 608 captions. CasparCG sets the decklink card to operate as 8-bit RGBA, needed for the mixing and layering operations.

The documentation I have for the Decklink SDK, dated February 2017, has several statements about VNC data. For VNC capture the documentation says:

_An application performing VANC data capture should perform the following steps:_  
_ **IDeckLinkInput::EnableVideoInput** _  
_The pixel format that is specified will apply to both active picture and ancillary data with non-4K DeckLink devices._  
_When capturing ancillary data with a 4K DeckLink device, the ancillary data will always be in the 10-bit YUV pixel format._

The following paragraph describes the steps needed for VNC output:

_ **DeckLinkOutput::CreateAncillaryData** _  
_Ensure that the pixel format is appropriate for the type of ancillary data. For example CEA 708 will require a 10-bit pixel format._

A later paragraph talks about the object interface used for Ancillary data:

**IDeckLinkVideoFrameAncillary Interface**  
_The **IDeckLinkVideoFrameAncillary** object interface represents the ancillary data associated with a video frame. CEA-708 closed-captions are encoded with data bits in the 2 least-signficant-bits of each 10 bit pixel component. These bits are not preserved when capturing in an 8 bit pixel format. To capture or output CEA-708 captions, a 10 bit pixel format such as **bmdFormat10BitYUV** must be used._

The SDK documentation has no references to CEA-608 captioning support. I have not worked with this standard, but one of the challenges seems to be that the active picture area in 525-line systems does not “play nicely” with some DCT based data reduction standards used for video data rate reduction. Commonly deployed DCT-based data reduction requires that the vertical size is a multiple of 16 lines. The selection of which 480 lines are extracted from a 525-line scan video source does not seem well defined (I base that statement on a quick web search). HD systems with 1080 active scan lines also do not integer divide by 16, but the relevant standards add 8 blank lines to the bottom of the 1080 to create an integer divide by 16 mappings.

---

<div class="post-metadata">

**Author:** ![zcybercomputing](https://casparcgforum.org/letter_avatar_proxy/v4/letter/z/e9bcb4/32.png) [@zcybercomputing](https://casparcgforum.org/u/zcybercomputing)\
**Post date:** [November 7, 2021, 3:07am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/7 "2021-11-07T03:07:11Z")

</div>

If you want to pass the incoming signal with an overlay from CasparCG, you should be using internal key mode instead of external keying. This will cause the CasparCG signal to be keyed over the incoming SDI signal instead of originating with CasparCG. Internal keying seems like the only way for the card to pass other ancillary data that CasparCG is not designed to produce.

```auto
<keyer>internal</keyer>

```

---

<div class="post-metadata">

**Author:** ![asperi](https://casparcgforum.org/letter_avatar_proxy/v4/letter/a/839c29/32.png) [@asperi](https://casparcgforum.org/u/asperi)\
**Post date:** [November 26, 2021, 2:56am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/8 "2021-11-26T02:56:23Z")

</div>

I have internal… Not sure where in CasparCG I set it to 10 bit output. The file I am trying to play is a .mpg with both 608 and 708 captions. Any advice would be great, thanks!

```auto
Text #1
ID : 4096 (0x1000)-CC1
Menu ID : 1 (0x1)
Format : EIA-608
Muxing mode : A/53 / DTVCC Transport
Muxing mode, more info : Muxed in Video #1
Duration : 28 min 30 s
Bit rate mode : Constant
Stream size : 0.00 Byte (0%)
Language : English
CaptionServiceName : CC1

Text #2
ID : 4096 (0x1000)-1
Menu ID : 1 (0x1)
Format : EIA-708
Muxing mode : A/53 / DTVCC Transport
Muxing mode, more info : Muxed in Video #1
Duration : 28 min 30 s
Bit rate mode : Constant
Stream size : 0.00 Byte (0%)
Language : English

```

---

<div class="post-metadata">

**Author:** ![zcybercomputing](https://casparcgforum.org/letter_avatar_proxy/v4/letter/z/e9bcb4/32.png) [@zcybercomputing](https://casparcgforum.org/u/zcybercomputing)\
**Post date:** [December 1, 2021, 12:47am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/9 "2021-12-01T00:47:04Z")

</div>

Playing out a mpeg file with captions is slightly different than passing captions already embedded in a live input with the casparCG output overlayed. There has been discussion on this for quite a while on github.

> <https://github.com/CasparCG/server/issues/92>
>
> This request comes from a LinkedIn discussion:
> All US broadcast stations, cable systems and satellite to home broadcasters -- even those that...

---

<div class="post-metadata">

**Author:** ![asperi](https://casparcgforum.org/letter_avatar_proxy/v4/letter/a/839c29/32.png) [@asperi](https://casparcgforum.org/u/asperi)\
**Post date:** [December 1, 2021, 2:01am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/10 "2021-12-01T02:01:41Z")

</div>

Thanks I have asked the question on that thread earlier too. No reply. Sucks because this limitation basically axes CasparCG for production in North America since captions are required here on all content being broadcasted with a few exceptions (programs under 5 minutes and religious programming)…

---

<div class="post-metadata">

**Author:** ![zcybercomputing](https://casparcgforum.org/letter_avatar_proxy/v4/letter/z/e9bcb4/32.png) [@zcybercomputing](https://casparcgforum.org/u/zcybercomputing)\
**Post date:** [December 1, 2021, 3:33am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/11 "2021-12-01T03:33:03Z")

</div>

It looks like there is some work on processing ancillary data happening also over on this development fork. Closed caption information is a form of ancillary data these days. Hopefully we can find the right people to make this a reality. I know many of us in the US need CC data to work before we can use CasparCG or Sofie for main playout.

> **[GitHub - in2ip/server: CasparCG Server is a Windows and Linux software used to...](https://github.com/in2ip/server)**
>
> CasparCG Server is a Windows and Linux software used to play out professional graphics, audio and video to multiple outputs. It has been in 24/7 broadcast production since 2006. Ready-to-use downlo...

---

<div class="post-metadata">

**Author:** ![zcybercomputing](https://casparcgforum.org/letter_avatar_proxy/v4/letter/z/e9bcb4/32.png) [@zcybercomputing](https://casparcgforum.org/u/zcybercomputing)\
**Post date:** [May 1, 2025, 7:17am UTC](https://casparcgforum.org/t/developer-needed-for-607-608-closed-caption-passthrough-on-casparcg/4495/12 "2025-05-01T07:17:02Z")

</div>

If anyone here is still interested in native 608 and 708 captions in CasparCG passed from file input to file output or decklink input to decklink output, please contact me or Radiant Light Broadcasting ([rlb.org](http://rlb.org))
