Как я могу удалить все метаданные из всех форматов через FFmpeg?
Я могу просто установить специальные метаданные для каждого формата на человека ffmpeg . Любой вариант или метод, чтобы очистить все метаданные и раздеть носители из всех метаданных, доступных на ffmpeg?
-metadata key=value
Set a metadata key/value pair.
For example, for setting the title in the output file:
ffmpeg -i in.avi -metadata title="my title" out.flv
mov
илиmp4
файлах дата создания представляет собой целочисленное поле в заголовке фильма и заголовках дорожек (выражается в секундах с 1904 года). Хотя вы можете установить его в 0 или другое фиксированное значение, нет способа удалить его, но у вас все еще есть действительный файлmov
илиmp4
файл.-metadata creation_time=2012-12-17T21:30:00
(UTC).-metadata title="Some Value"
. Или для файла, что-то вроде этого для файла MP4:ffmpeg -i "$file" -map_metadata -1 -c copy -metadata title="$file" "${file%%*.mp4}-new.mp4
Мое решение убрать метаданные, главы, изменить время создания и заголовок. Таким образом, любой метаконтент должен отличаться от исходного файла:
источник
ПРИМЕЧАНИЕ: с тех пор я обновил
ffmpeg
(ранее у меня была устаревшая версияavconv
из репозиториев Ubuntu).Теперь @ slhck
-map_metadata -1
работает отлично.Я рекомендую решение @ slhck, потому что оно менее типично и актуально. Я оставляю это здесь для тех, кто использует устаревшую версию.
Самый простой способ сделать это -
-map_metadata
использовать один из входных потоков вместо использования глобальных метаданных. 99% времени это должно работать. ПРИМЕЧАНИЕ: я использую avconv, потому что это в репозиториях Ubuntu 12.04; это, вероятно, будет совместимо с ffmpeg, так как их синтаксис всегда в моем опыте.Это возьмет метаданные из первого потока данных (обычно видеопоток) и использует их для замены глобальных метаданных файла контейнера. Это работает, потому что большую часть времени потоки данных не имеют значимых метаданных, записанных в них; однако иногда это происходит, и вы хотите полностью избавиться от этих метаданных. К сожалению, единственный способ сделать это - использовать канал и два процесса avconv.
Это позволяет использовать тот факт, что файлы WAV не могут содержать метаданные (поскольку формат был создан до появления тегов метаданных).
Оба эти метода очищали все метаданные в файле, на котором я только что их протестировал - все, что
exiftool
сообщалось, было информацией о кодеке, и avprobe не сообщал мне метаданных. Использование канала для этого довольно уродливо, и первый метод будет работать в 99% случаев, поэтому это должно быть предпочтительным.источник