2024.05.2

Lejátszható videók kiválogatása helyreállítás után

Hozzám került pár merevlemez, amelyek egy NAS-ból lettek kiszedve, miután az adatok elvesztek róluk (az egyik le volt formázva, a másik csak szimplán meghibásodott, s az érintkezőinek javítása után ismét életre kelt). Szerencsére már korábban megvettem az Active@ File Recovery programot, így a BtrFS fájlrendszeren tárolt adatokat is sikerült visszaállítani. Mivel csak mp4 fájlokat kellett keresni, így elég volt csak ezeket keresni. Természetesen a többezer visszaállított fájl közül nem volt szükség mindre (a pár másodperces biztonsági kamerás felvételek nem kellettek már), s ami vissza is jött, se mind hibátlan, vagy rendben lejátszható.

Mivel a nem szükséges fájlok kiválogatása után is ezres nagyságrendben maradt meg videóanyag, s ezek is több száz órányi felvételt jelentenek, ezért az nem reális elképzelés, hogy manuálisan, kézzel nézzük át mindegyiket, hogy vajon minden része lejátszható-e. Szerencsére az ffmpeg program karakteresen dolgozik és felparaméterezhető úgy, hogy hiba esetén álljon le, így anélkül lehet ellenőrizni a fájlokat, hogy mindet megnyitnám és belenéznék. Mivel ilyenkor a program visszatérési értéke is nulla helyett más lesz, így akár szkriptelhető is, s meg is érkeztünk az alábbi kódszösszenethez, amit PowerShellben készítettem, s elvégzi nekem az első válogatást:

foreach($file in Get-ChildItem){
	ffmpeg -v quiet -xerror -f null - -i $file.Name
	if($LASTEXITCODE -eq 0){
	Move-Item $file '.\nemhibas\'
	}
}

Ahhoz, hogy ez működjön, telepíteni kell az ffmpeg programot, és létre kell hozni egy "nemhibas" nevű mappát ugyan ott, ahol a válogatni való fájlok vannak. A kód kihasználja az ffmpeg nem nulla visszatérési értékét hibás fájl esetén. A beállított paramétereknek köszönhetően a kimeneten nem jelenik meg semmi, viszont nem lesz gyors, mert a nem hibás fájlokat végig feldolgozza, csak a hibás videók esetében áll meg viszonylag hamar.

A hibás videófájlok kijavítása már egy komolyabb történet lesz, belelestem néhányba hexa editorral és úgy tűnik azokban is ott van az adat, csak "pár" hibás részről lehet szó, így nem biztos, hogy a levágom ameddig jó megoldás lesz a szerencsés, hanem tényleg javítani kell. Minden esetre a szkript bevált, szépen kiválogatta a végig lejátszható videókat.

Kategória: Segédletek