Remove AI Watermark From Video: Sora, Veo, Runway, Kling, Without Re-Encoding
Updated September 2026
An AI video file has the same two layers as an AI image. The container carries a signed manifest and tool metadata, and that comes off without touching a single frame. Some generators also embed a watermark in the frames, and that stays. Here is which generators do what, and how the container layer comes off free.
Quick answer
What to expect by generator:
- 1Sora, Runway, Adobe Firefly Video: C2PA and XMP in the MP4 container. Removable, no re-encode.
- 2Veo: C2PA in the container plus SynthID in the frames. Container removable, frames not.
- 3Kling, Pika, Hailuo, Luma and most open pipelines: FFmpeg encoder tags and sometimes XMP. Removable.
- 4Anything re-exported through CapCut, Premiere or a phone: the generator's metadata is usually already gone and the editor's is there instead.
Where the marks live in an MP4
| Box | What it holds | Written by | StripShot |
|---|---|---|---|
| uuid (C2PA) or c2pa | Signed Content Credentials manifest | Sora, Veo, Runway Gen-3, Firefly Video, Seedance | Removed |
| XMP_ | Creator tool, history, DigitalSourceType | Adobe tools, some generators | Removed |
| udta and meta inside moov | Software name, encoder, comments, device fields, GPS | Everything, including FFmpeg-based pipelines | Removed |
| mvhd timestamps | Creation and modification time | The muxer | Zeroed |
| mdat | The frames | The encoder | Kept byte for byte |
Removing boxes from the moov atom shifts the byte positions of the frame data, so the chunk offset tables inside every track are rewritten to match. That is the whole trick that makes a lossless container strip possible, and the reason a tool that skips it produces a file that will not play.
The frame layer
Google's Veo embeds SynthID in the video frames, and Meta has published Video Seal, an open watermark for the same purpose. Both survive re-encoding, trimming and platform transcodes because they are spread through the content rather than attached to it. No container edit changes them, no re-encode removes them, and no tool outside the vendor can verify a removal. StripShot leaves the frames alone and says so.
Why not just re-encode?
Re-encoding drops container metadata as a side effect, but it costs a generation of compression, takes minutes on a long clip, and does nothing to a frame watermark. A container strip does the same metadata removal in seconds with zero quality change. The FFmpeg and HandBrake comparison goes through it.
What a clean video scan looks like
- Before. A C2PA manifest, an XMP box, a software name, an encoder string and a creation timestamp, with the generator named where it can be identified.
- After. The re-scan lists nothing but the stream itself. Duration, resolution and codec are unchanged because the frames are unchanged.
- Still there, if it ever was. A frame watermark from Veo or Video Seal. The page says so rather than letting you find out later.
Video container cleaner
Drop an MP4 or MOV to strip its metadata and C2PA
Runs in your browser. Nothing is uploaded.
Drop a file here, or click to choose
MP4, MOV up to 500 MB
Options
Need unlimited strips?
Scans are free. Pro is unlimited.
Images, video, audio, documents, PDF and text in one tool. Pro adds unlimited strips, whole-folder batches and zip download with a JSON report.
Frequently asked questions
How do I remove the AI watermark from a Sora or Runway video?
Drop the MP4 or MOV into StripShot. The C2PA uuid box, XMP box and udta metadata are removed from the container and the chunk offsets are rewritten so the file plays. The video frames are not touched, so there is no re-encode and no quality loss.
Can I remove SynthID from a Veo video?
No. SynthID for video is embedded in the frames and survives transcoding and trimming. StripShot removes the container metadata that platforms read for labels and states that the frame watermark remains.
Does re-encoding with FFmpeg or HandBrake remove the watermark?
It removes container metadata, sometimes, and always costs a generation of quality. It does not remove a frame-level watermark. StripShot removes the metadata without re-encoding, which is faster and lossless.
Does TikTok or Instagram read video C2PA?
TikTok reads Content Credentials to apply its AI-generated label. Meta applies AI labels to video based on metadata and its own detection. Removing the container manifest removes the metadata trigger.
Is the video uploaded?
No. The container is parsed and rewritten in your browser, up to 500 MB per file.