Anzeige: Nickles Bücher online bestellen...
In den Nickles-Büchern gibt's viele weitere Tipps, Tricks und Fakten zur Sache! Bestellinfo und Leseprobe hier!

NICKLES PROJEKT 2001: Zeitgesteuerte Videoaufnahme...

Probleme, Lösungen, Ausblicke

Je nach Capture-Programm und persönlichem Aufnahmevorhaben ergeben sich logischerweise Limits! Speichert ein Capture-Tool (wie VirtualDub!) immer in die gleiche vorgegebene Capture-Datei, dann wird bei erneuter Aufnahme die letzte Aufnahme überschrieben. Auch die Initialisierungsdauer des Capture-Programms muss beim Zeit-Einstellen beachtet werden, damit von einem Spielfilm-Beginn nicht die ersten Sekunden fehlen. Speicher ein Capture-Programm immer in die gleiche Datei ab, dann hilft nur eines: Die Capture-Datei nach Beenden eines Aufnahmevorgangs automatisiert umzubenennen.

Beispiel: Es wird immer in die Datei c:\capture.avi aufgenommen. Damit Multi-Aufnahmesessions möglich sind, reicht es nicht, die Datei immer gleich umzubenennen. Es muss ein automatischer Numerierungsmechanismus her. Sinnvoll ist dieser hier:

Capturedateiname-Datum-Zeit.AVI

An den Capture-Dateinamen wird also einfach das Datum und der Zeitpunkt des Aufnahmestopps drangehängt. Danach kannst Du beruhigt zwei Wochen in Urlaub fahren und der PC nimmt täglich Deine Lieblingsserie für Dich in eine andere AVI-Datei auf.

Der zuvorige StopAufnahme.vbs muss zu diesem Zweck wie folgt modifiziert werden - am besten speicherst Du den folgenden Script als StopAndRenameAufnahme.vbs ab. Hier der komplette Code für's Stoppen von Virtualdub und Umbenennen des Capture-Files:

'VBS-Script zum Beenden Virtualdub im Aufnahme-Modus

'Anschliessend wird die Capture-Datei umbenannt

Option Explicit

Dim strSourceName

strSourceName = "c:\capture.avi" 'HIER CAPTURE-DATEINAME ANGEBEN

'1. Schritt: Anhalten des Aufnahmemodus und beenden von Virtualdub

dim osh

set osh = wscript.CreateObject("wscript.Shell") 'Shell-Objekt definieren

osh.SendKeys "{Esc}" 'Aufnahme mit ESC beenden

osh.Sendkeys "%F{x}" 'Capture Modus beenden

osh.Sendkeys "%F{Q}" 'Virtualdub beenden

'2. Schritt: Umbennen der Capture-Datei

Dim strDestName

BuildDestinationName strSourceName, strDestName

RenameFile strSourceName, strDestName

' Neuen Dateinamen nach folgenden Regeln berechnen:

' sourceName = '<drive><path><fname><ext>

' desName = '<drive><path><fname-DATE-TIME<ext>

function BuildDestinationName( strSourceName, strDestName)

dim fso

set fso = CreateObject("Scripting.FileSystemObject")

dim extension

extension = fso.GetExtensionName( strSourceName)

dim basename

basename = fso.GetBaseName( strSourceName)

dim path

path = fso.GetParentFolderName( strSourceName)

dim theDate

theDate = Replace( FormatDateTime( Date, 2), ".", "-")

dim theTime

theTime = Replace( FormatDateTime( Time, 3), ":" , "-")

'3. Datum in Format Jahr-Monat-Tag umwandeln

' (besser für Sortierung in Explorer!)

dim Jahr

dim Monat

dim Tag

Tag=left(theDate,2)

Monat=mid(theDate,4,2)

Jahr=right(theDate,4)

theDate= Jahr & "-" & Monat & "-" & Tag

if len(path)=3 then

strDestName = path & basename & "-" & theDate & "-" & theTime & "." & extension

else

strDestName = path & "\" & basename & "-" & theDate & "-" & theTime & "." & extension

end if

end function

function RenameFile( strSourceName, strDestinationName)

dim fso

set fso = CreateObject("Scripting.FileSystemObject")

fso.MoveFile strSourceName, strDestinationName

end function

WICHTIG: In der Code-Zeile

strSourceName = "c:\capture.avi" 'HIER CAPTURE-DATEINAME ANGEBEN

trägst Du natürlich den Pfad und Dateinamen des Capture-Files ein, den Du auch unter Virtualdub verwendest! Hier im Beispiel wurde die Datei c:\capture.avi verwendet.

Die ganze Sache spielt sich nun in folgenden Schritten ab:

1. Aufnahme-Start im Taskplaner festlegen: Im Taskplaner gibst Du dazu an, zu welchem Zeitpunkt der Aufnahmestart-VBS-Script aufgerufen wird. Bedenke, dass das Capture-Programm ein paar Sekunden zum Initialisieren braucht - also ein paar Sekunden vor Ausstrahlungszeitpunkt der Sendung loslegen!

2. Aufnahme-Stop im Taskplaner festlegen: Der Stoppzeitpunkt, also der Stop-VBS-Script wird als eigene Aufgabe im Taskmanager festgelegt. Wie bei einem gewöhnlichen Videorecorder müssen Start und Stop also getrennt eingestellt werden. Wichtig: Damit der Stop-Script funktioniert, muss der Rechner während dem Capture "alleine" sein - laufen noch andere Programme (oder Du arbeitest während der Aufnahme am PC), dann ist nicht garantiert, dass der Stop-VBS-Script das Capture-Programm bedient.

3. Multiple Aufnahmen: Da das erweiterte Stop-Script die Capture-Datei nach der Aufnahme umbenennt, kannst Du beliebig viele Aufnahmen "programmieren".

4. Trick 17: Wenn der Taskmanager einen Job erledigt hat, dann löscht er ihn nicht, sondern hakt ihn nur als erledigt ab. Um eine neue Aufnahme zu programmieren musst Du lediglich den Eigenschaftendialog (Rechtsklick) eines alten Aufnahme-Tasks aktivieren und eine neue Startzeit einstellen. Alles geht also sehr flott und komfortabel, es muss nicht viel "Rumgetippt" werden.


Windows-Taskmanager: Beliebig viele Aufnahmen können programmiert werden.

Ein Problem bleibt! Der PC kann keine externe Video-Bildquelle umschalten - er kann nicht wählen welches Programm beispielsweise ein Sat-Receiver zum Aufnahmezeitpunkt empfangen soll. Dieses Problem hast Du allerdings auch mit einem herkömmlichen Videorecoder, so Du nicht seinen TV-Tuner zum Aufnehmen programmierst. Im Fall von TV- und Sat-Karten im PC kannst Du VBS-Scripts zur Senderauswahl programmieren (wie beim Capture-Programm steuerst Du im TV-/Sat-Programm einfach die nötigen Programm-Umschalttastenbefehle per Script). In den Folgebeiträgen zum Projekt 2001 wird auch eine 10 Mark Lösung vorgestellt über die ein PC sämtliche Infrarot-Geräte steuern kann - dann klappt auch die Programmumschaltung eines Sat-Empfängers etcetera.

To be continued...

Nächste Seite...
 
NICKLES PROJEKT 2001: Zeitgesteuerte Videoaufnahme


Service: