Pociągnąłem za kabel od A7RV, gdy jeszcze nagrywała. 60 minut wróciło z pliku, którego aparat nie pokazuje
Sony Alpha zostawia po przerwanym nagraniu plik .RSV bez indeksu. Aparat go nie widzi, ale obraz i dźwięk są w środku - odbudowuje je untrunc z sąsiednim klipem jako wzorcem.
Koniec godzinnego nagrania, zacząłem się pakować, a A7RV jeszcze zapisywała. Zaczepiłem
o kabel podpięty do kamery, zgasła, i moja wina była cała. Na karcie zamiast klipu leżał M4ROOT/CLIP/A7RV_7430.RSV: 67 041 755 136 bajtów, bez
sidecara XML i bez miniatury. Aparat w podglądzie nie pokazał nic, bo klip nigdy nie trafił
do jego bazy. Po 16 minutach z tego pliku wyszedł MP4 o długości 60 minut 37 sekund,
90 928 klatek, z dźwiękiem tej samej długości. Stracona została jedna klatka: ta, w której
kamera zgasła.
Co zostaje na karcie, gdy Sony nie domknie nagrania
Nowsze Alphy (a7S III, a1, a7 IV, FX3, A7RV) piszą nagranie najpierw do pliku .RSV, a gotowy
.MP4 z indeksem powstaje przy stopie. Bateria, crash albo wyjęta karta zostawiają .RSV. To nie jest MP4 bez nagłówka. To ciąg paczek: 12 pakietów metadanych po 29 696 bajtów,
potem klatki obrazu, potem 92 160 bajtów surowego PCM, czyli 0,48 sekundy dźwięku.
Rozmiar zdradza, ile jest w środku. 67 041 755 136 to dokładnie 999 × 64 MiB, więc aparat
wygląda na to, że dokłada miejsce po 64 MiB. Sąsiedni klip A7RV_7429.MP4 z tymi samymi ustawieniami (XAVC S 4K 25p,
około 151 Mb/s, LPCM 16 bit) ma 2,28 GB na 120 sekund. Ten sam przelicznik daje dla RSV
59 minut. Czas zapisu pliku, 13:00, zgadzał się z końcem 7429 o 11:59.
Funkcja „Recover Image DB” w aparacie odbudowuje bazę plików, nie sam klip. Media Repair ma FX6 i FX9, Alphy nie mają.
Jak wróciło 60 minut
Najpierw kopia. Karta poszła do czytnika, flow zgrało ją do projektu i sprawdziło kopię co do bitu, RSV leżał obok klipów.
Odzysk zrobił untrunc, otwarte narzędzie, w gałęzi anthwlock ma tryb pisany dokładnie pod
plik RSV z Sony. Potrzebuje jednego zdrowego klipu z tej samej kamery i tych samych ustawień,
z niego bierze parametry strumienia i składa nowy indeks. Wzorcem był A7RV_7429.MP4 z tej
samej karty. Narzędzie samo rozpoznało 25 klatek, 12 klatek na GOP i porcję dźwięku 92 160
bajtów, czyli to, co widać w strukturze pliku. Dziesięć minut analizy, sześć minut zapisu.
Wynik zmierzony, nie obejrzany: 3637 sekund obrazu, 3637,4 sekundy dźwięku, pełne dekodowanie całości zgłosiło błąd tylko na ostatniej, urwanej klatce. Synchron sprawdzam w montażu, tego nie zmierzę bez klaśnięcia w kadrze.
Cały odzysk to na Macu jedno zdanie do asystenta: odbuduj klip z tego pliku RSV, wzorcem jest sąsiedni MP4 z tej karty.
Czego flow nauczyło się tego dnia
Do wersji 0.9.22 flow znało tylko .RSV z linii FX. Tę kartę złapało, bo rozszerzenie jest
to samo, ale komunikat odsyłał do Media Repair, którego A7RV nie ma. Tego wieczoru weszły
trzy zmiany. 0.9.23: klip MP4 bez indeksu też dostaje alarm, komunikat rozróżnia FX od Alph.
0.9.24: po weryfikacji kopii apka sama odpala odbudowę w tle, czwarty pierścień na przycisku
pokazuje postęp, na końcu przychodzi powiadomienie i plik czeka w folderze ODZYSK.
0.9.27 wzięła się z trzeciej karty tego dnia. Rig ma dwa sloty, dwie zielone karty „zgrane” zajmowały oba i trzecia nie miała gdzie wejść, a apka milczała. Teraz zgrane karty są znacznikiem, nie blokadą, a księga dnia liczy się z historii: „✓ 3 karty zgrane · A7RV · FX6 · FX3”. Czwarta karta weszła bez klikania w cokolwiek poza plusem.
Granica jest jedna: bez zdrowego klipu z tej samej kamery i tych samych ustawień nie ma wzorca i nie ma odzysku. Dlatego flow bierze wzorzec z folderu tej samej karty, zanim ktokolwiek zdąży ją sformatować. Sama odbudowa działa dziś na moich Makach, narzędzie trzeba jeszcze zapakować do wersji dla wszystkich. Alarm, kopia i księga dnia poszły do wszystkich tego samego wieczoru jako 0.9.27: https://habitat-flow.com/pl