Image Sequence Handler
Ein Autohotkey-Script, mit dem man Bildsequenzen als Video betrachten kann.
Voraussetzungen: AviSynth, einen Bildbetrachter, einen Videoplayer
Optional: Autohotkey
Wenn man viel mit rechenintensiven Grafikprogrammen arbeitet, enthält die eigene Festplatte häufig viele Ordner mit Bildsequenzen. Wenn man nur mal eben reinschauen will, so öffnet sich üblicherweise der Bildbetrachter. Nun will man aber evtl. ein bewegtes Bild sehen und müsste die Bildsequenz nur zum einmal reinschnuppern in ein Video umrechnen. AviSynth bietet netterweise die Möglichkeit, Bildsequenzen direkt und ohne Umrechnung mit jedem Mediaplayer anzuzeigen. Nur will man nicht für jede Sequenz eine AVS-Datei bereitlegen.
Eine Lösung: Ein Autohotkeyscript. Das Script muss als ausführbare Datei kompiliert werden. Dann kann man es mit Windows-Bordmitteln mit den Endungen der Bilddateien verknüpfen, die man üblicherweise nutzt, um Bildsequenzen aus seinem Grafikprogramm auszugeben (zumeist TIF und JPG). In die INI-Datei trägt man Pfad und Dateiname zu seinem Bildbetrachter und Mediaplayer ein.
Wenn nun das Script auf eine einsame Datei stößt, so wird ohne Rückfrage der Bildbetrachter aufgerufen. Findet es jedoch eine Sequenz, so wird man vor die Wahl gestellt: Bildbetrachter, Video unverzerrt, Video als PAL 16:9 oder PAL 4:3. Eine temporäre AVS-Datei wird erzeugt und angezeigt.
ifNotExist, %1%
ExitApp
IniRead, Viewer, %A_ScriptDir%\imagesequencehandler.ini, Utils, Viewer
IniRead, Video, %A_ScriptDir%\imagesequencehandler.ini, Utils, Video
ifNotExist, %Viewer%
{
MsgBox, Viewer: %Viewer%`nnicht gefunden.
ExitApp
}
ifNotExist, %Video%
{
MsgBox, Video: %Video%`nnicht gefunden.
ExitApp
}
CountMin = 9999999999
CountMax = 0
Splitpath, 1, , DirPath, Extension, Filename
FilenameBase := RegExReplace(Filename, "\d*$")
if (FilenameBase == Filename)
Gosub, Startviewer
counter = 0
Loop, %DirPath%\%FilenameBase%*.%Extension%
{
Splitpath, A_LoopFileName, , , , Filename
Number := RegExReplace(Filename, ".*?(\d*)$", "$1")
if (Number < CountMin)
CountMin := Number
if (Number > CountMax)
CountMax := Number
}
if (CountMin == CountMax)
Gosub, StartViewer
Gui, Add, Button, W100 H50 gStartViewer Default, &1 Bildbetrachter
Gui, Add, Button, W100 H50 gStartVideoPure, &2 Video
Gui, Add, Button, W100 H50 gStartVideo169, &3 Video PAL 16:9
Gui, Add, Button, W100 H50 gStartVideo43, &4 Video PAL 4:3
Gui, -Caption +Border
Gui, Show,, Choose application
return
StartVideoPure:
ar = -1
Gosub, StartVideo
return
StartVideo169:
ar = 169
Gosub, StartVideo
return
StartVideo43:
ar = 43
Gosub, StartVideo
return
StartVideo:
Gui, Destroy
NumDigits := StrLen(CountMax)
ifExist, %A_ScriptDir%\_show.avs
FileDelete, %A_ScriptDir%\_show.avs
FileAppend, ImageReader("%DirPath%\%FilenameBase%`%0%NumDigits%d.%Extension%"`, %CountMin%`, %CountMax%`, 25), %A_ScriptDir%\_show.avs
if (ar = 43)
FileAppend, BilinearResize(768`, 576), %A_ScriptDir%\_show.avs
if (ar = 169)
FileAppend, BilinearResize(768`, 432), %A_ScriptDir%\_show.avs
Runwait, %Video% %A_ScriptDir%\_show.avs
ifExist, %A_ScriptDir%\_show.avs
FileDelete, %A_ScriptDir%\_show.avs
ExitApp
StartViewer:
Gui, Destroy
Run, %Viewer% %1%
ExitApp
return
GuiClose:
GuiEscape:
ExitApp
return
[Utils] Viewer = "C:\Programme\IrfanView\i_view32.exe" Video = "C:\Programme\K-Lite Codec Pack\Media Player Classic\mplayerc.exe"
Alles zusammen, inkl. kompilierter exe-Datei, kann man sich auch hier herunterladen: imagesequencehandler.zip. Einen Installer oder ähnliches gibt es dafür allerdings nicht.

