Autore Topic: Utilizzo del movie box  (Letto 3303 volte)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Utilizzo del movie box
« Risposta #15 il: 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
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Utilizzo del movie box
« Risposta #16 il: 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!!!

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Utilizzo del movie box
« Risposta #17 il: 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])
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Utilizzo del movie box
« Risposta #18 il: 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:

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Utilizzo del movie box
« Risposta #19 il: 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

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Utilizzo del movie box
« Risposta #20 il: 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.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Utilizzo del movie box
« Risposta #21 il: 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.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Utilizzo del movie box
« Risposta #22 il: 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
Visita il mio sito personale: http://www.leonardomiliani.com

  • Visitatore
Re: Utilizzo del movie box
« Risposta #23 il: 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 .....

  • Visitatore
Re: Utilizzo del movie box
« Risposta #24 il: 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.