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