Seite 1 von 1

Capture to avi or mp4 ?

Verfasst: 09.09.2021 21:36
von udg
Eine Frage:

Ich habe mir ein Tool programmiert, in dass ich mir 3ds 3D Modelle laden kann. Diese werden automatisch rotiert und wenn ich zusätzlich noch einen Sound lade, acted das 3D Objekt zur Musik.

Ich möchte dieses Programm noch um viele Optionen erweitern.

Der Hauptgrund:
Logos von Plattenlabels laden die dann später in einerm Musikvideo landen.

Derzeit capture ich immer mit OBS Studio. Es wäre aber obermäßig, wenn ich mit PureBasic auch das was ich gerade abspiele mit klick auf einen Button direkt capturen könnte.

Gibt es eine Möglichkeit dies umzusetzen? Mir ist bekannt, dass "Peace" vor vielen Jahren einmal den Ghostwriter rausgebracht hat. Muss PB v 3.? gewesen sein. Hier konnte man eine Art Szenedemo erstellen und parallel dazu hat der Ghostwriter das ganze aufgezeichnet als eine Moviedatei.

Leider ist "Peace" schon lang raus und weg.

Aus diesem grund meine Frage: Hat jemand eine Idee wie ich das recording direkt in mein programm integrieren kann?

Das Programm braucht und nutzt Direct X

Grüße

BILD:

Bild

Re: Capture to avi or mp4 ?

Verfasst: 10.09.2021 18:32
von Mijikai
Der Backbufffer ist mit DX normalerweise auslesbar und kann zum Aufnehmen verwendet werden.
DirectShow ist auch eine Möglichkeit.

Evtl. gibt es auch Commandline-Commands zum ScreeRecorder in der Windows 10 "Game Bar".

DX/OpenGl recording:
https://www.codeproject.com/Articles/15 ... Animations

Re: Capture to avi or mp4 ?

Verfasst: 05.12.2021 23:56
von mpz
Hi,

es fiel mir gerade auf das das alles meine MP3D Engine kann, 3Ds File laden = ja, Musik laden = ja und AVI Datei Speicher ja. Das einzige was ich nicht weiss ob der Sound mitgespeichert wird. ich glaube das ging nicht, bin aber nicht sicher. Ist aber nichts was nicht lösbar ist..

https://www.purebasic.fr/english/viewto ... hilit=mp3d

Code: Alles auswählen

MP_Graphics3D (640,480,0,3) ; Erstelle ein WindowsFenster mit 3D Funktion #Window = 0
SetWindowTitle(0, "3D Darstellung eine Würfels") ; Setzt einen Fensternamen

MP_SetAntialiasing( 1 )

camera=MP_CreateCamera() ; Kamera erstellen

light=MP_CreateLight(1) ; Es werde Licht

Mesh=MP_LoadMesh("testcube.3ds")

MP_PositionEntity (Mesh,0,0,3) ; Position des Würfels

Movie = MP_CreateMovie ("c:\temp\filmtest.avi",60)
While Not MP_KeyDown(#PB_Key_Escape) And Not WindowEvent() = #PB_Event_CloseWindow; Esc abfrage oder Windows Schliessen
  
  

    MP_FrameToMovie (  Movie, Frame )
    Frame + 1
    
    If Frame = 500 ; End after 500 frames
      Break
    EndIf 
    
  
  
    MP_DrawText(0, 0, "FPS = " + Str(MP_FPS()))
  
    MP_TurnEntity (Mesh,0.1,0.1,0.1) ; dreh den Würfel
    MP_RenderWorld() ; Erstelle die Welt
    MP_Flip () ; Stelle Sie dar
    

    
Wend


MessageRequester("Info","Number of Video Frames created: "+Str(MP_MovieNumFrames (  Movie ))+Chr(13))

MP_CloseMovie(  Movie )

Re: Capture to avi or mp4 ?

Verfasst: 23.04.2022 22:56
von udg
Sorry für die späte Rückmeldung.

Ich habe gerade versucht dein Beispiel einzubauen. Jedoch wird kein avifile geschrieben.

Code:

Code: Alles auswählen

MP_Graphics3D (640,480,0,3) ; Erstelle ein WindowsFenster mit 3D Funktion #Window = 0
SetWindowTitle(0, "3D Darstellung eine Würfels") ; Setzt einen Fensternamen

MP_SetAntialiasing( 1 )

camera=MP_CreateCamera() ; Kamera erstellen

light=MP_CreateLight(1) ; Es werde Licht

Mesh=MP_LoadMesh("MetalHeadzLogo.3ds")

MP_PositionEntity (Mesh,0,0,3) ; Position des Würfels

Movie = MP_CreateMovie ("filmtest.avi",60)
While Not MP_KeyDown(#PB_Key_Escape) And Not WindowEvent() = #PB_Event_CloseWindow; Esc abfrage oder Windows Schliessen
  
  

    MP_FrameToMovie (  Movie, Frame )
    Frame + 1
    
    If Frame = 500 ; End after 500 frames
      Break
    EndIf 
    
  
  
    MP_DrawText(0, 0, "FPS = " + Str(MP_FPS()))
  
    MP_TurnEntity (Mesh,0.1,0.1,0.1) ; dreh den Würfel
    MP_RenderWorld() ; Erstelle die Welt
    MP_Flip () ; Stelle Sie dar
    

    
Wend


MessageRequester("Info","Number of Video Frames created: "+Str(MP_MovieNumFrames (  Movie ))+Chr(13))

MP_CloseMovie(  Movie )
Bild

Re: Capture to avi or mp4 ?

Verfasst: 29.04.2022 17:36
von udg
kann es sein, dass es unter Windows 11 nicht funzlt?