NOTE : J'ai depuis mis à jour ffmpeg
(auparavant, j'avais la version obsolète de avconv
depuis les dépôts Ubuntu).
Maintenant @slhck's -map_metadata -1
fonctionne parfaitement.
Je recommande La solution de @slhck parce qu'elle est moins typée et plus moderne. Je laisse ceci ici pour tous ceux qui utilisent une version obsolète.
La façon la plus simple de le faire est de définir -map_metadata
pour utiliser l'un des flux d'entrée, plutôt que d'utiliser les métadonnées globales. Dans 99% des cas, cela devrait fonctionner. NOTE : J'utilise avconv, parce qu'il est dans les dépôts d'Ubuntu 12.04 ; cela va probablement être compatible avec ffmpeg, puisque leur syntaxe l'est toujours d'après mon expérience.
avconv -i input.mp4 -map 0 -map_metadata 0:s:0 -c copy output.mp4
Cette opération prend les métadonnées du premier flux de données (normalement le flux vidéo) et les utilise pour remplacer les métadonnées globales du fichier conteneur. Cela fonctionne parce que la plupart du temps, les flux de données n'ont pas de métadonnées significatives écrites sur eux ; cependant, parfois ils en ont, et vous voulez vous débarrasser complètement de ces métadonnées. Malheureusement, la seule façon à laquelle j'ai pensé pour faire cela utilisait un pipe et deux processus avconv.
avconv -i input.mp4 -f wav - | avconv -i - -i input.mp4 -map 1 -map_metadata 0 -c copy output.mp4
Cela permet de tirer parti du fait que les fichiers WAV ne peuvent pas contenir de métadonnées (puisque le format a été créé avant l'existence des balises de métadonnées).
Ces deux méthodes ont supprimé toutes les métadonnées d'un fichier sur lequel je viens de les tester. exiftool
était l'information sur le codec, et avprobe ne m'a rapporté aucune métadonnée. L'utilisation d'un pipe pour cela est plutôt moche, et la première méthode fonctionnera dans 99% des cas, donc il faut la préférer.