MP4 · MOV · Geen hercodering · Geen limiet op de grootte
Videometadata-remover
Een gratis videometadata-remover voor MP4 en MOV. Telefoonbeelden dragen net als foto’s GPS-coördinaten en je apparaatmodel mee — haal het eruit zonder één frame opnieuw te coderen.
Wat een telefoon in je video schrijft
Een clip die met een telefoon is opgenomen bevat doorgaans een QuickTime-locatie-atoom met je coördinaten in ISO 6709-formaat, aanmaak- en wijzigingstijdstempels in de film- en trackheaders, merk en model van het apparaat, en de naam van de encoder. Bewerkingsapps voegen daarna hun eigen titel-, commentaar- en artiestvelden toe.
Niets daarvan is zichtbaar wanneer de video speelt, en alles ervan reist mee met het bestand wanneer je het verstuurt.
Waarom we niet hercoderen
De voor de hand liggende manier om videometadata te verwijderen is het door een transcoder
halen. Dat is wat tools op basis van ffmpeg.wasm doen, en dat kost drie dingen:
het is traag, het downloadt tientallen megabytes aan WebAssembly, en het comprimeert je video
opnieuw waardoor de uitvoer meetbaar slechter is dan de invoer.
De container maakt een betere aanpak mogelijk. In MP4 en MOV bevat de tabel stco
binnen moov absolute byte-offsets die naar de mdat-box wijzen waar de
frames staan. Een metadatabox verwijderen zou al die offsets verschuiven en het bestand kapot
maken. Maar het formaat definieert een free-box: opvulling die elke demuxer
overslaat. Dus herschrijven we het type van elke metadatabox naar free, zetten we
de inhoud op nul en laten we de grootte ongemoeid. Er verschuift niets. Er wordt niets
gedecodeerd.
Het resultaat is een bestand van dezelfde lengte als het origineel, met identieke frames, en zonder metadata.
Streamen, niet laden
Browsers raken maar al te graag door hun geheugen heen als je ze vraagt een bestand van 2 GB
vast te houden. Wij doen dat nooit. De boxen op het hoogste niveau worden doorlopen door
headers van 16 bytes te lezen via File.slice(), alleen de moov-box
wordt volledig gelezen, en de uitvoer wordt samengesteld als een lijst met uitgestelde
verwijzingen naar bereiken van het originele bestand. Het geheugengebruik blijft in de lage
megabytes, ongeacht hoe lang je video is.
Vragen