Перейти к содержимому

MP4 · MOV · Без перекодирования · Без ограничения размера

Удаление метаданных из видео

Бесплатный инструмент удаления метаданных из видео MP4 и MOV. Съёмка с телефона несёт GPS-координаты и модель вашего устройства ровно так же, как фотографии, — уберите их, не перекодировав ни одного кадра.

Что телефон записывает в ваше видео

Ролик, снятый на телефон, обычно несёт атом местоположения QuickTime с вашими координатами в формате ISO 6709, метки создания и изменения в заголовках фильма и дорожек, марку и модель устройства и название кодировщика. Приложения для монтажа затем добавляют собственные поля названия, комментария и исполнителя.

Ничего из этого не видно при воспроизведении, и всё это уходит вместе с файлом, когда вы его отправляете.

Почему мы не перекодируем

Очевидный способ убрать метаданные из видео — прогнать его через транскодер. Именно так поступают инструменты на базе ffmpeg.wasm, и это стоит трёх вещей: это медленно, это скачивает десятки мегабайт WebAssembly и это пересжимает ваше видео, так что результат измеримо хуже исходника.

Контейнер позволяет пойти лучшим путём. В MP4 и MOV таблица stco внутри moov хранит абсолютные байтовые смещения, указывающие в бокс mdat, где живут кадры. Удаление бокса метаданных сдвинуло бы каждое из этих смещений и сломало бы файл. Но формат определяет бокс free — заполнитель, который любой демультиплексор пропускает. Поэтому мы переписываем тип каждого бокса метаданных на free, обнуляем его содержимое и оставляем размер нетронутым. Ничего не сдвигается. Ничего не декодируется.

Результат — файл той же длины, что и оригинал, с идентичными кадрами и без метаданных.

Потоковое чтение вместо загрузки в память

У браузеров легко заканчивается память, если попросить их удержать файл на 2 ГБ. Мы никогда так не делаем. Боксы верхнего уровня обходятся чтением 16-байтовых заголовков через File.slice(), целиком читается только бокс moov, а результат собирается как список ленивых ссылок на диапазоны исходного файла. Пиковый расход памяти остаётся в пределах нескольких мегабайт, какой бы длины ни было ваше видео.

Вопросы

Частые вопросы

Перекодируется ли видео при очистке?
Нет, и это важная часть. Перекодирование видео идёт медленно и заметно его ухудшает. Мы никогда не трогаем видеопоток: атомы метаданных заменяются стандартным заполнителем `free` ровно такого же размера, а метки времени обнуляются на месте. Каждое смещение чанка по-прежнему разрешается корректно, так что ни один кадр не пересжимается.
Насколько большое видео можно очистить?
Очень большое. Файл никогда не загружается в память. Мы читаем только бокс `moov` — обычно несколько сотен килобайт даже в многогигабайтном ролике, — правим его и пересобираем результат из ленивых ссылок на исходный файл.
Какие метаданные на самом деле несут видео?
Больше, чем принято думать. Телефоны записывают GPS-координаты в атом местоположения QuickTime, а также метки создания и изменения, марку и модель устройства и использованный кодировщик. Программы для монтажа добавляют названия, комментарии и поля исполнителя.
Какие форматы видео поддерживаются?
MP4 и MOV, которые вместе покрывают практически всё, что снимает телефон или камера. Оба используют один и тот же контейнер ISO Base Media File Format, который и понимает движок. MKV, AVI и WebM пока не поддерживаются.