Guide

Localization

Dubbed audio, soft subtitles and territory versions of a finished programme. This page describes the territory-matrix delivery model, the per-territory evidence pass, and the current limitations.

Localization on this page refers to the deliverable, not the web console. Translating TRNSCODE's own interface is a separate concern and is not covered here.

Encode cost model#

A dub track and a subtitle sidecar do not require their own video encode. One chunked picture encode, followed by a fast stream-copy mux per territory, adds language tracks without re-encoding a video frame.

Twelve territories therefore cost a few fleet hours rather than twelve full encodes. Text burned into the picture removes this advantage, because every territory then requires its own encode. That cost is the primary reason burned-in subtitles are not built.

Territory matrix#

Localization is submitted as a first-class delivery mode. Selecting Localization delivery in the submit flow replaces the single-output submission with a per-territory matrix: one card per market or locale, each declaring the dub audio and subtitle tracks that territory receives.

Each territory card becomes one deliverable file. Before submission the flow states exactly how many files the job will produce, so the count can be checked against the delivery order before any encoding starts.

The matrix can be filled two ways: territory by territory in the console, or by importing a CSV manifest — the form a localization order usually arrives in from a spreadsheet. Import populates the matrix; every field remains editable afterwards, so the result is reviewed and corrected in the console before submit. The procedure is at How-to: Add localization tracks.

Note

Automated arrivals follow the same model. A watch-folder rule can require localization sidecars and hold a title until they arrive — see Watch folders.

Declare tracks#

Tracks are declared per territory, on that territory's matrix card. Any number of dub tracks and subtitle sidecars can be declared; each track carries the following fields:

FieldDetail
LanguageA BCP-47 tag, projected to the code the container actually stores. The dropdown offers common languages plus the no-linguistic-content sentinel for a music-and-effects stem; the API accepts the full set, so an unlisted territory still validates.
RoleFor audio: dub, original, M&E stem, commentary, audio description. For subtitles: full, forced, SDH.
Conform and syncThe speed relationship between track and picture — none, pulldown, PAL speed change, film conversion, or a plain resample.
FlagsOrder, default and forced flags, target sample rate, and stream index for a multi-stream asset.
Important

The engine measures the actual speed relationship and refuses a mismatched conform declaration rather than applying the declared drift. By design, an incorrect declaration fails during processing rather than surfacing in a broadcast deliverable.

A track can be attached in three ways: uploaded inline, selected from previously uploaded assets, or referenced by a typed path. Path references are confined to the same browse roots as any other source.

Uploaded asset storage#

Uploaded assets are stored in a dedicated staging area rather than a browsable path, and are reachable only by an opaque id. The Localization Assets panel at Settings → General lists them with copy and delete actions.

Deletion is refused while any non-terminal job still references the upload, so an asset cannot be removed from under a running encode. A background process removes assets past their retention window that no active job references.

Per-territory evidence#

The evidence pass verifies more than mux success. After a localized job finishes, each territory's file is probed and checked against the declared tracks; the results render on the job detail page's Localization tab, one card per territory.

CheckCatches
Track inventoryEvery declared track landed, in order.
Language tagsUntagged streams, the single most common reason a broadcast QC department rejects a deliverable.
DispositionsExactly one audio track flagged default, and forced subtitles flagged forced.
Subtitle codecThe subtitle survived its container. A styled sidecar loses styling in a container that cannot carry it; the check reports this rather than hiding it.
Duration and start offsetEvery audio track sits within a frame of the picture, at the head and across the run. Computed in exact fractional arithmetic against the real frame rate, not rounded.
Subtitle spanThe last cue does not run past the picture, which detects a sidecar cut for a different version.
Conform residualA declared speed conform measured against the tolerance the engine accepted it under.
LoudnessPer audio track, when the job runs against a QC profile.

Quarantine and override#

A failing check quarantines that one territory file. It never fails the whole job and never affects sibling territories; a failed mux for one territory does not block the remaining deliverables.

An operator can accept a quarantined deliverable from the Localization tab by entering a reason. Acceptance changes its state to overridden. An overridden deliverable counts as passed for the run but is never reported as clean.

Note

The QC log always records whether a deliverable passed its checks or an operator signed off on an exception. The two states are kept distinct so an override remains visible in later audits.

Limitations and roadmap#

Built and supported: the Localization delivery mode with its per-territory matrix and CSV import, declaring dub tracks and subtitle sidecars, muxing them onto one picture encode by stream copy, and the full evidence pass above. These capabilities make ordinary multi-territory delivery safe to run unattended.

Warning

Any localization operation that changes the duration of the deliverable — localized opening or closing credits, a textless tail, dubbing cards — currently fails output verification by construction. Verification checks duration against the source to approximately one frame, and no accommodation exists yet for content intended to run longer or shorter than its source picture.

Do not plan for these operations to complete through TRNSCODE today.

Not built — burned-in subtitles.Implementing burn-in correctly on a distributed chunked encode is a substantially larger project than it appears: a naive approach burns each chunk's cues at the wrong timestamp, because chunk seeking happens before the encode's internal clock starts. The safer burn-once-at-assembly approach is also significant, uncosted work. The feature is deferred until a customer requires it. Burn-in also costs an additional encode generation that soft subtitles avoid.

Also out of scope: audio description is a selectable role and muxes and tags correctly, but its delivery practice is not specially handled; treat it as an additional audio track, not a compliant AD workflow. Sign-language insets, airline versions and promos as a distinct deliverable are unscoped, and the long tail of subtitle interchange formats is a deliberate buy-not-build decision.