|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Aug 2004
Messaggi: 23
|
[DirectShow] Impostare il frame rate della webcam
Salve a tutti.......
Io sto scrivendo un applicazione per acquisire video e immagini da diverse webcam, per fare ciò mi sono avvalso dell'aiuto delle librerie DirectShow. Dopo un po di giorni di lavoro sono riuscito nel mio intento, è ho realizzato un strutture del tipo: |Source Filter|-->| Smart Tee| cap |-->| Grab Filter |---->|Null Render | L'ultima cosa che mi è rimasta da fere è quello di controllare il frame rate della webcam, che interfaccia devo usare e che cosa devo impostare nell'interfaccia. Premetto il Source filter lo realizzato con un WDM Video Capture Filter |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
per il frame rate devi usare: m_pMediaPosition->put_Rate(fFrequenza); per poter usare il code sopra devi inizializzare: IMediaPosition* m_pMediaPosition; m_pGraph->QueryInterface(IID_IMediaPosition, (void**)&m_pMediaPosition); se digiti su google "directshow put_rate" trovi nell'msdn i metodi che ti servono. put_rate va da 0 a 2 come frame rate. Ti dico subito che a runtime questo metodo per lo meno con il sound non funziona bene cioè non aggiorna di continuo ma fà delle bizze. Solo dopo avere finito di digitare il tasto che incrementa o decrementa il put_rate si ha la giusta frequenza del rate per il video mi sembra se non ricordo male è uguale al sound. Dato che lo uso ed usato per il sound alla fine ho dovuto usare Directsound per il sound proprio per aumentare e diminuire la frequenza a runtime perfettamente. Ma ripeto per il video con directshow dovrebbe anche andare bene in fondo si tratta solo di ridurre o aumentare la frequenza del rate non certamente in modo continuo come fosse il sound del motore di una moto passando dalla frequnza di giri minimi alla massima 200000mhz del sound di una moto legato appunto ai giri motore. ciao |
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Aug 2004
Messaggi: 23
|
Grazie dell'indicazione....proverò la tua soluzone..........
Però sono riuscito a modificare il frame rate della webcam cpn la seguente sintassi: hr=m_pCapture->FindInterface(NULL, NULL, m_pSourceFilter, IID_IAMStreamConfig, (void**)&m_pStreamConfig); //------------------------------------------------------- //Get the stream format hr=m_pStreamConfig->GetFormat(&m_pMediaType); //------------------------------------------------------- //Set the stream Format //RGB 24 bit m_pVih = (VIDEOINFOHEADER*)m_pMediaType->pbFormat; m_pMediaType->pbFormat=(BYTE *)m_pVih; actualTime=m_pVih->AvgTimePerFrame; newTime=(long)(10000000/frameForSec); m_pVih->AvgTimePerFrame=newTime; m_pMediaType->pbFormat=(BYTE *)m_pVih; hr=m_pStreamConfig->SetFormat(m_pMediaType); che ne dici di qquesta soluzione???? |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
se per te tutto ok... direi ottimo!!!
ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:50.



















