Discordancia de canales entrelazados RTSP sobre TCP: corrección de la asignación de canales RTP/RTCP y sin problemas de vídeo

Cómo diagnosticar discordancia de canales entrelazados RTSP sobre TCP, mapeo de canales RTP y RTCP, encabezados de transporte, intercalado = 0-1, sin video y fallas en el análisis de medios de la cámara.

rtsp sobre tcp, rtp intercalado, el canal rtp no coincide, canal rtcp, encabezado de transporte rtsp, sin vídeo, diagnóstico rtsp

El transporte entrelazado RTSP sobre TCP se utiliza a menudo cuando UDP RTP está bloqueado por firewalls, NAT, VPN o rutas de retransmisión en la nube. Puede hacer que la transmisión de una cámara funcione a través de redes donde UDP fallaría. Pero introduce otra clase de problemas: "la falta de coincidencia de canales entrelazados. La sesión RTSP se conecta. DESCRIBIR devuelve SDP. SETUP tiene éxito. PLAY tiene éxito. Los bytes de medios llegan a la conexión TCP. Luego, el cliente no muestra vídeo ni audio, canal RTP desconocido, fotograma entrelazado con formato incorrecto o paquetes RTCP analizados como RTP." Los usuarios buscan "RTSP sobre TCP intercalado sin video", "no coinciden los canales RTP intercalados", "RTSP intercalado 0-1", "asignación de canales RTSP TCP" y "error de análisis de RTP sobre RTSP" cuando el canal de control funciona pero falla el análisis de medios.

RTSP Inspector es útil aquí porque la evidencia importante se encuentra en el encabezado Transport y los datos entrelazados con marco $ en la conexión RTSP TCP.

¿Qué significa el transporte intercalado?

Con el transporte UDP, el control RTSP utiliza TCP y los medios RTP/RTCP utilizan puertos UDP separados. Con el transporte entrelazado TCP, los paquetes de medios se integran dentro de la conexión TCP RTSP.

La respuesta SETUP puede contener:

Transport: RTP/AVP/TCP;unicast;interleaved=0-1

That means RTP and RTCP for that track should be carried on interleaved channels 0 and 1. Interleaved frames use a $ marker, a channel byte, a length, and then the RTP or RTCP packet.

If the client maps channels incorrectly, it may parse RTP as RTCP, audio as video, or metadata as media.

Multiple tracks create more mappings

A camera with video and audio may return separate SETUP responses:

Video Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Audio Transport: RTP/AVP/TCP;unicast;interleaved=2-3

Ahora el cliente debe mapear:

  • Canal 0: vídeo RTP
  • Canal 1: vídeo RTCP
  • Canal 2: audio RTP
  • Canal 3: audio RTCP

Si el orden de configuración de audio y video cambia, las suposiciones codificadas se rompen. Si se agrega una pista de metadatos, las asignaciones de canales pueden cambiar nuevamente.

Síntomas comunes

Los problemas de canales entrelazados se ven así:

  • La sesión RTSP llega a "PLAY" pero el vídeo permanece en negro.
  • Llegan bytes RTP pero el analizador de carga útil los rechaza.
  • Los informes del remitente RTCP se analizan como medios.
  • Los paquetes de audio se envían al despacketizador de vídeo.
  • Los números de secuencia parecen imposibles.
  • El tipo de carga útil no coincide con el SDP de esa pista.
  • El cliente informa "paquete RTP no válido" o "canal entrelazado desconocido".

La red puede estar bien. Es posible que la cámara esté enviando medios. El cliente simplemente está leyendo la asignación de canales incorrecta.

El jefe de transporte es la autoridad.

No infieras la asignación de canales únicamente a partir del orden de las pistas. Utilice el encabezado "Transporte" devuelto por la cámara para cada "CONFIGURACIÓN".

Para cada pista, conserve:

  • URL de control de seguimiento.
  • Modo de transporte.
  • Par de canales entrelazados.
  • Tipo de carga útil de SDP.
  • Tipo de medio de SDP.

Luego compare los fotogramas entrelazados entrantes con ese mapeo.

Peculiaridades de la cámara y el proxy

Algunas cámaras se comportan de manera inconsistente:

  • Ignoran los números de canales entrelazados solicitados y asignan los suyos propios.
  • Devuelven interleaved=0-1 para múltiples pistas.
  • Envían RTCP en canales inesperados.
  • Omiten RTCP.
  • Un proxy reescribe "Transporte" pero no reescribe marcos multimedia.

Estos son exactamente los casos en los que una prueba exclusiva para jugadores esconde demasiado. El RTSP sin procesar y la evidencia del marco entrelazado son importantes.

Lista de verificación para la depuración de canales entrelazados

Utilice este flujo de trabajo:

  1. Capture SDP de DESCRIBE.
  2. Identifique cada pista de medios.
  3. Capture cada solicitud y respuesta de SETUP.
  4. Registre los encabezados de "Transporte" y los valores "intercalados =".
  5. Asigne números de canales para rastrear y función RTP/RTCP.
  6. Inspeccione las tramas $ entrantes y los bytes de canal.
  7. Compara los tipos de carga útil de RTP con los de SDP para esa pista.
  8. Compruebe si RTCP aparece en el canal impar esperado.
  9. Compruebe si las asignaciones de canales cambian después de volver a conectarse.
  10. Pruebe UDP solo después de comprender la asignación entrelazada de TCP.

Diagnóstico final

Los problemas entrelazados de RTSP sobre TCP no siempre son problemas de red. Si llegan los medios pero no aparece ningún video, inspeccione el mapeo de canales. El encabezado "Transporte" define qué canal entrelazado transporta cada flujo RTP y RTCP.

RTSP Inspector ayuda a exponer tanto el control RTSP como el encuadre de medios entrelazados, de modo que "RTSP se conecta pero no hay video" puede diagnosticarse como un problema de mapeo de canales en lugar de una suposición de códec o firewall.