Estoy investigando un problema de procesamiento de imágenes para la detección en tiempo real de ciertos escenarios. Mi objetivo es que el video en vivo llegue como marcos Motion JPEG en mi código Java de alguna manera.¿Cuál es el mejor método para capturar imágenes de un dispositivo de video en vivo para que las use una aplicación basada en Java?
Estoy familiarizado con el Java Media Framework y, lamentablemente, creo que podemos considerar que se trata de un API efectivamente muerto. También estoy familiarizado con Axis boxes y, si bien realmente me gusta su solución, agradecería cualquier comentario crítico sobre mis puntos de interés específicos.
Esto es como defino "mejor" para el propósito de esta discusión:
- Latencia - si estoy controlando la cámara utilizando esta secuencia de vídeo, me gustaría mantener mi latencia de ida y vuelta en menos de 100 milisegundos si es posible. Eso se mide como el tiempo entre mi entrada de control y el momento en que veo el cambio visible. EDITAR algo más tarde: otra cosa a tener en cuenta es que el control de la cámara probablemente sea una combinación de manual y automático (activadores de eventos). Necesitamos ver esas imágenes de inmediato, incluso si el feed de alta calidad está archivado por separado.
- Sin costo/fuente abierta es mejor que no es gratis.
- Parámetros ajustables del códec - Necesito poder sintonizar el códec para ciertas situaciones. Algunas veces, una transmisión de alta velocidad y baja resolución es realmente más fácil de procesar.
- "Integración" con Java: ¿cuánto problema tiene conectar esta solución con mi código? ¿Estoy enviando paquetes por un socket? Golpear URLs? ¿Instalando combinaciones de Direct3D/JNI?
- Windows/Linux/both? - Preferiría una solución agnóstica del sistema operativo porque tengo que entregar varios tipos de SO, pero puede haber una solución que sea óptima para uno pero no para el otro.
NOTA: Conozco otros códecs de captura de imágenes/video y ese no es el objetivo de esta pregunta. Estoy específicamente no interesado en la transmisión de API (por ejemplo, MPEG4) debido a la pérdida de precisión de cuadro. Sin embargo, si hay una solución a mi pregunta que entregue otra transmisión de datos con precisión de cuadro, repítalo.
Seguimiento de esta pregunta: en este punto, estoy muy inclinado a comprar electrodomésticos como el Axis video encoders que tratar de capturar el video en el software o en la PC directamente. Sin embargo, si alguien tiene alternativas, me encantaría escucharlas.
La última actualización parece haber sido hace bastante tiempo: http://sourceforge.net/project/showfiles.php?group_id=161490 Una API que ha estado muerta desde 2007 probablemente no nos ayude. Gracias de todos modos. –