>

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]
 
» Setup and forget Kamera für Livestream
von trekjk - So 18:55
» Affinity Photo, Designer und Publisher ab sofort in einer kostenlosen App
von vaio - So 12:58
» FireWire ExpressCard TI gesucht!
von dienstag_01 - So 12:17
» RØDE Wireless Microphone Camera Kit - Funkmikro-Set für Kameras
von slashCAM - So 12:02
» V-Mount-Akku (IDX Micro 98) tiefentladen
von Blackbox - So 3:50
» Dte Rekorder gesucht
von Marcodshild - Sa 20:32
» Focus Firestore FS-4 Pro HD
von Marcodshild - Sa 15:20
» Kamera bei asgoodasnew kaufen
von Bildlauf - Sa 13:59
» HASSLIEBE deutscher Film? Mit Wolfgang M. Schmitt
von 7River - Sa 6:25
» Nach 7 Jahren mit der OG BMPCC finde ich das Bild noch immer schön.
von roki100 - Fr 19:47
» Der deutsche STUNTMAN für Dune, James Bond & Marvel! VI-DAN TRAN
von Darth Schneider - Fr 14:59
» Adobe Firefly generiert jetzt auch KI-Soundtracks und Voice-Over
von ruessel - Fr 9:29
» Morgen ist heute gestern | Kurzfilm 2025
von Merlin films - Do 20:57
» DJI Neo 2 bringt Rundum-Hinderniserkennung samt LiDAR
von slashCAM - Do 17:42
» Neue Firmware für Sony Alpha 1 II und Sony Alpha 9 III bringt neue Funktionen
von slashCAM - Do 13:33
» 110-Ohm-Mikrofonkabel Wasserdicht bis 20 m
von Blackbox - Do 3:55
» KI: Bessere Sprachverständlichkeit
von freezer - Mi 22:24
» Dumpfe Audiospur als ob sie im Auto laufen würde
von toniwan - Mi 20:10
» Forscher suchen die maximale Pixelauflösung der Augen
von Darth Schneider - Mi 19:17
» Bitte um Rat nach langer, aber verwirrender Recherche
von Jott - Mi 11:47
» SCHLECHTE Regisseure? Mit Wilson Gonzalez Ochsenknecht
von Nigma1313 - Mi 10:42
» Canon EOS R6 Mark III Neuvorstellung am 06.11.25
von cantsin - Di 22:00
» slashCam im Gespräch mit Nikon zur neuen ZR und der Zukunft von RED Komodo
von iasi - Di 18:53
» DJI im neuen Gewand: Xtra
von medienonkel - Di 17:13
» Neues Firmware Update 3.0 für die Nikon Zf Kamera
von Funless - Di 14:46
» Insta360 X4 Air vorgestellt - 8K/360° Action-Kamera für 329 Euro
von slashCAM - Di 13:15
» OpenAI Sora 2 - Nutzungsrichtlinie entfacht internationalen Urheberrechtsstreit
von philr - Di 10:47
» DJI Neo 2 kommt am 30. Oktober mit LiDAR und größerem Sensor
von medienonkel - Di 9:50
» Canons restriktive Mount-Politik: Clever oder der Impuls für eine chinesische DSLM?
von env0 - Mo 17:53
» Lernen von ALFRED HITCHCOCK - Wie entstand Psycho?
von stip - Mo 17:03
» Mein VTube-kanal-Projekt auf YouTube,...
von walang_sinuman - Mo 7:17
» LG UltraFine 40U990A-W - 40" 5K2K Monitor mit Thunderbolt 5
von chackl - So 19:24
» Leica M EV1: Leica M mit elektronischem Sucher zu einem niedrigeren Preis vorgestellt
von rkunstmann - So 19:12
» Neue Firmware für Panasonic LUMIX S5 II, S5 IIX, S9, GH7 und G9 II
von Darth Schneider - So 13:32
» Sound Matters - Podcast zum Thema Production Sound
von pillepalle - So 8:13