>

Fandest Du dieses Script nützlich?

Umfrage endete am Sa 05 Sep, 2009 21:50

ja
2
100%
nein
0
Keine Stimmen
brauche sowas nicht
0
Keine Stimmen
 
Insgesamt abgegebene Stimmen: 2

Andreas_Kiel
Beiträge: 2016

Tip: Automatisierte Standbilder mit Windows Scripting Host und VLC-Player!

Beitrag von Andreas_Kiel »

Hi,
wenn man größere Projekte hat, braucht man gelegentlich mal ein Standbild. Eine komplette Liste von Standbildern ist nicht schlecht, wenn man sein Projekt dokumentieren will. Statt nun einen Azubi zu triezen, nimmt man den VLC-Player und ein wenig Script ... fertig!

Voraussetzungen:
- Der VLC-Player ist installiert;
- Sein Hotkey für einen Snapshot steht defaultmäßig auf Shift+S;
- Der Windows-Scripting Host ist aktiviert, bei mir unter XP ist es Version 5.7;
- der nachfolgende Code ist unter einem fast beliebigen Namen mit der Endung ".vbs" abzulegen.

Funktionsweise:
- Das Script nimmt ein kpl. Verzeichnis als Objekt entgegen und übergibt jede Datei als Parameter dem VLC;
- Der VLC startet mit dieser Datei;
- zwei Sekunden später wird ein Snapshot ausgelöst, indem Shift+S als Tastendruck simuliert wird;
- wiederum zwei Sekunden später wird der VLC beendet (ist wichtig, weil er sonst jedesmal eine neue Instanz aufbaut);
- nächste Datei usw. usw.

Code: Alles auswählen

dim dateien 
' nimmt die Anzahl der Dateien im Verzeichnis auf
dim counter
'zählt mit, wichtig vielleicht zum testen - siehe unten
testendung = "m2t"                                      
' das ist die Endung der Dateien, die verarbeitet werden sollen 
' es sollte mit allen Endungen funktionieren, wenn der VLC die verarbeitet
set ws = CreateObject("Wscript.shell")                  
' ein Shell-Objekt, um Programme zu starten
set fso = Createobject("Scripting.filesystemobject")
' ein Filesystem-Objekt 
set verzeichnis = fso.getfolder("\\server02\capturing") 
' Aus diesem Verzeichnis die einzelnen Dateien nehmen, besser sind Laufwerksbuchstaben

' Nächste zwei Zeilen erzeugen eine Protokolldatei
set fs = Createobject("Scripting.filesystemobject")
set logbuch = fs.opentextfile("\\server02\capturing\Standbilder\standbilder.txt", 8, true,0)
' wenn sie existiert, wird angefügt

dateien = verzeichnis.files.count
' anzahl ist evtl. interessant, zählt aber alles 

counter = 1
For Each file In verzeichnis.files
    ' jetzt jede gefundene Datei öffnen
    Set f1 = fso.GetFile(file.path)
    endung = fso.GetExtensionName(f1)
    ' was isses?
    if endung = testendung then
    ' wenn also der gewünschte Typ vorliegt 
        ws.run("I:\Programme\VideoLAN\VLC\vlc.exe " + file.path) 
        ' Starte den VLC mit dieser Datei
        wscript.sleep 2000                                   
        ' Wartet 2 Sekunden, damit das Bild stabil ist
	' manchmal hat man zu Beginn Wackler

        ws.sendkeys ("S")
        ' Sende jetzt den Hotkey für einen Screenshot - default Shift S

        wscript.sleep 2000                                   
        ' Warte erneut 2 Sekunden, damit der VLC nicht während dem Speichern ALT F4 bekommt
        ' das würde sonst nicht ausgeführt

	ws.sendkeys ("%{f4}")                                
        ' ALT F4 senden und VLC damit beenden

        logbuch.writeline now & " - " & file.path & " = Standbild erzeugt"
        ' erfolgreiche Datei in Protokoll

	else
        logbuch.writeline now & " - " & file.path & " = passt net"
        ' Dateityp passt nicht

    end if
    counter = counter + 1
    'if counter > 20 then wscript.quit
    ' Auskommentieren im Echtbetrieb. Zum Spielen und Testen unbedingt unkommentiert verwenden
    ' Script kann Stunden brauchen und ist so gut wie nicht abzubrechen
next
logbuch.close
msgbox "Standbilder wurden erzeugt"
Wichtige Hinweise:
Das Tüdelchen vor der Zeile

Code: Alles auswählen

'if counter > 20 then wscript.quit
sollte für die ersten Spielereien entfernt werden. Das Script läßt sich extrem schwer bis gar nicht unterbrechen, auch nicht mit dem Taskmanager. Warum? Weil es mit ALT-F4 alle paar Sekunden das aktive Programm beendet, und wenn das der Taskmanager ist, bleibt der VLC offen und der TM wird gecancelt.
Im VLC kann man als Dateinamen für die Snapshots statt dem Default vlc-snapshot auch eingeben: snapshot_$N. Wenn nun die Videodatei xyz_2009_10_12_18_12_28.m2t heißt (so z.B. aus HDVSplit erzeugz mit Datum, Zeit), wird der Screenshot xyz_2009_10_12_18_12_28_m2tnnnnn.png heißen. Statt der roten nnnnn wird eine Ziffer vom VLC geschrieben. Wie man die wegkriegt, weiß ich nicht, aber egal: jetzt hat man einen Snapshot, der den gleichen Dateinamen trägt wie die dazugehörige Videodatei.
Zu den Pausenzeiten: auf einem Quadcore sind 2000 ms genau richtig. Bei langsamen Rechnern /Platten oder Dateien auf Servern kann es zu Verzögerungen beim Öffnen durch den VLC kommen. Dann geht das Kommando Snapshot! ins Leere.
Wenn Dateien kürzer sind als diese 2 Sekunden, dann bekommt man keinen Snapshot, sondern der VLC stoppt und bleibt als "idle Prozeß" stehen. Nach einem Verzeichnis mit 1.800 m2t-Dateien hatte ich aber nur 13 Instanzen vom VLC, das schadet aber nicht.
Die simulierten Tastendrücke wirken auf das gerade im Vordergrund aktive Programm ein. Also vorher alle Programme schließen, die man nicht braucht. Das bedeutet natürlich, daß während der Arbeit des Scriptes der Rechner auch zu nichts anderem mehr gebraucht werden sollte. Was da sonst noch so aufploppen kann, sollte man vorher tunlichst deaktivieren.
Mit HDV-Bildern (1.920x1.088) können pro Bild um 4 MB anfallen, wenn man das voreingestellte PNG-Format zum Speichern verwendet. Man sollte im Ziellaufwerk genügend Platz vorsehen ;-)

Wer jetzt nicht alles in getrennte Dateien captured, sondern nur in eine, kann die Laufzeit des Films nehmen, alle zehn Sekunden einen Snapshot machen und den Timecode stattdessen als Dateinamen verwenden. So kann man sich in Riesendateien schneller zurechtfinden.

BG,
Andreas
"Doch das genügt nicht." - Arseni Tarkowskij
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.



B.DeKid
Beiträge: 12585

Re: Tip: Automatisierte Standbilder mit Windows Scripting Host und VLC-Play

Beitrag von B.DeKid »

Coole Sache nun legste noch in MultimediaBuilder eine GUI an und Verknüpfst das Script und fertig ist dei Video Snapshot Progi;-)

Zur Sicherheit in die MMB File noch nen Installations Abfrage von VLC und im Archiv ne VLC exe oder ne Direkte Download Anwendung.


Aber wie gesagt sehr gute Idee ;-P

MfG
B.DeKid



 Aktuelle Beiträge [alle Foren]
 
» Autofokus-Einstellungen Panasonic S5II/IIX/S9
von ksingle - Di 11:14
» Meike und Viltrox mit neuen 85mm Portrait-Telebrennweiten
von GaToR-BN - Di 10:38
» Kathryn Bigelows "A House of Dynamite" - das ist mal was.
von Alex - Di 8:41
» Hackermovies.de schliesst seine Pforten
von Jan - Mo 0:59
» Voigtländer Apo Lanthar 28mm f2 Aspherical
von Rick SSon - Mo 0:59
» DJI Mini 4 Pro Fly More Combo mit RC-N2
von v-empire - So 22:14
» Videonale 2025, Kurzfilmabend
von erwinvideo - So 18:49
» Juan Melara FilmUnlimited
von Axel - So 12:58
» Portkeys LH5C - 800 Nits und Kamerasteuerung für 222 Euro
von slashCAM - So 10:24
» Apple plant OLED-MacBook Pro, Mac Studio M6 Ultra und Mini-LED Studio Display
von Da_Michl - So 9:05
» Panasonic beendet LUMIX PRO Service
von Da_Michl - So 7:33
» SanDisk stellt Extreme Fit vor: Aktuell kleinster 1TB USB-C-Speicherstick
von Jott - Sa 19:51
» RØDECaster Video S: Kompakte Produktionskonsole für Video und Audio
von Darth Schneider - Sa 9:52
» Mit Filmen GELD verdienen (Filminvests): Mit UWE BOLL
von 7River - Fr 18:12
» HONORARE & HONORARGRÖßEN im Film: Mit Florian Tessloff
von Nigma1313 - Fr 13:15
» Canon EOS C50 im Praxistest: Kompaktes Arbeitstier mit 7K 50p Raw - die neue FX3 Konkurrenz
von Rick SSon - Fr 12:43
» Alien: Romulus - Teaser Trailer online - produziert von Ridley Scott, gedreht auf Alexa 35
von Jott - Fr 6:37
» Sony FX3 Nachfolger: Wie wichtig ist Open Gate wenn ein elektronisch verstellbarer ND Filter möglich wäre?
von Mikkel - Fr 1:42
» Linsen (Vintage, Anamorphic & Co.)
von Funless - Do 17:13
» Nikon ZR Lesertester gesucht! Nikon ZR zu gewinnen
von j.t.jefferson - Do 14:21
» DJI Neo 2: Kompakte Selfie-/FPV-Drohne mit Rundum-Hinderniserkennung und 4K/100p
von slashCAM - Do 13:36
» Behind the Scenes - Gute Sammlung
von iasi - Do 10:08
» Täglich über 15 Millionen US-Dollar Verlust? Sora 2 kommt OpenAI teuer zu stehen
von iasi - Mi 21:38
» ARRI Film Lab: Bewährte Color Science als OpenFX-Plugin
von Darth Schneider - Mi 19:23
» Sony Xperia VII und FX3 / FX6
von j.t.jefferson - Mi 18:09
» Synchronisation mehrerer Kameras mit Unterbrechungen
von j.t.jefferson - Mi 16:17
» Datacolor SpyderX Pro unterstützt jetzt 3D-LUTs und Content Credentials
von dienstag_01 - Mi 12:09
» Das Audio ducking will nicht funktionieren
von Aloha - Mi 9:09
» ARRI Film Lab
von Clemens Schiesko - Di 23:07
» Middle Control 3.0 - Sony Kameras via ATEM steuern
von rush - Di 22:08
» Canon EOS R6 Mark III mit 32,5 MP-Sensor, 7K Raw 50/60p und Open Gate Aufnahme vorgestellt
von roki100 - Di 20:52
» Orbsmart R82 mit ZDMC AnzeigeWerbung
von Nvidia 3D - Di 18:17
» Neues Apple TV Intro - Logo aus Glas statt KI und CGI
von Darth Schneider - Di 16:03
» Frankenstein
von Darth Schneider - Di 7:21
» DJI Avata 360 - Leaks zeigen DJIs neue 360°-Drohne
von slashCAM - Mo 22:33