Estoy tratando de capturar imágenes de una cámara IP en tiempo real. La transmisión funciona perfectamente en VLC, pero el cvQueryFrame()
de OpenCV parece desordenar y corromper las imágenes entrantes hasta el punto de no reconocimiento.Problemas de captura de imagen OpenCV/FFMpeg
Una vez más, la captura desde el archivo funciona bien, pero no es una transmisión en vivo. En caso de que haga una diferencia, estoy usando una URL de conexión rtsp; También probé esto con dos modelos diferentes de cámaras (diferentes marcas) y el problema persiste.
Además, el códec (estoy asumiendo) está produciendo varios errores del siguiente tipo: Error at MB: 1746
y concealing 6000 DC, 6000 AC, 6000 MV errors
.
¿Qué puedo hacer?
Actualización: El primer error en la secuencia es siempre cannot parallelize deblocking type 1, decoding such frames in sequential order
Actualización 2: bien, parece que OpenCV/FFMPEG tiene un problema con los flujos RTSP/h264. He intentado con la biblioteca Qt Phonon, que tampoco funciona, y proporcioné la biblioteca Live555 una visión general rápida. Esto último parece funcionar, en el sentido de que todos dicen que sí, y el ejemplo de la aplicación (OpenRTSP) de hecho reproduce bien mi secuencia. Sin embargo, para ser honesto, entender el código de Live555 parece un asunto largo que no me puedo permitir en este momento. Salvo cualquier otra alternativa, supongo que tendré que seguir esa ruta.
¿Hay alguna otra solución que se le ocurra?
Actualización 3: Tengo la prueba cliente RTSP desde el código de Live555 para trabajar, así que sé cómo extraer h264 información de la trama de una corriente, pero ahora tengo que volver a combinar esa información trama en tramas que se pueden visualizar reales, los cuales no parece algo sencillo! ¿Alguien familiarizado con Live555 sabe cómo hacer esto? Gracias.
¿Qué versión de OpenCV estás usando? ¿en Linux o en Windows? – Mohammad
OpenCV 2.3.1 en Win 7. –
'cvQueryFrame()' puede devolver una imagen NULL. Asegúrate de probar esto antes de hacer algo con él. – karlphillip