Reduzca la latencia con FFplay para codificadores HDMI | Exvist Support

Preguntas frecuentes: Reducir la latencia con FFplay for Codificador

Guía paso a paso para reducir la latencia con FFplay

1. 1. 1. Instalar FFmpeg y FFplay

Asegúrese de que FFmpeg (que incluye FFplay) esté instalado en su sistema. Puede comprobar si está instalado ejecutando:
  1. ffplay -versión
Si no está instalado, puede descargar e instalar FFmpeg desde elsitio oficialo utilizar un gestor de paquetes comoaptocervezabasado en su sistema operativo.

2. 2. 2. Abrir FFplay con RTSP Stream

Comienza ejecutando FFplay con tu URL de flujo RTSP:
  1. ffplay rtsp://192.168.1.120:554/en vivo/1_0
Reemplazarrtsp://192.168.1.120:554/en vivo/1_0con la URL RTSP real de su codificador de vídeo.

3. 3. 3. Ajuste el tamaño del búfer

Reduzca el tamaño predeterminado del búfer para minimizar el retraso. Utilice la bandera -rtsp_transport para seleccionar el protocolo de transporte (TCP o UDP). Por lo general, el UDP resulta en una menor latencia.
Ejemplo de comando:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analización 0 -probesize 32 rtsp://192.168.1.120:554/live/1_0
Explicación:
  1. -rtsp_transport udp: Forza el transporte UDP, que generalmente es menor latencia que el TCP.
  2. -fflags nobuffer: Deshabilita el búfer para reducir la latencia.
  3. -análisis 0: Limita el tiempo que FFplay pasa analizando la secuencia, ayudando a comenzar la reproducción más rápido.
  4. -probesize 32: Limita la cantidad de datos utilizados para investigar el flujo, lo que también reduce la latencia.

4. 4. 4. Ajuste el retraso en la salida de vídeo

Utilice la bandera -sync para ajustar la sincronización de vídeo. Establecerlo en video obliga a FFplay a sincronizarse con la transmisión de vídeo, lo que puede ayudar a reducir la latencia.
Ejemplo de comando:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analizadouration 0 -probesize 32 -sync video rtsp://192.168.1.120:554/live/1_0

5. 5. 5. Reduzca el amortiguador de vídeo y audio

Deshabilite o minimice la reproducción de audio con -vn (sin vídeo) o ajuste los tamaños de búfer de audio utilizando -an (sin audio) si el audio no es necesario para la prueba.
Ejemplo:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analización 0 -probesize 32 -sync video -an rtsp://192.168.1.120:554/live/1_0

6. 6. 6. Opciones de decodificación fina

Agregue opciones para optimizar el rendimiento de decodificación y minimizar la latencia. Por ejemplo:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analización 0 -probesize 32 -sync video -an -flags low_delay rtsp://192.168.1.120:554/live/1_0

7. 7. 7. Optimizaciones adicionales (opcional)

Puede sintonizar aún más FFplay mediante el uso de banderas -x y -y para especificar el tamaño de la ventana de vídeo, y -framedrop para desechar marcos si no se pueden procesar lo suficientemente rápido:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analización 0 -probesize 32 -sync video -an -framedrop -flags low_delay -x 640 -y 360 rtsp://192.168.1.120:554/live/1_000
Explicación:
  1. -framedrop: Dispara marcos cuando el sistema no puede mantenerse al día con la decodificación, reduciendo el búfer.
  2. -x 640 -y 360: Especifica la resolución para reproducir el video, reduciendo la carga de trabajo de decodificación.

Ejemplo de mando final

  1. ffplay -rtsp_transport udp -fflags nobuffer -analización 0 -probesize 32 -sync video -an -framedrop -flags low_delay -x 640 -y 360 rtsp://192.168.1.120:554/live/1_000

8. 8. 8. Monitorear latencia

Después de la configuración, supervise la reproducción para observar la reducción de latencia. Puede utilizar herramientas como FFprobe para medir la latencia en tiempo real inspeccionando los detalles del flujo.
Ejemplo de comando FFprobe para comprobar las estadísticas del arroyo:
  1. ffprobe -v quiet -print_format json -show_streams rtsp://192.168.1.120:554/live/1_0
Mediante el uso de los comandos anteriores y ajustar las diversas banderas, puede reducir eficazmente la latencia al probar el flujo RTSP desde su codificador de vídeo.

Guía paso a paso para reducir aún más la latencia con FFplay

Si está experimentando una mayor latencia después de seguir las instrucciones proporcionadas, podría haber varias razones por las que eso está sucediendo. Estas son algunas de las posibles causas y formas de abordarlas:

1. 1. 1. Configuración de amortiguación (ajuste incorrecto del amortiguador)

Los-fflags nobufferla bandera está destinada a minimizar el búfer, pero en algunos casos, esto puede conducir a la inestabilidad o a una mayor latencia, especialmente si las condiciones de la red no son ideales. FFplay puede tener dificultades para procesar marcos sin problemas sin suficiente amortiguador, causando retrasos adicionales en la reproducción.

Solución: Trate de ajustar la estrategia de amortiguación. En lugar de desactivar completamente el amortiguador, puede utilizar un ajuste de amortiguador más conservador o eliminar el-fflags nobufferbandera:

  1. ffplay -rtsp_transport udp -analización 0 -probesize 32 -sync video rtsp://192.168.1.120:554/live/1_0

2. 2. 2. Protocolo de transporte RTSP (UDP vs TCP)

Cambiar aUdpsuele ser más rápido que TCP para la transmisión RTSP, pero puede resultar en pérdida de paquetes o jitter bajo ciertas condiciones de red, lo que hace que el decodificador retrase el procesamiento. Si la red no es estable, utilizandoUdppuede aumentar inadvertidamente la latencia a medida que FFplay intenta compensar los paquetes perdidos o dañados.

Solución: Prueba conTcptransportar y ver si la latencia mejora. Usar el-rtsp_transport tcpbandera para forzar TCP:
ffplay -rtsp_transport tcp -analización 0 -probesize 32 -sync video rtsp://192.168.1.120:554/live/1_0

3. 3. 3. Caída del marco

Los-framedropbandera le dice a FFplay que deseche los marcos si no es capaz de decodificarlos a tiempo, lo que debería disminuir la latencia. Sin embargo, si se eliminan demasiados fotogramas, esto puede provocar mayores retrasos, ya que FFplay puede tardar más tiempo en recuperarse y resincronizarse.

Solución: Si la caída del fotograma es excesiva, intente eliminar el-framedropbandera o reducir su impacto:
  1. ffplay -rtsp_transport udp -analización 0 -probesize 32 -sync video rtsp://192.168.1.120:554/live/1_0
Alternativamente, puede intentar ajustar el comportamiento -framedrop para ver si ayuda a reducir el retraso:
  1. ffplay -framedrop 0 -rtsp_transport udp -analización 0 -probesize 32 -sync video rtsp://192.168.1.120:554/live/1_0

4. 4. 4. Condiciones de red y Jitter

LosUdpel transporte puede no ser ideal en una red de alta latencia o inestable. UDP no garantiza la entrega de paquetes, lo que puede provocar retrasos en el jitter y amortiguación en el lado del cliente. Aunque el UDP puede reducir la latencia en condiciones de red perfectas, a menudo causa más problemas cuando hay inestabilidades de red o congestión.

Solución: Pruebe con una red estable y menos congestionada, o vuelva aTcpsi su red tiene alta jitter o pérdida de paquetes.

5. 5. 5. Sobrecarga de decodificador

Si el-flags low_delayla bandera se utiliza junto con grandes flujos de vídeo o resoluciones más altas, podría conducir a una sobrecarga de decodificador donde FFplay intenta decodificar fotogramas demasiado rápido, lo que puede introducir más retrasos en el procesamiento.

Solución: Reduzca la resolución del video para aligerar la carga en el decodificador o apague banderas de baja latencia si está causando problemas:
  1. ffplay -rtsp_transport udp -analización 0 -probesize 32 -sync video - un rtsp://192.168.1.120:554/live/1_0

6. 6. 6. Análisis y pruebas excesivos

Las banderas-análisis 0y-probesize 32están destinados a limitar la cantidad de tiempo que FFplay analizando el flujo y el tamaño de la sonda inicial del paquete, lo que debería acelerar el inicio. Sin embargo, si estos valores son demasiado restrictivos, podría obligar a FFplay a operar con información incompleta, lo que conduce a retrasos en la sincronización o a una mayor latencia general mientras trata de recuperarse de los datos faltantes.

Solución: Aumentar el-analizadouracióny-probesizevalores ligeramente para permitir que FFplay recopile más datos durante el inicio sin aumentar significativamente la latencia:
  1. ffplay -rtsp_transport udp -analizadouration 5000000 -probesize 50000 -sync video rtsp://192.168.1.120:554/live/1_0

7. 7. 7. Modo de sincronización de vídeo

Los-sync videobandera le dice a FFplay que sincronice marcos de vídeo con precisión, lo que puede causar retrasos cuando necesita esperar el siguiente fotograma. Si la velocidad de fotogramas de salida del codificador no se alinea bien con las expectativas de sincronización de FFplay, esto puede conducir a retrasos innecesarios.

Solución: Puedes experimentar con la sincronización conaudio audio audioomarca de tiempoen lugar de video:
  1. ffplay -rtsp_transport udp -analización 0 -probesize 32 -sync audio rtsp://192.168.1.120:554/live/1_0
Alternativamente, eliminar la bandera -sync podría ayudar a:
  1. ffplay -rtsp_transport udp -analización 0 -probesize 32 rtsp://192.168.1.120:554/live/1_0

Conclusión:

Para reducir la latencia, experimente con el equilibrio de la estrategia de amortiguación, el protocolo de transporte y la configuración de decodificación. UDP generalmente ofrece una latencia más baja, pero requiere una red estable, mientras que TCP podría ser más fiable si la calidad de red es incoherente. Ajuste de los tamaños de búfer, el comportamiento de ensayo y la configuración de caída de fotogramas también puede ayudar a mitigar la latencia excesiva. Siga probando diferentes configuraciones para encontrar la configuración óptima para su caso de uso específico.
    • Related Articles

    • Preguntas frecuentes: RTSP del codificador

      ¿Qué es la transmisión RTSP? RTSP (Real Time Streaming Protocol) es un protocolo de control de red diseñado para controlar la entrega de datos multimedia, como audio y vídeo, a través de una red. Permite la transmisión fluida de contenido de audio y ...
    • Preguntas frecuentes: Vídeo del codificador

      Vídeo: Corriente principal/Sub Stream ¿Cuál es la diferencia entre el flujo principal y el subcorriente, y cómo debo elegir entre ellos? La configuración de vídeo en el codificador típicamente incluye dos tipos de flujo:corriente principalysub ...
    • Preguntas frecuentes: Audio del codificador

      Entrada de audio ¿Cuáles son las opciones de entrada de audio disponibles para los codificadores HDMI? Los codificadores HDMI suelen ofrecer tres opciones de entrada de audio, incluye: Entrada de audio HDMI- Esto permite al codificador extraer audio ...
    • Preguntas frecuentes: SRT del codificador

      ¿Qué es el Protocolo SRT? SRT (Secure Reliable Transport) es un protocolo de transmisión de vídeo de código abierto diseñado para una transmisión segura y fiable de contenido de vídeo a través de redes poco fiables o impredecibles. Proporciona una ...
    • Preguntas frecuentes: TCP/IP del codificador

      ¿Qué es TCP/IP? TCP/IP (Transmission Control Protocol/Internet Protocol) es un conjunto de protocolos de comunicación utilizados para interconectar dispositivos de red en Internet. Permite la transmisión de datos entre computadoras y dispositivos a ...