Back to guides
Engineering
July 22, 2026
3 min read

Watermarking a stream without re-encoding everything

7

7cubit Team

More in Engineering

Watermarking a stream without re-encoding everything

Free streams carry an ApexStream watermark. Paid plans do not. The straightforward way to enforce that rule would be to re-encode every destination for every account, but that would spend CPU even when the source could have been copied unchanged.

The relay takes the narrower path. Free is forced through a landscape transcode that can add the watermark while it scales and limits the output. Paid plans can use passthrough when the source already fits a destination's rules. A watermark needs frames; a legal source does not always need a new encode.

Where the watermark is applied

Before FFmpeg starts, the media node groups destinations into passthrough, landscape transcode, and portrait transcode paths. Free's output specification says: maximum height 720, force transcode, and watermark enabled. Hobby removes the watermark and permits passthrough up to 1080p. Creator and above raise the available resolution ceiling without adding the Free mark.

Every Free destination uses the transcode group, even if a platform would accept a direct copy. A copy path cannot draw text on video frames, so leaving Free on passthrough would create a gap in the plan rule.

A text filter is enough

The landscape filter can scale the source, set square pixels, and append a drawtext filter. The mark uses the ApexStream name in semi-transparent white on a dark box near the top right. It is text rendered from a font shipped with the media image, not a separate PNG asset that each node has to load and scale.

The same forced path keeps Free within a 720p output and a 3 Mbps-class ceiling. Watermark, resolution, and bitrate are one output policy, so the relay does not apply the brand mark in one stage and forget the related plan limits in another.

Why the capacity accounting matters

Passthrough and encoding do not cost the same amount of node capacity. ApexStream's resource-point model is intentionally simple:

  • Passthrough: 1 point for demux, copy, remux, and network delivery.
  • Landscape transcode: 10 points, roughly one vCPU of sustained encode work.
  • Portrait transcode: 15 points because crop and scale add work.

Grouping lets one encoded bitstream serve several destinations that share the same output. A Free stream with two destinations can pay for one landscape encode rather than two independent encodes. A paid stream can remain at one point for a destination that accepts a copy and only spend more where platform rules require it.

The scheduler can therefore see the actual cost of a Free session. Free is inexpensive to the customer, but its forced encode still consumes media capacity.

What we do not do

Encoder users do not need to draw the watermark in OBS. The relay is the enforcement point, whether the source arrived over RTMP or another supported ingest path. We also do not apply the mark to a random subset of Free destinations or remove it when a node is busy. That would make the plan rule depend on load.

Paid plans can still require a transcode for another reason, such as a platform's bitrate or resolution rule. Removing the watermark does not promise that every destination will always be passthrough.

The upgrade changes the graph

That does not mean a paid session will never use an encoder. Facebook's cap, a portrait destination, or a resolution mismatch can still require an outbound transcode. The change is that branding no longer forces every legal paid destination through the same filter.

In other words, an upgrade removes the Free branding policy, not the platform's technical rules. The relay still chooses the cheapest valid path for each destination after the plan change.

That keeps the upgrade outcome predictable: no ApexStream mark, while destination-specific bitrate, resolution, and portrait decisions still apply where needed.

On Hobby, the tier specification turns off the forced watermark path. The next session can use a copy when the source and destination are compatible. There is no separate logo-removal service and no browser setting to maintain.

Watermarking without re-encoding everything means encoding where policy requires a frame change and copying where it does not.

That split keeps the Free rule enforceable, leaves paid passthrough inexpensive when it is safe, and gives the capacity planner a truthful picture of the work each show creates.