2012-03-14 13 views
5

Sto scrivendo un'applicazione di registrazione webcam utilizzando l'API VLCj. Ho bisogno di aiuto per il rilevamento del movimento nel flusso video dalla webcam. Se non viene rilevato alcun movimento nel flusso video, la registrazione si interrompe.rilevamento del movimento VLCj

Ho provato ad utilizzare il --video-filter = movimento in sout catena ma che non ha rilevato alcun movimento.

mia catena Sout:

String[] options = { 
        ":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion} --video-filter=motion",":input-slave=alsa://hw:0,0" }; 

In attesa della vostra risposta. Grazie in anticipo.

risposta

3

Si passa in modo scorretto l'array di stringhe di opzioni del comando VLC; dovrebbe essere come nell'esempio seguente (ogni opzione comando VLC dovrebbe trattato come un elemento di matrice):

String[] options = { 
    ":rtsp-mcast", 
    ":sharpen-sigma=2.0", 
    ":video-filter=motion", 
    ":blur-factor=127", 
    ":ipv4-timeout=3000", 
    ":no-video-title-show", 
    ":loop", 
    ":sout-all", 
    ":sout-keep" 
}; 

La stringa opzione seguente non funziona poiché due comandi VLC sono compresi insieme in una stringa; il comando e il comando :sout--video-filter=motion:

":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion} --video-filter=motion" 

Esso dovrebbe essere la seguente:

":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion}", 
"--video-filter=motion" 
+0

Grazie per la risposta. L'ho provato ma non funziona per me. Ora lo stream non è nemmeno salvato in un file. Spero tu abbia letto quello che sto cercando di creare un'app VLCj multipiattaforma che registrerà dalla webcam e interromperà la registrazione quando non viene rilevato alcun movimento nel video. –

+0

@iltafkhalid Strano ... funziona per me usando VLCJ 1.2.0 e libVLC 1.1.11. Vedo scatole di rilevamento del movimento in un video riprodotto usando il metodo VLCJ 'playMedia (mrl, options)' con l'opzione ': video-filter = motion' inclusa. – ecle

+0

@iltafkhalid Il codice di esempio sopra riportato è solo il mio esempio. Devi adattarlo in base alle tue esigenze che dovrebbero includere l'opzione ': sout' per farlo funzionare – ecle

Problemi correlati