niedziela, 16 sierpnia 2015

PowerShell: Zmiana nazw sekwencji plików

Dostałem niedawno nową 'zabawkę' i aktualnie ją testuję. Jedno z fajniejszych zastosowań dla kamerek jest wykonanie sekwencji obrazów i połączenie ich w materiał wideo. Niestety SjCam 4000 nie robi tego automatycznie i trzeba samodzielnie połączyć sekwencję zdjęć. Spoko to nie problem jednak nazwy plików nie bardzo trzymają się jakiegoś wzorca. Tu z pomocą przyszedł PowerShell.


Od razu może wyjaśnię czemu pliki muszą trzymać się sensownego wzorca. Choć w sieci można znaleźć dziesiątki prostych aplikacji do tworzenia TimeLapse, to jednak wszystkie (te które znalazłem) korzystają z zarejestrowanych w systemie enkoderów. Jakoś żadna nie widziała sposobu na enkodowanie przy pomocy x264. Dlatego też użyłem FFMpeg, którego w systemie mam od dawna, i którego obsługę pobieżnie już znam. FFMpeg jednak ma problem z sekwencją plików, która nie trzyma się jednego wzorca.

Aby zmienić nazwy wszystkich plików w folderze zachowując rozszerzenie i porządek utworzenia plików wystarczy skorzystać z tego prostego skryptu:

$i=0; get-childitem $dirname | sort -property LastWriteTime | foreach-object {
    rename-item "$_" $("{0}_{1:D5}{2}" -f "image", ++$i, $_.Extension)
}


Skrypt należy uruchomić w folderze docelowym, jego wykonanie zajmie chwilę, a potem można już przejść do zastosowania FFMpeg.

Brak komentarzy:

Prześlij komentarz