Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Lux - 11 Aprile 2008, 10:25:00

Titolo: Utilizzo del movie box
Inserito da: Lux - 11 Aprile 2008, 10:25:00
Ciao, tentando di imparare sempre più mi sono messo a studiare alcuni esempi di programmi fatti in gambas, e siccome la mia mente è distorta invece di vedere i primi(quelli più semplici) sono partito dagli ultimi, in particolare quello della webcam... Partendo dal presupposto che non mi si avvia inquanto mi dice che manca una libreria ovvero la gb.sdl, io l'ho installata da Synaptic ma niente( Ho installato Gambas2.5 scaricato dal sito ufficiale come mai manca la libreria?)
Comunque per non portarla sulle lunghe, mi sono aperto un form e all'interno gli ho messo un moviebox(che ovviamente è diverso dal componente mediaplayer del visual basic dove li basta che inserivo l'indirizzo del file video e tutto andava) qui invece la cosa forse non va cosi(lo so ragiono in maniera distorta...dannato windows!!!!), una mano?
Titolo: Re: Utilizzo del movie box
Inserito da: fsurfing - 11 Aprile 2008, 19:17:32
se la memoria non mi tradisce moviebox viene usata solo per gestire file gif  e mng
non filmati video :-P
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 12 Aprile 2008, 11:01:44
Cacchio!!!!!!
E per i filmati??????? Come si fa?
Continuo a leggere la guida di gambas, ma è per la versione 1...non la 2....
Titolo: Re: Utilizzo del movie box
Inserito da: fsurfing - 12 Aprile 2008, 11:27:36
quarda l' esempio movie player
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 12 Aprile 2008, 17:12:40
Allora, sto guardando l'esempio mywebcam, e per visualizzare il video della webcam usa un picturebox.
Ho notato che usa un timer, forse per cambiare le immagini dato che credo che la webcam visualizzi varie immagini una dopo l'altra molto rapidamente quindi il timer serve per "aggiornare" le immagini...
Il punto che non ho capito è questo: nel codice il picturebox non viene mai nominato, salvo una mia svista, ora la webcam si trova in /dev/video0
ma io come faccio a fargli capire che deve importare dalla webcam nel picturebox????
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 15 Aprile 2008, 16:25:55
Nessuno mi da un aiutino per capire come funziona mywebcam integrato come esempio in gambas???
Help :cry:
Titolo: Re: Utilizzo del movie box
Inserito da: leo72 - 16 Aprile 2008, 00:19:23
Da una rapida occhiata al codice, imposta un oggetto VideoDevice collegato ad un flusso di streaming proveniente da una sorgente video e prende da quel flusso un'immagine ogni 10 millisecondi.
Simula la riproduzione video mediante l'aggiornamento continuo dell'immagine presa dal flusso.
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 16 Aprile 2008, 16:51:32
Ok, ma perchè quando io imposto "private hwebcam AS VideoDevice" mi da errore?
Titolo: Re: Utilizzo del movie box
Inserito da: fsurfing - 16 Aprile 2008, 19:39:48
hai selezionato il componente gb.v4l?
Titolo: Re: Utilizzo del movie box
Inserito da: fsurfing - 16 Aprile 2008, 19:40:19
hai selezionato il componente gb.v4l?

esattamente che errore ti da?
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 16 Aprile 2008, 23:07:47
Non so cosa sia il componente gb.v4l....
l'errore è questo:Unknown identifier:VideoDevice alla linea 2 in FMain.class
ciao e grazie!!!! :-D
Titolo: Re: Utilizzo del movie box
Inserito da: fsurfing - 17 Aprile 2008, 00:35:11
si si devi aggiungere il componente gb.v4l al progetto!


1) clicca su menu  progetto di gambas
2)clicca su scheda componenti nella finestra che appare
3) selezione la casella gb.V4l

a questo punto non dovrebbe più darti quell' errore.
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 17 Aprile 2008, 16:16:29
ok, ma ho un problema: il mio progetto è stato sviluppato con le librerie gtk e il componente che mi hai suggerito tu chiede le qt e le due sono incompatibili....
come risolvo?
Titolo: Re: Utilizzo del movie box
Inserito da: fsurfing - 17 Aprile 2008, 22:34:34
utilizzi le qt per tutto il progetto! :-)
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 17 Aprile 2008, 23:16:35
Ok, è andato. ho inserito anche un timer ed ora riesco a vedere dalla mia webcam!!!!
Mi spiegheresti cosa vuol dire "try"....
Titolo: Re: Utilizzo del movie box
Inserito da: leo72 - 17 Aprile 2008, 23:33:07
TRY è la trasposizione in Gambas dell'Assert del C.
In pratica chiedi all'interprete di "provare" (try significa appunto provare) una istruzione od un comando: se si verifica un errore, questo verrà restituito dall'oggetto ERROR, a cui puoi accedere subito dopo il Try, senza che la tua applicazione vada in crash se si verifica qualcosa che non va.
Esempio:
Codice: [Seleziona]

TRY una_istruzione
IF ERROR THEN
  .....istruzioni per gestire l'errore
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 18 Aprile 2008, 11:37:17
Grazie mille a tutti :hammer:
Ora riesco a vedere ciò che riprende la mia webcam, al timer ( per l'aggiornamento dell'immagine) ho impostato un tempo di 10, è troppo? è poco? insomma, un piccolo suggerimento?
Questo perchè quando riprendo un oggetto e lo muovo velocemente mi sembra distorto nel senso che è come se si allungasse per un attimo.ho pensato che l'aggiornamento dell'immagine è forse troppo lenta e quindi mi creava questo "effetto".
Secondo voi?

PS: Aggiungo una nuova domanda sempre in questo topic in modo da non aprirne uno nuovo e contribuire all'intasamento del servare(se sbaglio ditemelo e ne apro uno nuovo) In pratica ho inserito un listbox, ora so come inserire oggetti mediante il menù delle proprietà, ma non ho capito come fare per inserirli via codice...

Ciao a tutti!!!
Titolo: Re: Utilizzo del movie box
Inserito da: leo72 - 18 Aprile 2008, 12:35:51
1)
L'effetto che dici dipende dal refresh della videocamera. In genere quelle di medio-basso prezzo hanno refresh non molto elevati, al max. non superiori ai 25 fps, che oltretutto calano all'aumento della risoluzione.
25 fps vuol dire 25 immagini prese al secondo, cioè una ogni 40 ms. Aumentare il tempo del timer non ti porta nessun vantaggio, secondo me: campioneresti più volte lo stesso fotogramma, con l'effetto inderiderato, però, di rallentare l'esecuzione del tuo programma.

2)
Per inserire un elemento in una ListBox si usa il metodo Add:
Codice: [Seleziona]

MiaListBox.Add(testo_da_aggiungere [,eventuale_indice])
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 18 Aprile 2008, 22:06:58
@Leo72
Grazie, ora, continuando con l'aggiunta di oggetti nel listbox avrei bisogno di chiedere un'altra cosa, seguendo il metodo da te indicatomi, aggiungo un'aggetto(ovvero un testo) e quando ci clicco su il mio programma fa qualcosa, ora il punto è questo, vorrei poter far questo, all'avvio mi dovrebbe dire se vi sono videodevice collegati, ad esempio la mia webcam che si trova in /dev/video0, quindi se la trova la inserisce nel listbox altrimenti no.
Io avevo pensato di scrivere cosi:
Codice: [Seleziona]
TRY File.OPEN("/dev/video0")
     ListBox1.Add("/dev/video0")
     IF ERROR THEN
     Message("nessun video device")
     END IF

Ma ovviamente non va, dato che all'apertura mi dice nessun video device e poi lo addiziona lo stesso nel listbox...credo perchè forse non devo usare file open e poi perchè gli ho detto di aggiungere lo stesso nel listbox il testo...
forse risolvo se aggiungo un else e sposto l'addizione al listbox...ma comunque il "fileopen" non va....
difficile imparare....soprattutto per uno che non ha mai studiato informatica....
Ciao :cry:
Titolo: Re: Utilizzo del movie box
Inserito da: fsurfing - 18 Aprile 2008, 22:49:23
potresti provare con
Codice: [Seleziona]


dim i as integer
dim percorso as string



for i=0 to 6

  percorso="/dev/video" & i

    if exist(percorso)  then
       ListBox1.Add(percorso)  
    endif

next

if listbox1.count=0 then

   
   Message("nessun video device")


END IF


in questo modo cerca device da 0 a 5 e se esistono li pone nella list box

se non ve ne sono messaggio di avviso
Titolo: Re: Utilizzo del movie box
Inserito da: Lux - 20 Aprile 2008, 00:53:09
@fsurfing
Grazie, funziona!!
Ora, visto che sto imparando e che su google non ho trovato nulla di veramente comprensibile avrei altre domandine:
1)la cattura video da parte di webcam, schede tv su linux avviene mediante un codec? che si chiama video4linux o video4linux2(nuova versione), ora mi spieghereste come funziona e cosa fa esattamente?
2)se volessi fare la stessa cosa soltanto che userei come dispositivo la mia telecamera collegata ad una porta firewire come dovrei fare?
Mi sempbra d'aver capito che non devo più usare il video4linux ma bensi un codec di cui non ricordo il nome che ha a che fare con lib1394 o qualcosa del genere....
Mi potreste chiarire le idee?
sono confuso....
PS ho visyo i sorgenti di Kino ma quello è scritto in c/c++ non ho ben capito...
Ci sono molte differenze tra Gambas e il c++??? Perdonate la domanda stupida...
Ciao.
Titolo: Re: Utilizzo del movie box
Inserito da: md9327 - 20 Aprile 2008, 16:57:37
Per la prima, non sò risponderti a causa della mia scarsissima esperienza. Ad ogni modo, la cosa sicuramente da fare è scoprire che librerie ti servono (1394 è per il firewire) ed installarle nel sistema; sul come utilizzarle, però, io taccio. :-(

Per la seconda posso dirti che gambas e C/C++ sono due mondi a parte, e il secondo parecchio complesso. Tanto per dirti, Gambas è scritto in C/C++ !
Se vuoi provare a leggerti i sorgenti di Kino, puoi farlo, ma se non conosci il C, te lo sconsiglio vivamente.
Titolo: Re: Utilizzo del movie box
Inserito da: leo72 - 20 Aprile 2008, 23:17:25
V4L (o V4L2 visto che siamo alla seconda versione principale) è essenzialmente un'API, vale a dire un software che serve a pilotare un dispositivo video collegato al PC. Un'API è essenzialmente un driver, e va utilizzato tramite un altro programma che utilizza le sue funzioni per collegarsi alla periferica.

Un codec è invece un codificatore che serve a registrare il flusso prelevato dalla sorgente in un formato leggibile dal lettore multimediale del sistema (ad esempio, Divx, Avi, Mpeg ecc...).

Ti rimando a questo wiki, molto interessante:
http://www.linuxtv.org/v4lwiki/index.php/Main_Page
Titolo: Re: Utilizzo del movie box
Inserito da: - 01 Agosto 2008, 23:36:51
Aggiornamenti per quanto riguarda il firewire ????

Con kino e dvgrab vedo funzionare tranquillamente il mio box ... se provo con gambas e l'esempio in questione del topic mettendo "/dev/raw1394" nada de nada .....
Titolo: Re: Utilizzo del movie box
Inserito da: - 06 Agosto 2008, 20:42:42
Sarebbe possibile secondo voi pigliare lo stdout di un programma ( dvgrab, flusso video ) e trasformarlo in immagine ???

Qualcosa del tipo

SHELL "dvgrab - " ...... ?????

oppure, se siete ferrati in linux generico

Mi dite come faccio a far credere a una applicazione generica che il flusso video uscente dal programma è un device video vero e proprio ??

Ho provato :
mkfifo /fifo
dvgrab - | /fifo
e poi con un prog ho provato ad aprirlo, ma nn viene visto come device video.