Mettre les métadonnées de bande de tous les formats avec FFmpeg

Comment puis-je supprimer toutes les métadonnées de tous les formats via FFmpeg?

Je peux simplement définir des métadonnées spéciales pour chaque format par homme ffmpeg . Toute option ou méthode pour effacer toutes les métadonnées et les supports de bande de toutes les métadonnées disponibles sur 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 

En modifiant légèrement la ligne de commande par @izx , j'ai compris ceci:

 ffmpeg -i in.mov -map_metadata -1 -c:v copy -c:a copy out.mov 

Le résultat est (à nouveau, vérifié avec exiftool ), un enregistrement de métadonnées réduit de 81 à 52 lignes. Notez que vous ne pouvez pas simplement supprimer toutes les métadonnées, certaines choses resteront. Cependant, je n'ai pas eu la date de création pour changer, ce qui est étrange car il semble fonctionner dans la version Ubuntu.

J'ai posté sur la liste de diffusion FFmpeg , en demandant s'il y avait des mises à jour ou des commentaires à ce sujet. Voyons ce qu'ils ont à dire.

REMARQUE: j'ai depuis obtenu un ffmpeg à jour (pas la version désuète d'avconv dans les dépôts Ubuntu), et maintenant shlck's -map_metadata -1 fonctionne parfaitement. Si vous le pouvez, utilisez cette solution à la place (moins de dactylographie). Je pars ici pour tous ceux qui utilisent une version désuète.


La façon la plus simple de le faire est de configurer -map_metadata pour utiliser l'un des flux d'entrée, plutôt que d'utiliser des métadonnées globales. 99% du temps cela devrait fonctionner. REMARQUE: J'utilise avconv, car c'est dans les dépôts Ubuntu 12.04; Cela sera probablement compatible avec ffmpeg, car leur syntaxe est toujours dans mon expérience.

 avconv -i input.mp4 -map 0 -map_metadata 0:s:0 -c copy output.mp4 

Cela prendra les métadonnées du premier flux de données (normalement le flux vidéo) et l'utilisera 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; Cependant, parfois ils le font, et vous voulez vous débarrasser complètement de ces métadonnées. Malheureusement, la seule façon dont je peux penser à faire cela a utilisé une 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 profite du fait que les fichiers WAV ne peuvent pas contenir de métadonnées (puisque le format a été créé avant que les balises de métadonnées n'existaient).

Ces deux méthodes ont effacé toutes les métadonnées sur un fichier que je viens de les tester – tout ce que l' exiftool signalé était l'information du codec, et avprobe ne m'a signalé aucune métadonnée. L'utilisation d'un tuyau pour cela est assez moche, et la première méthode fonctionnera dans 99% des cas, ce qui devrait être préférable.