Aller au contenu

MP4 · MOV · Sans réencodage · Sans limite de taille

Suppresseur de métadonnées vidéo

Un suppresseur de métadonnées vidéo gratuit pour MP4 et MOV. Les séquences filmées au téléphone contiennent des coordonnées GPS et le modèle de votre appareil, exactement comme les photos — retirez-les sans réencoder une seule image.

Ce qu’un téléphone inscrit dans votre vidéo

Un clip enregistré sur un téléphone contient généralement un atome de localisation QuickTime avec vos coordonnées au format ISO 6709, des horodatages de création et de modification dans les en-têtes de film et de piste, la marque et le modèle de l’appareil, et le nom de l’encodeur. Les applications de montage ajoutent ensuite leurs propres champs de titre, de commentaire et d’artiste.

Rien de tout cela n’est visible quand la vidéo est lue, et tout cela voyage avec le fichier quand vous l’envoyez.

Pourquoi nous ne réencodons pas

La façon évidente de retirer les métadonnées d’une vidéo est de la faire passer par un transcodeur. C’est ce que font les outils bâtis sur ffmpeg.wasm, et cela coûte trois choses : c’est lent, cela télécharge des dizaines de mégaoctets de WebAssembly, et cela recompresse votre vidéo, si bien que le résultat est mesurablement moins bon que la source.

Le conteneur rend possible une meilleure approche. En MP4 et MOV, la table stco à l’intérieur de moov contient des décalages d’octets absolus qui pointent vers la boîte mdat où résident les images. Supprimer une boîte de métadonnées décalerait chacun de ces offsets et casserait le fichier. Mais le format définit une boîte free : du remplissage que tout démultiplexeur ignore. Nous réécrivons donc le type de chaque boîte de métadonnées en free, mettons son contenu à zéro et laissons sa taille intacte. Rien ne bouge. Rien n’est décodé.

Le résultat est un fichier de la même longueur que l’original, aux images identiques, et sans métadonnées.

Diffuser en flux, pas charger

Les navigateurs manquent volontiers de mémoire si vous leur demandez de retenir un fichier de 2 Go. Nous ne le faisons jamais. Les boîtes de premier niveau sont parcourues en lisant des en-têtes de 16 octets via File.slice(), seule la boîte moov est lue en entier, et la sortie est assemblée comme une liste de références différées vers des plages du fichier d’origine. Le pic de mémoire reste de quelques mégaoctets, quelle que soit la durée de votre vidéo.

Questions

Questions fréquentes

Nettoyer une vidéo la réencode-t-il ?
Non, et c’est le point important. Réencoder une vidéo est lent et la dégrade visiblement. Nous ne touchons jamais au flux vidéo : les atomes de métadonnées sont remplacés par du remplissage `free` standard exactement de la même taille, et les horodatages sont mis à zéro sur place. Chaque décalage de chunk se résout toujours, donc pas une seule image n’est recompressée.
Quelle taille de vidéo puis-je nettoyer ?
De très grandes. Le fichier n’est jamais chargé en mémoire. Nous ne lisons que la boîte `moov` — généralement quelques centaines de kilo-octets, même dans un clip de plusieurs gigaoctets —, la corrigeons, et réassemblons la sortie à partir de références différées vers le fichier d’origine.
Quelles métadonnées les vidéos contiennent-elles réellement ?
Plus qu’on ne le pense. Les téléphones inscrivent les coordonnées GPS dans un atome de localisation QuickTime, ainsi que des horodatages de création et de modification, la marque et le modèle de l’appareil, et l’encodeur utilisé. Les logiciels de montage ajoutent titres, commentaires et champs d’artiste.
Quels formats vidéo sont pris en charge ?
MP4 et MOV, qui couvrent ensemble pratiquement tout ce que produit un téléphone ou un appareil photo. Les deux utilisent le même conteneur ISO Base Media File Format, celui que le moteur comprend. MKV, AVI et WebM ne sont pas encore pris en charge.