Cinegy Air – Subtitle Integration
Reading time ~4 minutes
Cinegy Air supports a subtitle integration mechanism, the essence of which is disclosed in this article.
Timecode and Cue List Distribution
A vendor may introduce a mechanism for timecode distribution by means of its integration into the playout engine via the standard secondary events mechanism.
Starting from Cinegy Air 9.5, the Cinegy Playout engine can raise an event with a regular update interval (recommended in a range between 5 and 10 seconds), which vendors may then hook into their system. The nature of this timecode distribution may be either through direct, targeted injection or via some network-based repeater mechanism. Distribution beyond the initial Cinegy-raised event is outside the scope of the Cinegy Air system and is left to the implementer.
Besides distributing timecode, the Cinegy Playout engine can provide details of the current on-air item, as well as some number of currently cued items (along with their subtitle ID). This event, also configurable as an interval-based event, provides subtitle systems with time to prepare for any subsequent playlist-oriented secondary events.
Subtitle Control
Subtitle control should be implemented as a separate plug-in (driven by the secondary events), as it allows to separate the subtitle control code from Cinegy Air and for the third-parties to develop this independently. This plug-in should follow the normal developer guide for implementing Cinegy Air event plug-ins, and should respond to both the engine-level events that run with regularity as well as playlist-level events that are assigned via the secondary-event model in the Cinegy Air control application.
The main concept is that there is a mechanism in the playout engine, which automatically generates two types of secondary events: TC and LOAD.
TC
TC will be sent regularly, updating the current item timecode.
Event format:
Parameter | Value | Comments |
---|---|---|
Device |
SUBTVENDORNAME |
Unique name in event system |
Command |
TC |
Recommended to remain TC |
Op1 |
CustomValue1 |
Configured per engine, used for targeting events to specific servers, channels, devices, etc. |
Op2 |
<XML> |
Auto-generated XML containing information about the timecode (not configurable) |
Op3 |
– |
Not used |
XML format:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<timecode value="00:00:19:13" base="25"/>
where:
-
value – indicates the timecode value;
-
base – indicates the frame rate base (which is required to correctly convert timecode to the real time) and can be either 25 or 30.
LOAD
LOAD will be sent regularly, updating the list of the next X items and indicating their status (OnAir, Cued), so that a subtitle system could load them in advance.
Event format:
Parameter | Value | Comments |
---|---|---|
Device |
SUBTVENDORNAME |
Unique name in event system |
Command |
LOAD |
Recommended to remain LOAD |
Op1 |
CustomValue1 |
Configured per engine, used for targeting events to specific servers, channels, devices, etc. |
Op2 |
<XML> |
XML with the list of the next X items |
Op3 |
– |
Not used |
XML format:
<?xml version="1.0" encoding="utf-8"?>
<titles version="1">
<onair id="9B339135-B6C8-4B4B-B262-AAE1CFA23CAD" name="Jesse J" titleId="FILE1"/>
<cue id="9B83FB3A-BD03-4E4E-BA2E-B2466EFB0A6F" name="Star Trek" titleId="FILE2"/>
<cue id="BAC5521F-F957-4AF7-84B1-AB1836A94DA9" name="Commercial" titleId=""/>
<cue id="A2322BEB-F868-431A-B95C-DA71BAD53C4F" name="Star Trek" titleId="FILE2"/>
<cue id="70F8F88B-ED59-4475-9BFA-051D23D405A6" name="Commercial" titleId=""/>
<cue id="094419C4-0C7E-47D7-A714-C4D5EAB584EB" name="Star Trek" titleId="FILE2"/>
</titles>
where:
-
id – indicates the unique item identifier;
-
name – indicates the item name;
-
titleId – indicates the Subtitle system specific ID (e.g. subtitle file name). If there is no subtitle required for the item, it may be empty.
Note
|
Please note that the XML may be extended on demand later. |
The diagram below shows how the components will communicate:
Components marked as "blue" impact the Cinegy changes; "orange" must be delivered by the integrating subtitle partner.
Cinegy Playout Configuration
In order to configure Subtitle events generation, the Cinegy Playout Configuration tool has the special "Subtitle events" tab:
Here define the following parameters:
-
Op1 – enter a unique channel ID or some other vendor values
-
Every – define the time interval for the event to be sent, in seconds
-
Items – define the "queue" number of the items
-
Delay – define the timecode distribution delay in milliseconds. This parameter is used to compensate constant delays, such as RTP buffering.
Air Control Application Changes
The Cinegy Air control application has an optional column in the playlist grid to define the subtitle ID value of each item. If this flag is not set (no subtitles required), an empty SubtitleID will be passed to the LOAD event.
If further commands are required for subtitle control, the vendor may implement specific custom commands as secondary events, which may then control the subtitle server (e.g. explicit activation, hide options, enabling secondary languages, etc.).