Como posso remover todos os metadados de todos os formatos via FFmpeg?
Posso apenas definir metadados especiais para cada formato por homem ffmpeg . Alguma opção ou método para limpar todos os metadados e remover a mídia de todos os metadados disponíveis no 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
oump4
arquivos, data de criação é um campo inteiro nos cabeçalhos cabeçalho filme e trilha (expresso em segundos desde 1904). Embora você possa configurá-lo como 0 ou algum outro valor fixo, não há como removê-lo e ainda ter um arquivomov
ou válidomp4
.-metadata creation_time=2012-12-17T21:30:00
(UTC).-metadata title="Some Value"
. Ou, para um arquivo, algo parecido com isto para um arquivo MP4:ffmpeg -i "$file" -map_metadata -1 -c copy -metadata title="$file" "${file%%*.mp4}-new.mp4
Minha solução para remover metadados, capítulos, para alterar o tempo e o título da criação. Dessa forma, qualquer metacontente deve ser diferente do arquivo original:
fonte
NOTA: Eu já atualizei
ffmpeg
(anteriormente eu tinha a versão desatualizada dosavconv
repositórios Ubuntu).Agora o @ slhck's
-map_metadata -1
funciona perfeitamente.Eu recomendo a solução do @ slhck porque é menos digitada e atualizada. Estou deixando isso aqui para qualquer pessoa que use uma versão desatualizada.
A maneira mais fácil de fazer isso é configurar
-map_metadata
para usar um dos fluxos de entrada, em vez de usar metadados globais. 99% das vezes isso deve funcionar. NOTA: Estou usando o avconv, porque está nos repositórios do Ubuntu 12.04; isso provavelmente será compatível com o ffmpeg, pois a sintaxe deles sempre está na minha experiência.Isso pegará os metadados do primeiro fluxo de dados (normalmente o fluxo de vídeo) e o utilizará para substituir os metadados globais do arquivo contêiner. Isso funciona porque, na maioria das vezes, os fluxos de dados não têm metadados significativos gravados neles; no entanto, às vezes o fazem, e você deseja se livrar completamente desses metadados. Infelizmente, a única maneira de pensar nisso foi usando um pipe e dois processos avconv.
Isso tira vantagem do fato de que os arquivos WAV não podem conter metadados (desde que o formato foi criado antes da existência das tags de metadados).
Ambos os métodos apagaram todos os metadados de um arquivo em que os testei - tudo o que
exiftool
foi relatado foram as informações do codec e o avprobe não relatou nenhum metadado para mim. Usar um pipe para isso é muito feio, e o primeiro método funcionará em 99% dos casos, portanto, isso deve ser preferido.fonte