Mon appareil photo prend des fichiers. Mov sous forme de films. Comment puis-je supprimer toutes leurs métadonnées afin de pouvoir les partager en toute confiance sur youtube sans partager accidentellement le lieu/le lieu de tournage, le type d'appareil photo que je possède, etc. , un programme d'interface graphique serait mieux.
Eh bien, j'ai une réponse en ligne de commande:
Note: Ceci ne fonctionne qu'avec le ffmpeg
inclus dans Ubuntu par défaut: il aura une version similaire à 0.8.1-4:0.8.1-0ubuntu1
; cela NE FONCTIONNERA PAS avec les fichiers binaires ffmpeg que vous avez installés à partir d'un PPA tiers ou compilés par vous-même. Votre kilométrage peut varier.
Sudo apt-get install ffmpeg libimage-exiftool-Perl
test.mov
Et courir:
ffmpeg -i test.mov -map_metadata -1 -vcodec copie -acodec copie test-nometadata.mov
Vous pouvez ensuite utiliser exiftool
pour vérifier son fonctionnement; exiftool test.mov
et exiftool test-nometadata.mov
devraient vous montrer la différence.
Voici mes exemples de sorties d'un ancien Nikon .mov avec des tonnes de métadonnées (Pastebin'd):
(notez que l'ordre dans ffmpeg ci-dessus est essentiel - les fichiers d'entrée et de sortie doivent être spécifiés à la toute fin)
NOTE: Avec une version récente de ffmpeg (et probablement avconv, mais je n’ai pas testé cela), vous pouvez simplement utiliser:
ffmpeg -i input.mp4 -map 0 -map_metadata -1 -c copy output.mp4
Utiliser -map_metadata -1
crée une source de métadonnées "factice" vide. Pour la version d'avconv dans le dépôt, ou pour d'autres versions obsolètes, utilisez la méthode décrite ci-dessous.
Utilisation de avconv (ou ffmpeg si c'est votre arme de choix, la syntaxe est la même):
Pour ce faire, le moyen le plus simple consiste à définir -map_metadata
afin qu'il utilise l'un des flux d'entrée plutôt que d'utiliser des métadonnées globales. Cela devrait fonctionner dans 99% des cas.
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 (généralement le flux vidéo) et les utilisera pour remplacer les métadonnées globales du fichier conteneur. Cela fonctionne car la plupart du temps, les flux de données ne contiennent aucune métadonnée significative. Cependant, parfois, ils le font, et vous voulez vous débarrasser complètement de ces métadonnées. Malheureusement, la seule façon pour moi de faire cela consistait en un canal 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 tire parti 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'existent).
Ces deux méthodes ont effacé toutes les métadonnées d'un fichier sur lequel je viens de les tester - tout ce qui a été rapporté par exiftool
était les informations du codec, et avprobe ne m'a signalé aucune métadonnée. Utiliser un tuyau pour cela est assez moche, et la première méthode fonctionnera dans 99% des cas, donc cela devrait être préférable.
BONUS: créer une version masquée de chaque MP4 dans un répertoire , puis remplacer les versions de métadonnées par les versions masquées (avertissement - à peu près irréversible):
for f in *.mp4; do avconv -i "$f" -map 0 -map_metadata 0:s:0 -c copy "out.$f"; mv "out.$f" "$f"; done