Programm schreiben zum aufnehmen von videos??

  • wie ihr in der überschrift lesen könnt wollte ich fragen ob es möglich ist mit autoit ein programm zu schreiben das videos vom desktop aufnimmt??



    wenn ja wie lautet der befehl?

    Einmal editiert, zuletzt von crocojunk ()

  • Zitat

    wenn ja wie lautet der befehl?


    Glaubst du es gibt einen fertigen Befehl der dir ein Video vom Desktop aufnimmt? :D
    Das hier kann eine avi Datei aus Bitmaps zusammenbasteln.
    Du musst also nur noch ScreenShots in regelmäßigen Abständen machen und diese dann in eine avi packen.

  • Zitat

    würde das video nicht ruckeln also zuwenig fps haben?

    mit angenommenen 25 fps (Videoformat) kannst du dir ausrechnen wie lange ein Schreibzyklus eines Screencaptures() dauern darf. 1000ms/25=40ms
    Da sich auf dem Desktop idR ausser Mauszeigern und ggf einigen Buchstaben nicht viel bewegt, ist enormes Einsparpotential vorhanden. Es muss nur z.B. jeder 10. Frame als Vollbild gespeichert werden, bei den dazwischenliegenden Frames werden nur die Änderungen im Bild gespeichert/abgespielt.
    Ein simpler "Video-Recorder/Abspieler". Wäre mal eine schöne Aufgabe für ein µIt!

  • Ja, denn eigendlich braucht man keine 25 Screenshots auf der Platte bzw bei der Übertragung. Wenn man den Devicecontext des Desktops per bitblt (und dem passenden $iRop) Parameter mit dem vorherigen "Frame" vergleicht, ergibt sich ein "Differenzbild". Überall dort, wo KEINE Änderung vorkommt, bleibt deas Bild schwarz. Gewissermassen werden nur die veränderten Bildteile markiert. Da ein Bitblt in Hardware ausgeführt wird, dauert es nur einige Millisekunden. Die "Kompression" ist eigentlich easy, da die schwarzen "Pixel" einfach nur gezählt werden müssen. Also etwa so: (Schwarz 18344 mal), (Pixelfarbe), (Pixelfarbe), (Pixelfarbe), (Schwarz 312 mal), (Pixelfarbe)....
    Mal angenommen, der Mauszeiger ist 30x40 Pixel groß und ändert die Position, dann würden auf einem 1680x1050 Pixel grossen Bildschirm nur die 30x40 Pixel plus ca. 400Bytes für die "schwarzen" Pixel übertragen werden. Insgesamt also knapp 5kb Daten. Diese "Mini(de)kompression" könnte man aus Geschwindigkeitsgründen als dll ausführen, einmal als 32-Bit, einmal als 64-Bit-dll.
    Andererseits wäre die Frage, was bei einer JPG-Kompression an Dateigröße herauskommen würde, dann könnte man alles komplett in AutoIt machen...

  • also mein ziel ist es ein programm schreiebn zum aufnehmen von videos.


    nur mit den Fullscreen bekomme ich das nicht hin.

  • ich hab ein problem immer wenn ich auf play drücke kommt ein error aber nicht vom script




    ihr braucht auch noch die #include (wer sie nicht hat)

  • Hallo crocojunk,


    durch das Include-File scheinen die normalen Messages für GuiGetMsg nicht mehr zu funktionieren. Hier einmal das Skript zu Testzwecken mit AdLibRegister so abgeändert, dass 10 Sekunden aufgenommen werden:


    hier gibt es ein funktionierendes Skript AviCapture

  • das er die namen automatisch ändert dazu brauch ich eine ini datei oder?


    ich hatte die idee mit iniwrite das zu machen.


    doch irgendwie funktioniert das nicht


    ich hab das so



    IniWrite ("confic.ini", "C:\Crocoframe\" , "AVINAME", "crocoframe2")


    und in der ini steht das


    [AVINAME]
    crocoframe1