Introduction
Videolinq supports real-time caption insertion into RTMP streams, including workflows that rely on SEI-based caption metadata. However, many professional broadcast-level encoders, including AWS Elemental products (which are included in the supported encoders for caption insertion workflows) and similar appliances, are not configured by default for RTMP workflows.
Broadcast encoders are designed to operate in environments with:
SDI ingest
Genlock and house reference
Hardware decoders downstream
When these encoders are used to generate RTMP or SRT output streams for cloud captioning, their default behavior can unintentionally disrupt timestamps, GOP insertion, or frame pacing. This can result in captions drifting, appearing early or late, or breaking entirely.
This article explains:
Why custom encoder settings are required
How Elemental encoders differ from software encoders like OBS
How to correctly configure AWS Elemental encoders (onprem) and AWS MediaLive (online) for Videolinq caption workflows
About Elemental
AWS Elemental encoders, both hardware and software-based, are broadcast-grade encoders. Their primary design goals are:
Signal correctness for broadcast distribution
Robustness against SDI timing issues
Compliance with broadcast standards
As a result, Elemental encoders often enable features by default that are helpful in broadcast chains, but problematic for RTMP caption insertion, such as:
Scene-based GOP restructuring
Dynamic buffering and lookahead
Timestamp smoothing or correction
Adaptive quantization and bitrate shaping
SEI and metadata insertion intended for broadcast systems
These behaviors are not errors. They simply reflect that the encoder is operating in a different paradigm than cloud-based RTMP caption workflows. To use Elemental successfully with Videolinq, the encoder must be configured to behave more like a streaming encoder, rather than a broadcast appliance.
Elemental: Hardware Encoder Configuration
When using AWS Elemental hardware encoders or the AWS Elemental Live software encoder to send RTMP streams to Videolinq, custom encoder settings are required.
Required configuration approach
For RTMP + Videolinq caption insertion, the Elemental encoder must behave like a simple, streaming encoder, not a broadcast processor. Customers should ensure the following characteristics:
Timing and GOP
Fixed frame rate (for example, 30/1)
Progressive scan
Fixed GOP size (for example, 60 frames at 30 fps)
Scene change detection disabled
Closed GOP disabled
Dynamic GOP or sub-GOP features disabled
These settings prevent the encoder from inserting unexpected keyframes which can disrupt caption timing.
Rate control and buffering
Constant Bitrate (CBR)
Explicit VBV buffer size set 2x times the target bitrate
Initial buffer fill set to 0%
Minimum buffer occupancy set to 0
Leaving buffer values unset enables auto-optimization, which often introduces latency and timestamp jitter in RTMP outputs.
Codec Profile
H.264 Main Profile
Fixed level (for example, Level 4.1)
CABAC enabled
Adaptive Quantization disabled
Motion vector mode set to Auto or Default
Broadcast optimizations such as adaptive quantization and reference B-frames can introduce frame-size variability that negatively impacts RTMP caption insertion.
Metadata and Signalling
AFD signaling disabled
SEI insertion disabled
No timecode insertion
No color metadata insertion beyond defaults
For RTMP caption workflows, less metadata is better.
In the Elemental dashboard, navigate to Video Settings and copy the values we provide into your configuration. Once you verified that captions are inserted to the stream, you can increase CBR bitrate as needed, up to 8 MBps (the buffer size value must be 2x the value of the bitrate):
Image: Elemental Encoder video settings.
Use AAC as an audio codec, at 48000 Hz (48 Kz):
Image: Elemental Encoder audio settings.
MediaLive Configuration
AWS MediaLive is a managed service built on Elemental technology, but it introduces additional abstraction and hides certain low-level controls.
Read this article explaining how to use AWS MediaLive with Videolinq.
Summary
Broadcast-grade encoders are not misconfigured by default, they are simply optimized for a different use case.
RTMP caption workflows require predictable encoder behavior.
AWS Elemental encoders must be explicitly configured for RTMP + Videolinq.
MediaLive assumes clean inputs and cannot correct upstream timing issues.
Following Videolinq’s recommended encoder profiles ensures stable, accurate caption insertion.
If you are unsure whether your encoder configuration is suitable, contact Videolinq support with a screenshot of your encoder’s Advanced settings, and our team will help validate the setup.

