Saltar a contenido

Integración de flujos de cámaras RTSP en aplicaciones .NET

Video Capture SDK .Net VideoCaptureCoreX VideoCaptureCore

Soporte multiplataforma

El motor VideoCaptureCoreX funciona en Windows, macOS, Linux, Android e iOS vía GStreamer; el motor clásico VideoCaptureCore es solo Windows. Consulta la matriz de soporte de plataformas para detalles de códecs y aceleración por hardware, y la guía de despliegue en Linux para la configuración en Ubuntu / NVIDIA Jetson / Raspberry Pi.

Configurar fuentes de cámaras RTSP estándar

Implementar flujos de cámaras RTSP en tus aplicaciones .NET proporciona acceso flexible a cámaras de red y flujos de video. Esta capacidad permite monitorización en tiempo real, funcionalidades de vigilancia y procesamiento de video directamente dentro de tu aplicación.

Para opciones de conexión adicionales y protocolos alternativos, consulta nuestra documentación detallada de cámaras IP, que cubre un amplio rango de enfoques de integración de cámaras.

// Crear el objeto de configuración de fuente RTSP
var rtsp = await RTSPSourceSettings.CreateAsync(new Uri("rtsp://192.168.1.1:554/live"), "login", "password", true /*¿capturar audio?*/);

// Asignar la fuente al objeto VideoCaptureCoreX
VideoCapture1.Video_Source = rtsp;

Optimización para streaming RTSP de baja latencia

La baja latencia es crítica para muchas aplicaciones en tiempo real, incluyendo monitorización de seguridad, sistemas interactivos y transmisión en vivo. Nuestro SDK proporciona configuraciones especializadas para minimizar el retraso entre la captura y la visualización.

Nuestro SDK incluye un modo dedicado específicamente diseñado para streaming RTSP de baja latencia. Cuando está configurado correctamente, este modo típicamente alcanza latencias por debajo de 250 milisegundos, lo que lo hace ideal para aplicaciones sensibles al tiempo.

// Crear el objeto de configuración de fuente.
var settings = new IPCameraSourceSettings();

// Configurar dirección IP, nombre de usuario, contraseña, etc.
// ...

// Establecer el modo RTSP de baja latencia.
settings.Type = IPSourceEngine.RTSP_LowLatency;

// Establecer modo UDP o TCP.
settings.RTSP_LowLatency_UseUDP = false; // true para usar UDP, false para usar TCP

// Asignar la fuente al objeto VideoCaptureCore.
VideoCapture1.IP_Camera_Source = settings;

Modo de baja latencia (~150 ms)

VideoCaptureCoreX incluye un modo de baja latencia que reduce el búfer de jitter RTSP de 500 ms por defecto a 150 ms. Establezca Latency en 150 ms o menos para un búfer aún más pequeño. Úselo para vigilancia en tiempo real, monitorización interactiva y aplicaciones de seguridad.

// Crear configuración de fuente RTSP
var rtsp = await RTSPSourceSettings.CreateAsync(
    new Uri("rtsp://192.168.1.100:554/stream"), 
    "admin", 
    "password", 
    true); // habilitar audio

// Habilitar modo de baja latencia — búfer de jitter de 150 ms (500 ms por defecto)
rtsp.LowLatencyMode = true;

// Asignar la fuente a VideoCaptureCoreX
VideoCapture1.Video_Source = rtsp;

Cómo funciona: - Establece el búfer de jitter RTSP a 150 ms (frente a los 500 ms por defecto) - Optimiza el buffering interno de la cola (máximo 2 fotogramas) - Deshabilita el reordenamiento de paquetes para minimizar el retraso - Compromiso: optimiza velocidad sobre estabilidad

Cuándo usarlo: - ✓ Vigilancia y monitorización en tiempo real - ✓ Sistemas de seguridad en vivo - ✓ Aplicaciones de video interactivas - ✓ Sistemas de control remoto - ✗ Grabación en redes inestables (usa el modo predeterminado) - ✗ Captura para archivado a largo plazo (usa el modo predeterminado)

Configuración avanzada:

Para un control ajustado, puedes configurar manualmente los parámetros de latencia:

var rtsp = await RTSPSourceSettings.CreateAsync(uri, login, password, audioEnabled);

// Configuración manual de baja latencia
rtsp.Latency = TimeSpan.FromMilliseconds(50);  // Tamaño de búfer personalizado
rtsp.BufferMode = RTSPBufferMode.None;          // Sin buffering de jitter
rtsp.DropOnLatency = false;                     // No descartar fotogramas

Ejemplos de implementación y aplicaciones de referencia

Estos proyectos de ejemplo demuestran patrones prácticos de implementación RTSP y pueden servir como puntos de partida para tu propio desarrollo. Revisar estos ejemplos te ayudará a comprender las mejores prácticas para la integración RTSP.

Solución de problemas en conexiones RTSP

Cuando trabajas con cámaras RTSP, puedes encontrarte con problemas de conectividad relacionados con la configuración de red, los ajustes del firewall o la autenticación. Estos son los factores clave a considerar:

  • Verifica la conectividad de red entre tu aplicación y la cámara
  • Asegúrate de proporcionar las credenciales de autenticación correctas
  • Comprueba si hay firewalls bloqueando los puertos requeridos (típicamente 554 para RTSP)
  • Considera usar TCP en lugar de UDP si experimentas pérdida de paquetes
  • Prueba los flujos de cámara con VLC o herramientas similares para aislar problemas específicos de la aplicación
  • Si VLC reproduce el stream pero la vista previa se congela o termina a los ~60 segundos, fuerza TCP y, si no basta, envía keep-alives GET_PARAMETER:

    rtsp.AllowedProtocols = RTSPSourceProtocol.TCP;
    rtsp.ForceCustomKeepAlive = true;
    

    ForceCustomKeepAlive está desactivado por defecto. La demo RTSP Preview expone ambos controles (Auto / TCP / UDP y la casilla Force custom keep-alive).

¿Necesitas la URL RTSP para tu cámara? Explora nuestro directorio de marcas de cámaras IP para URLs RTSP específicas por marca y ejemplos de conexión.

Documentación relacionada