[Lua] Video-Toolkit

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Video-Toolkit

Beitragvon hackrid » 07.01.2009, 12:58

hallo,

ich bin gerade dabei für meine A720 ein "videotool" zu erstellen das beim filmen sehr hilfreich bzw kreativ einzusetzen sein dürfte.

den tasten habe ich entsprechend ihrer anordnung funktionen zugeteilt.
für andere kamera modelle müsste das evtl angepasst werden.

die funktionen während der aufnahme:

zoomen im alt-mode (done) sofern im video menü aktiviert.
aufnahme starten (done) bei start des scripts (zu testzwecken deaktiviert, nicht ärgern :) einfach entkommentieren und losgehts...)
aufnahme stoppen (done) beim verlassen über ERASE
autofokusieren (probably done) -->click("AF-Taste von Videomenü")??

manuell fokusieren (worse done) --->total komisches fokusverhalten....
aufnahme pausieren/fortsetzen (works4 some cams, test+report)
kontrolle über "scheinwerfer" --> wird nur im videomodus nach AF wiederhergestellt (reicht ja eigentlich auch...)


blende ändern (to be done) --> machbar?, eine zeitgleiche Ev-Anpassung wäre super um die verdunklung nicht merkbar zu machen.


das script basiert im wesentlichen auf meiner (not) taschenlampe...
manueller fokus im video modus: http://chdk.setepontos.com/index.php/topic,810.0.html

Propcase 133 muss beim digic2 in 12 geändert werden!
aus i einem grund muss der fokus "manuell" auf manuell gesetzt werden und dann in den video modus wechseln. jemand ne idee zum automatisch wechseln??

mf im video hängt sich iwo bei SD:511 auf.... dunno why, ihr vll?

script funktioniert im groben wie es soll :)
die funktionen müssen noch verbessert werden...
wär euch super dankbar wenn mir jemand bei den fehlenden funktionen helfen könnte!


Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
@title VideoTool
]]


local U
function button()
 local f=59
 local x=0
 repeat
   
    wait_click(150)
   
        if is_pressed "up" then
          key = "UP"
          x = 1
         end
   
        if is_pressed "down" then
          key = "DOWN"
          x = 1
         end

        if is_pressed "left" then
          key = "LEFT"
          x = 1
         end

        if is_pressed "right" then
          key = "RIGHT"
          x = 1
         end
   
        if is_pressed "shoot_half" then   --check first if shoot_half is set as AF-Key in Videosettings, doesnt work anyway. why?
          key = "SHOT_HALF"
          x = 1
         end

        if is_pressed "menu" then    
          set_prop(133,1)                --enable manual focus (on digic 2 use 12 istead of 133)
            while is_pressed "menu" do
              if f<6731 then
                f=get_focus()+10           --increment focus
                set_focus(f)           
               else set_focus(65535)             
               end
               sleep(10)
             end
         end

        if is_pressed "display" then  
          set_prop(133,1)               --enable manual focus (on digic 2 use 12 istead of 133)
            while is_pressed "display" do
             if f>69 then
              f=get_focus()-10              --decrement focus
              set_focus(f)         
              else set_focus(59)             
             end
             sleep(10)
             end
         end

        while is_pressed "zoom_in" do
          press("zoom_in")       
         end
         release("zoom_in")

        while is_pressed "zoom_out" do
          press("zoom_out")      
         end
         release("zoom_out")


        if is_pressed "erase" then
          key = "ERASE"
          x=1
         end


   
 until x==1
   
end



--start script

local l=0 --"carry" for beam on or off



cls()
print("[UP/DOWN]     Lamp ON/OFF")  --well formated to fit on console
print("[ZOOM IN/OUT] Zoom")
print("[SET]         Pause/REC")
print("[Shoothalf]   AutoFocus")
print("****click anything****")
wait_click()
print("[SET]         Pause/REC")
print("[Shoothalf]   AutoFocus")
print("[DISP/MENU]   Focus-/+")
print("[L/R]         Aperture-/+")
print("[Erase]       Stop Rec")



--click("shoot_half") --start video reord. dont needed atm... remove leading -- an it should work
--click("shoot_full")

repeat
cls()
print(get_prop(65)) --show some propcases. only for debugging due focus problems
print(get_prop(245))
--print(get_prop())
--print(get_prop())

button()

if key == "UP"   then
 set_led(9,1)        --fire up AF-Assistbeam
 l=1

end

if key == "DOWN" then
 set_led(9,0)     --shutdown AF-Assistbeam
 l=0

end


if key == "SET"  then
 
  if get_movie_status() == 1 then --toggle movie_status 1<->2
     set_movie_status(2)  

    else
      set_movie_status(1)
   
    end
 
 
end



if key == "SHOT_HALF" then
set_prop(133,0)          --enable auto focus (on digic 2 use 12 istead of 133)


  press("shoot_half") --perform AF
  sleep(1000)          -- whats the maximum TTF (time to focus)??
  release("shoot_half")  
                         --some trouble here in non-videomode
   sleep(100)
   
   if l==1 then       --restore strahler
     set_led(9,1)
   end
   
   
 end
 
 
if key == "LEFT" then              --no idea how to do this. but you might have and willing to help me
  --decrement Av (and adjust Ev)
  end
 
if key == "RIGHT" then
  --increment Av (and adjust Ev)
  end
 


until key == "ERASE"

set_led(9,0)  --ensure strahler is off
click("shoot_full") --stop video record

--exit_alt() --maybe leave alt-mode
Erstellt in 0.022 Sekunden, mit GeSHi 1.0.8.9


ps: programmer's note erleichtert die "test arbeit" enorm. dort rufe ich über strg+q mein "move2card" tool auf was die aktuelle datei nach <sdkarte>: \chdk\scripts kopiert. erspart nerviges klicken im explorer.

edit: MF Funktioniert halbwegs... muss getestet werden!
edit: zoom möglich gemacht
edit: AF funktioniert wahrscheinlich

erstattet doch bitte bericht, was das script bei eurer cam tut und was (noch) nicht
Dateianhänge
video.lua
(1.78 KiB) 350-mal heruntergeladen
Zuletzt geändert von hackrid am 08.01.2009, 21:28, insgesamt 22-mal geändert.
Canon A720 IS,
Mustek MDC 3000
hackrid
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 45
Registriert: 27.07.2008, 14:09

Beitragvon msl » 07.01.2009, 13:55

Hallo hackrid,

interessante Idee. Deshalb habe ich es mal aus der Wunschliste herausgetrennt. Da gibt es bestimmt einiges zu besprechen.

Ich befürchte, dass set_moviemode() gerade bei der A720 nicht funktioniert. Das hängt mit der "schnellen Videokontrolle" zusammen. Die funktioniert bei der A720 nicht crash-frei. Deshalb wurde die Funktion auskommentiert.

Da muss dann erstmal eine andere Lösung her.

Ev-Anpassung ist auch ein Problem. Das funktioniert bei der skriptlosen Anwendung nur für negative Werte.

Aber vielleicht können wir diese Probleme alle mit einer elleganten Skriptlösung umgehen. Da hilft nur probieren und testen.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon hackrid » 07.01.2009, 14:31

hallo msl,

thanks for attention^^
auf anderen kameras sollte es also lauffähig sein oder?
kann man das nicht wieder testweise !kommentieren ?

ist es möglich auf der konsole symbole wie pause und paly anzuzeigen? http://0800install.co.nz/top.ht5.gif


habe es noch möglich gemacht zu zoomen. speed fix kommt gleich...

zum thema video und MF hier: http://chdk.setepontos.com/index.php/topic,810.0.html
könnte das mal jemand für mich interpretieren, ich bin kein geübter script leser :)

edit: zoom speed: normal
AF funktioniert (glaub ich). gerade jetzt sind meine batterien leer -.-
gibt es die möglichkeit die lua syntax auf dem pc zu cheken? würde es viel einfacher machen...
Canon A720 IS,
Mustek MDC 3000
hackrid
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 45
Registriert: 27.07.2008, 14:09

Beitragvon msl » 07.01.2009, 15:11

auf anderen kameras sollte es also lauffähig sein oder?
Auf vielen Kameras ist es lauffähig.
kann man das nicht wieder testweise !kommentieren ?
Du kannst Dir doch mit der CHDK-Shell eine eigene Version bauen. Da ist nur eine Zeile im Quellcode zu verändern.

Zu der ganzen Thematik "schnelle Videokontrolle" kann aber PhyrePhoX am besten Auskunft geben.

ist es möglich auf der konsole symbole wie pause und paly anzuzeigen?
Nein.


zum Skript:

Das Skript solltest Du einfach ausprobieren. Du mußt nur Propertycase 12 gegen den richtigen Wert für DigicIII austauschen. Das Skript prüft, ob der manuelle Fokus aktiv ist, wenn nein wird er gesetzt. Dann kann man über die unterschiedlichen Tastaturkombinationen die Fokusdistanz verändern.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon hackrid » 07.01.2009, 17:15

obwohl ich an dem focus script nichts geändert habe, läuft es auf meiner camera wunederbar.

das lässt doch vermuten das propcase 12 auch für digic3 den manuellen Fokus "verwaltet".
im gegesatz dazu: [url=http://chdk.wikia.com/wiki/PropertyCase]hier ist 133 für den mf zuständig
[/url]

ich hab im moment iwie ne blokade, ich komm mit dem fokus nicht weiter... *need help*
bin jetzt auch iwie unschlüssig ob ich nen "fokus mode" integrieren soll mit dem dann verschiedene presets direkt über die tasten zugänglich sind....
total strange!!!

für symbole in der der konsole könnte man mit dem rbf editor schriftarten bearbeiten und unnötige zeichen wie ¡(umgedrehtes !) und ¢ durch symbole für pause, rec, stop, taschenlampe, blitz ersetzen
aber jetzt nich unbedingt nötig und man sollte das iwie zentral verwalten....
Canon A720 IS,
Mustek MDC 3000
hackrid
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 45
Registriert: 27.07.2008, 14:09

Beitragvon europanorama » 08.01.2009, 08:28

hallo

die orange auf hellem hintergrund ist auf dem crt schlecht lesbar.

bin kein programmierer aber diese informationen betreffen zoomen plus MF, gell?
das geht nämlich nicht im gleichen vorgang.
lupe im videomode wäre sinnvoll.

am wichtigsten wäre: ae-video-lock
belichtungskontrolle beim videodreh.
mindestens der belichtungspegel erstmal einstellbar. bei coolpix p50 geht das auch.
europanorama
 


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste