Differenze tra le versioni di "Catturare immagini di una finestra di un programma e farne un file audio-video OGG-Theora con le funzioni esterne del API di GStreamer"
(Creata pagina con "Con le risorse della libreria "''libgstreamer-1.0.so.0.204.0''" è possibile catturare immagini di quanto avviene in una finestra di un programma e farne un file video OGG-The...") |
|||
(6 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Con le risorse della libreria "''libgstreamer-1.0.so.0. | + | Con le risorse della libreria "''libgstreamer-1.0.so.0.2407.0'' " è possibile catturare immagini di quanto avviene in una finestra di un programma e farne un file video OGG-Theora <SPAN Style="text-decoration:underline">comprensivo di audio</span>. Va detto che ovviamente questa possibilità è estesa anche alla Scrivania (''Desktop''), e che sarà catturato anche il puntatore del mouse. |
− | Per individuare la "''finestra''", che si intende registrare, bisognerà passare alla | + | Per individuare la "''finestra''", che si intende registrare, bisognerà passare alla Proprietà "xid" del plugin ''ximagesrc'' il [[Individuare_ed_estrarre_l'ID_della_finestra_di_un_programma|numero identificativo della finestra]] medesima. Per la ''Scrivania'' è anche possibile impostare più semplicemente il suo ID di default uguale a 0 (zero). |
+ | |||
+ | Per catturare anche l'audio, bisognerà ovviamente attivare il microfono oppure il dispositivo audio interno di sistema. | ||
Mostriamo un esempio pratico, nel quale si cattureranno immagini di quanto accade sulla ''Scrivania'' e si produrrà con esse un file video-audio OGG: | Mostriamo un esempio pratico, nel quale si cattureranno immagini di quanto accade sulla ''Scrivania'' e si produrrà con esse un file video-audio OGG: | ||
Riga 7: | Riga 9: | ||
− | Library "libgstreamer-1.0" | + | Library "libgstreamer-1.0:0.2407.0" |
Private Enum GST_STATE_VOID_PENDING = 0, GST_STATE_NULL, GST_STATE_READY, GST_STATE_PAUSED, GST_STATE_PLAYING | Private Enum GST_STATE_VOID_PENDING = 0, GST_STATE_NULL, GST_STATE_READY, GST_STATE_PAUSED, GST_STATE_PLAYING | ||
Riga 28: | Riga 30: | ||
− | + | Public Sub Button1_Click() | |
gst_init(0, 0) | gst_init(0, 0) | ||
Riga 40: | Riga 42: | ||
gst_element_set_state(video, GST_STATE_PLAYING) | gst_element_set_state(video, GST_STATE_PLAYING) | ||
− | + | End | |
− | + | Public Sub Button2_Click() | |
<FONT Color=gray>' ''Ferma la registrazione audio-video:''</font> | <FONT Color=gray>' ''Ferma la registrazione audio-video:''</font> | ||
Riga 51: | Riga 53: | ||
Print "Registrazione video-audio fermata !" | Print "Registrazione video-audio fermata !" | ||
− | + | End |
Versione attuale delle 14:42, 2 set 2024
Con le risorse della libreria "libgstreamer-1.0.so.0.2407.0 " è possibile catturare immagini di quanto avviene in una finestra di un programma e farne un file video OGG-Theora comprensivo di audio. Va detto che ovviamente questa possibilità è estesa anche alla Scrivania (Desktop), e che sarà catturato anche il puntatore del mouse.
Per individuare la "finestra", che si intende registrare, bisognerà passare alla Proprietà "xid" del plugin ximagesrc il numero identificativo della finestra medesima. Per la Scrivania è anche possibile impostare più semplicemente il suo ID di default uguale a 0 (zero).
Per catturare anche l'audio, bisognerà ovviamente attivare il microfono oppure il dispositivo audio interno di sistema.
Mostriamo un esempio pratico, nel quale si cattureranno immagini di quanto accade sulla Scrivania e si produrrà con esse un file video-audio OGG:
Private video As Pointer Library "libgstreamer-1.0:0.2407.0" Private Enum GST_STATE_VOID_PENDING = 0, GST_STATE_NULL, GST_STATE_READY, GST_STATE_PAUSED, GST_STATE_PLAYING ' gst_init (int *argc, char **argv[]) ' Initializes the GStreamer library, setting up internal path lists, registering built-in elements, and loading standard plugins. Private Extern gst_init(argc As Pointer, argv As Pointer) ' GstElement * gst_parse_launch (const gchar *pipeline_description, GError **error) ' Create a new pipeline based on command line syntax. Private Extern gst_parse_launch(description As String, GError As Pointer) As Pointer ' GstStateChangeReturn gst_element_set_state(GstElement *element, GstState state) ' Sets the state of the element. Private Extern gst_element_set_state(gstelement As Pointer, state As Integer) As Integer ' void gst_object_unref(gpointer object) ' Decrements the reference count on object. Private Extern gst_object_unref(gobject As Pointer) Public Sub Button1_Click() gst_init(0, 0) ' Questa pipeline consente di registrare in un file audio-video OGG: video = gst_parse_launch("ximagesrc xid=0x00 ! video/x-raw,framerate=1/1 ! videoconvert ! queue ! theoraenc ! queue ! " & "mux. alsasrc ! audio/x-raw,rate=22050,channels=1,depth=8 ! queue ! audioconvert ! queue ! " & "vorbisenc ! queue ! mux. oggmux name=mux ! filesink location=/tmp/prova.ogg", 0) ' Avvia la ripresa audio-video: gst_element_set_state(video, GST_STATE_PLAYING) End Public Sub Button2_Click() ' Ferma la registrazione audio-video: gst_element_set_state(video, GST_STATE_NULL) gst_object_unref(video) Print "Registrazione video-audio fermata !" End