2012-03-14 13 views
5

Estoy escribiendo una aplicación de grabación de webcam usando VLCj API. Necesito ayuda con respecto a la detección de movimiento en la transmisión de video desde la cámara web. Si no se detecta movimiento en la transmisión de video, la grabación se detendrá.detección de movimiento VLCj

He tratado de usar la -filtro --video = movimiento en cadena sout pero que no detectado ningún movimiento.

Mi cadena de 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" }; 

la espera de su respuesta. Gracias por adelantado.

Respuesta

3

Pasa la matriz de opciones de comando de VLC incorrectamente; que debería ser como en el ejemplo siguiente (cada opción de comando VLC debe tratarse como un elemento de matriz):

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 cadena de opciones enumeradas más adelante no trabajar desde dos comandos VLC se incluyen juntos en una cadena; :sout el comando y el comando --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" 

Debería ser de la siguiente manera:

":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

Gracias por la respuesta. Lo intenté pero no funciona para mí. Ahora la secuencia no se guarda ni siquiera en un archivo. Espero que hayas leído lo que estoy tratando de crear una aplicación VLCj multiplataforma que grabará desde la cámara web y detendrá la grabación cuando no haya movimiento detectado en el video. –

+0

@iltafkhalid Extraño ... funciona para mí usando VLCJ 1.2.0 y libVLC 1.1.11. Veo cajas de detección de movimiento en un video reproducido usando el método VLCJ 'playMedia (mrl, options)' con la opción ': video-filter = motion' incluida. – ecle

+0

@iltafkhalid El código de muestra anterior es solo mi ejemplo. Debe adaptarlo de acuerdo con sus requisitos, que debe incluir su opción ': sout' para que funcione – ecle

Cuestiones relacionadas