Plans and executes video dubbing and voice replacement: adapts scripts for lip sync, casts voices, runs recording-to-picture sessions, and mixes the dub master to broadcast loudness specs (EBU R128, ATSC A/85, Netflix). Triggers when the user needs a video dubbed into another language, a voice track replaced, or a dubbed mix checked for delivery.
./install.sh video_localization_dubbingname: "video_localization_dubbing" description: "Plans and executes video dubbing and voice replacement: adapts scripts for lip sync, casts voices, runs recording-to-picture sessions, and mixes the dub master to broadcast loudness specs (EBU R128, ATSC A/85, Netflix). Triggers when the user needs a video dubbed into another language, a voice track replaced, or a dubbed mix checked for delivery."
Turn a finished video into a finished dub: a script that fits the actors' mouths, voice performances recorded to picture, and a mix that passes the destination's loudness spec. The output is a deliverable dubbed master plus a QC report, not a description of dubbing.
1. Confirm the delivery target first. Dubbing specs follow the platform: broadcasters follow EBU R128 (-23 LUFS) in Europe or ATSC A/85 (-24 LKFS) in the US; Netflix streamers mix to a -27 LUFS dialogue-gated target. Ask where the video will play before touching the script. See references/loudness_delivery.md for the full table.
2. Translate, then adapt. A literal translation almost never fits the mouths. After translation, adapt each line for the three synchronies (Chaume's typology, references/script_adaptation.md):
Adaptation tools: word-order changes, substitution with synonyms, reduction/amplification, adding or dropping words. When the original actor is multilingual, cast them if possible; it solves lip sync for free.
3. Build the dubbing script. One row per line: timecode in/out, character, original line, adapted line, and adaptation notes (what was sacrificed and why). Longer material belongs in a trackable sheet, not chat. If the project uses prompting software (VoiceQ, Mosaic, ADR Master 2), export in that tool's format or Netflix's TTAL.
4. Cast voices. Match voice age and range to the on-screen actor, not just the language. Record a short audition per principal against picture, not audio-only. Get approval on casting before full recording; re-recording a full part is the expensive mistake.
5. Record to picture. Sessions run in an ADR-style setup: actor watches picture, hears the guide track, and records after three cue beeps (the classic 3-2-1 cadence). Work in short loops, one cue at a time, keeping a select plus two alternate takes per line. The director cues pace and tone; the recordist logs take numbers per cue code. See references/recording_session.md.
6. Edit, mix, and loudness-check. Edit the selected takes, lay the dubbed dialogue over the fully-filled M&E (music and effects) track, and mix. Then run bin/dub_loudness_check.py against the delivery target; it measures with ffmpeg's loudnorm and gives a pass/fail verdict with the exact fix. Fix failures by adjusting the mix, not by arguing with the meter. Deliver stems (dialogue, music, effects) plus the final master, with files named to the platform's convention.
A finished dub job delivers:
dub_loudness_check.py: measured integrated loudness, true peak, LRA, and pass/fail per spec.~/workspace/skill-production/scratch/video-localization-dubbing-sources.md. If a client names a different target, use theirs but write it down with its source.references/; read only the file the current phase needs.publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.