OBSERVAÇÃO: Já atualizei ffmpeg
(anteriormente eu tinha a versão desatualizada de avconv
dos repositórios do Ubuntu).
Agora, o -map_metadata -1
do @shhck funciona perfeitamente.
Eu recomendo @solução do slhck porque é menos digitação e atualizada. Estou deixando isso aqui para qualquer um usando uma versão desatualizada.
A maneira mais fácil de fazer isso é definir -map_metadata
para usar um dos fluxos de entrada, em vez de usar metadados globais. 99% do tempo 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, já que sua sintaxe sempre está na minha experiência.
avconv -i input.mp4 -map 0 -map_metadata 0:s:0 -c copy output.mp4
Isso levará os metadados do primeiro fluxo de dados (normalmente o fluxo de vídeo) e os usará para substituir os metadados globais do arquivo contêiner. Isso funciona porque na maioria das vezes, os fluxos de dados não possuem metadados significativos gravados para eles; no entanto, às vezes, e você quer se livrar completamente desses metadados. Infelizmente, a única maneira que posso pensar em fazer isso usou um pipe e dois processos avconv.
avconv -i input.mp4 -f wav - | avconv -i - -i input.mp4 -map 1 -map_metadata 0 -c copy output.mp4
Isso aproveita o fato de que os arquivos WAV não podem conter metadados (já que o formato foi criado antes da existência de tags de metadados).
Ambos os métodos apagaram todos os metadados em um arquivo que acabei de testá-los - tudo o que exiftool
relatou 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, então isso deve ser o preferido.