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.

imagesequencehandler.ahk

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
 

imagesequencehandler.ini

[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.

Zurück zur Hauptseite

Diese Seite wurde zuletzt aktualisiert am 05.06.2009, 15:18