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