Strip all metadata from a file
Many cameras and editing tools embed a long list of metadata fields: author, location, device serial, encoder settings, edit timestamps. If you are about to publish a file and want to remove that surface, the `map_metadata -1` flag drops every container-level tag in one pass.
The command
ffmpeg -i in.mov -map_metadata -1 -c copy out.movWhat it does
The `-map_metadata -1` option tells FFmpeg to ignore all metadata from the input. With `-c copy` (stream copy) no re-encoding happens, so the command runs at I/O speed. The output file plays in any player that supports the container, with no author, comment, encoder, or GPS fields, just the streams you chose to copy.
Requirements
A container FFmpeg can both read and write. The command uses stream copy, so no encoder is loaded and no special hardware is needed. The only per-stream metadata that survives is the per-stream `TAG` (language, handler name) which is not affected by the container-level map.
Things to avoid
- Stripping only specific fields with `-metadata key=` on the output; the input fields are still in the file, just shadowed. Use `-map_metadata -1` for a true reset.
- Expecting subtitles or chapter markers to survive with no extra flags. They are stream-level data, not container-level metadata, so they pass through untouched.
- Using `-c copy` with a format that cannot be written losslessly. `mov` to `mp4` works; `mov` to `avi` will fail or silently transcode.
- Relying on this for privacy. The stream payload can still contain side data, subtitles, or embedded captions that carry the information. Strip or replace the streams you don't want to expose separately.