da immer wieder gefragt wird, ob auch eine Videoaufnahme per Skript gesteuert werden kann, hier eine erweiterbare Skriptvorlage. Da das Skript auch in der Luft verwendbar ist, habe ich es in Anlehnung an das Airwolf-Skript von gehtnix Airfox genannt.

Per Parameter kann man auswählen, ob ein manueller oder automatischer Start erfolgen soll. Bei automatischem Start wird für eine in den Parametern festgelegte Zeit aufgenommen. Im manuellen Modus kann per [SET]-Taste oder USB-Fernbedienung die Videoaufnahme gestartet und gestoppt werden. Die [MENU]-Taste beendet im Manuellen Modus das Skript.
Weitere Einstellmöglichkeiten (z.B. Fokussierung, manueller Fokus, ISO-Empfindlichkeit, Blende) gibt es nicht, da diese sehr kameraabhängig sind und man über die Funktionsweise tief greifende Kenntnisse haben muss.
Das Skript ist umfangreich kommentiert und sollte somit auch für "Nichtskripter" einen Einblick in das Innenleben von Skripten geben und vielleicht sogar ermutigen, selbst an diesem Skript weiter zu basteln.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
***************************
(c) msl 10/10/2010
***************************
@title AirFox
@param a Auto=0 Manuell=1
@default a 1
@param b Aufnahmezeit in Sek.
@default b 30
@param c Startverz. in Sek.
@default c 5
]]
-- Plausibilitätsprüfung der Parameter
if a<0 or a>1 then a=0 end
if b<5 then b=5 end
if c<1 then c=1 end
-- verständliche Namen für Parameter-Variablen
recMode = a
recTime = b*1000 -- Umrechnung in Sekunden
recDelay= c*1000 -- Umrechnung in Sekunden
-- Funktion für Start und Stopp der Videoaufnahme definieren
function StartStopVideo()
press("shoot_full")
sleep(300)
release("shoot_full")
end
-- Funktion für Tastaturabfrage definieren
function button()
repeat
key=""
wait_click(200) -- Tastaturwiederholrate 200 ms
if is_pressed "set" then key = "SET" -- SET-Taste
elseif is_pressed "remote" then key = "SET" -- USB-Fernbedienung
elseif is_pressed "menu" then key = "MENU" -- Menü-Taste
end
until key~=""
end
-- *****eigentlicher Skriptstart*****
rec,vid,mode=get_mode() -- Prüfung auf richtigen Modus
print("Aufnahmemodus:",rec) -- Aufnahmemodus wahr oder falsch
print("Videomodus:",vid) -- Videomodus wahr oder falsch
if rec~=true then error("Fehler - kein Aufnahmemodus!") end -- definierte Fehlermeldung
if vid~=true then error("Fehler - kein Videomodus!") end -- definierte fehlermeldung
sleep(recDelay) -- Wartezeit laut Parametereinstellung
if recMode==0 then -- automatische Aufzeichnungsmethode wenn recMode gleich 0 ist
endTime=get_tick_count()+recTime --Endzeit berechnen
StartStopVideo() --Start
repeat --Warteschleife
sleep(10) -- Damit die Schleife nicht so schnell ist.
until get_tick_count()>=endTime --Abfrage Endzeit
StartStopVideo() --Stopp
else -- manuelle Aufzeichnungsmethode, wenn recMode ungleich 0 ist
repeat -- Schleife für wiederholtes Starten und stoppen
cls() -- Konsolenanzeige löschen
print("Benutze für Start/Stop") -- Ausgabe Skript-Konsole
print("[SET] oder [Remote]") -- Ausgabe Skript-Konsole
print("und für Ende [MENU].") -- Ausgabe Skript-Konsole
button() -- Tastenabfrage
if key=="SET" then StartStopVideo() end --Start oder Stopp
console_redraw() -- Neuschreiben der Skript-Konsole erzwingen, weil durch andere Anzeigen nicht lesbar.
until key=="MENU" -- Schleife beenden, wenn Menütatse gedrückt wurde.
end -- Ende Aufzeichnungsmethode
***************************
(c) msl 10/10/2010
***************************
@title AirFox
@param a Auto=0 Manuell=1
@default a 1
@param b Aufnahmezeit in Sek.
@default b 30
@param c Startverz. in Sek.
@default c 5
]]
-- Plausibilitätsprüfung der Parameter
if a<0 or a>1 then a=0 end
if b<5 then b=5 end
if c<1 then c=1 end
-- verständliche Namen für Parameter-Variablen
recMode = a
recTime = b*1000 -- Umrechnung in Sekunden
recDelay= c*1000 -- Umrechnung in Sekunden
-- Funktion für Start und Stopp der Videoaufnahme definieren
function StartStopVideo()
press("shoot_full")
sleep(300)
release("shoot_full")
end
-- Funktion für Tastaturabfrage definieren
function button()
repeat
key=""
wait_click(200) -- Tastaturwiederholrate 200 ms
if is_pressed "set" then key = "SET" -- SET-Taste
elseif is_pressed "remote" then key = "SET" -- USB-Fernbedienung
elseif is_pressed "menu" then key = "MENU" -- Menü-Taste
end
until key~=""
end
-- *****eigentlicher Skriptstart*****
rec,vid,mode=get_mode() -- Prüfung auf richtigen Modus
print("Aufnahmemodus:",rec) -- Aufnahmemodus wahr oder falsch
print("Videomodus:",vid) -- Videomodus wahr oder falsch
if rec~=true then error("Fehler - kein Aufnahmemodus!") end -- definierte Fehlermeldung
if vid~=true then error("Fehler - kein Videomodus!") end -- definierte fehlermeldung
sleep(recDelay) -- Wartezeit laut Parametereinstellung
if recMode==0 then -- automatische Aufzeichnungsmethode wenn recMode gleich 0 ist
endTime=get_tick_count()+recTime --Endzeit berechnen
StartStopVideo() --Start
repeat --Warteschleife
sleep(10) -- Damit die Schleife nicht so schnell ist.
until get_tick_count()>=endTime --Abfrage Endzeit
StartStopVideo() --Stopp
else -- manuelle Aufzeichnungsmethode, wenn recMode ungleich 0 ist
repeat -- Schleife für wiederholtes Starten und stoppen
cls() -- Konsolenanzeige löschen
print("Benutze für Start/Stop") -- Ausgabe Skript-Konsole
print("[SET] oder [Remote]") -- Ausgabe Skript-Konsole
print("und für Ende [MENU].") -- Ausgabe Skript-Konsole
button() -- Tastenabfrage
if key=="SET" then StartStopVideo() end --Start oder Stopp
console_redraw() -- Neuschreiben der Skript-Konsole erzwingen, weil durch andere Anzeigen nicht lesbar.
until key=="MENU" -- Schleife beenden, wenn Menütatse gedrückt wurde.
end -- Ende Aufzeichnungsmethode
Erstellt in 0.012 Sekunden, mit GeSHi 1.0.8.9
Gruß msl
Update 16/10/2010
Anwendungsskript air_fox2 mit der Option zur manuellen Einstellung des Fokus hinzugefügt.