Przejdź do treści

MP4 · MOV · Bez rekodowania · Bez limitu rozmiaru

Usuwacz metadanych wideo

Darmowy usuwacz metadanych wideo dla MP4 i MOV. Nagrania z telefonu niosą współrzędne GPS i model Twojego urządzenia dokładnie tak jak zdjęcia — usuń je bez ponownego kodowania ani jednej klatki.

Co telefon zapisuje w Twoim filmie

Klip nagrany telefonem zwykle zawiera atom lokalizacji QuickTime z Twoimi współrzędnymi w formacie ISO 6709, znaczniki utworzenia i modyfikacji w nagłówkach filmu i ścieżek, markę i model urządzenia oraz nazwę kodera. Aplikacje do montażu dokładają potem własne pola tytułu, komentarza i wykonawcy.

Nic z tego nie jest widoczne podczas odtwarzania, a wszystko podróżuje razem z plikiem, kiedy go wysyłasz.

Dlaczego nie kodujemy ponownie

Oczywisty sposób usunięcia metadanych z wideo to przepuszczenie go przez transkoder. Tak działają narzędzia oparte na ffmpeg.wasm, a kosztuje to trzy rzeczy: jest wolne, pobiera dziesiątki megabajtów WebAssembly i kompresuje film od nowa, więc wynik jest mierzalnie gorszy od materiału wejściowego.

Kontener umożliwia lepsze podejście. W MP4 i MOV tablica stco wewnątrz moov zawiera bezwzględne przesunięcia bajtowe wskazujące na pudełko mdat, w którym mieszkają klatki. Usunięcie pudełka z metadanymi przesunęłoby każde z tych przesunięć i zepsuło plik. Format definiuje jednak pudełko free: wypełnienie, które każdy demultiplekser pomija. Dlatego zmieniamy typ każdego pudełka z metadanymi na free, zerujemy jego zawartość i zostawiamy rozmiar nietknięty. Nic się nie przesuwa. Nic nie jest dekodowane.

Wynikiem jest plik o tej samej długości co oryginał, z identycznymi klatkami i bez metadanych.

Strumieniowanie zamiast wczytywania

Przeglądarkom bez trudu kończy się pamięć, jeśli poprosisz je o utrzymanie pliku o rozmiarze 2 GB. My nigdy tego nie robimy. Pudełka najwyższego poziomu przechodzimy, odczytując 16-bajtowe nagłówki przez File.slice(), tylko pudełko moov jest czytane w całości, a wynik składany jest jako lista leniwych odwołań do zakresów oryginalnego pliku. Szczytowe zużycie pamięci pozostaje na poziomie kilku megabajtów, niezależnie od długości filmu.

Pytania

Najczęstsze pytania

Czy czyszczenie filmu koduje go ponownie?
Nie, i to jest najważniejsze. Ponowne kodowanie filmu jest wolne i widocznie go pogarsza. Nigdy nie ruszamy strumienia wideo: atomy metadanych zastępujemy standardowym wypełnieniem `free` o dokładnie tym samym rozmiarze, a znaczniki czasu zerujemy w miejscu. Każde przesunięcie fragmentu nadal się zgadza, więc żadna klatka nie jest kompresowana ponownie.
Jak duży film mogę wyczyścić?
Bardzo duży. Plik nigdy nie jest wczytywany do pamięci. Odczytujemy tylko pudełko `moov` — zwykle kilkaset kilobajtów nawet w kilkugigabajtowym klipie — poprawiamy je i składamy wynik z leniwych odwołań do oryginalnego pliku.
Jakie metadane naprawdę niosą filmy?
Więcej, niż ludzie się spodziewają. Telefony zapisują współrzędne GPS w atomie lokalizacji QuickTime, a do tego znaczniki utworzenia i modyfikacji, markę i model urządzenia oraz użyty koder. Programy do montażu dokładają tytuły, komentarze i pola wykonawcy.
Jakie formaty wideo są obsługiwane?
MP4 i MOV, które razem pokrywają praktycznie wszystko, co produkuje telefon albo aparat. Oba używają tego samego kontenera ISO Base Media File Format, który silnik rozumie. MKV, AVI i WebM nie są jeszcze obsługiwane.