RTSP 대 UDP: RTSP가 연결되지만 비디오가 검은색인 이유 — 방화벽, NAT 및 VPN에 의해 ​​RTP가 차단됨

제어가 연결되지만 UDP RTP가 차단될 때 RTSP에 비디오가 표시되지 않는 문제를 수정합니다. 방화벽 규칙, RTSP 프로토콜 포트, NAT 통과, VPN RTP 손실, TCP 인터리브 폴백 및 카메라 UDP 소스 포트를 다룹니다.

rtsp UDP가 차단되었습니다., RTP 방화벽, rtsp 영상 없음, NAT RTSP 카메라, UDP 포트 범위, TCP 인터리브, RTSP 진단

가장 심각한 RTSP 문제 중 하나는 설명하기 간단합니다. 카메라가 연결되지만 비디오가 없습니다. 대부분의 경우 RTSP 제어는 TCP를 통해 작동하지만 UDP RTP 미디어 패킷은 클라이언트에 도달하지 않습니다. 사용자는 성공적인 로그인, SDP, 'PLAY 200 OK'를 확인한 후 시간 초과를 확인합니다. "RTSP 연결은 되지만 비디오 없음", "RTP UDP 차단 방화벽", "RTSP는 VPN을 통하지 않고 LAN에서 작동", "카메라 RTSP NAT 비디오 없음" 및 "RTSP TCP 인터리브 수정"과 같은 검색은 모두 이 계층 분할을 가리킵니다.

RTSP는 하나의 데이터 스트림이 아닙니다. 제어 채널과 미디어 채널은 서로 다른 전송 경로를 사용할 수 있습니다. 제어 채널이 작동하고 미디어 경로가 실패하면 플레이어는 코덱 실패와 동일한 검은색 화면을 표시할 수 있습니다. 패킷 증거가 다릅니다.

RTSP 검사기는 RTSP 제어 성공과 RTP 미디어 전달을 분리하므로 유용합니다.

통제작업이 미디어작업을 뜻하는 것은 아니다

일반적인 UDP RTP 흐름은 다음과 같습니다.

  1. 클라이언트는 카메라 포트 554에 대한 RTSP TCP 연결을 엽니다.
  2. 클라이언트가 'DESCRIBE'를 보냅니다.
  3. 카메라가 SDP를 반환합니다.
  4. 클라이언트는 UDP 클라이언트 포트와 함께 'SETUP'을 보냅니다.
  5. 카메라는 UDP 서버 포트를 반환합니다.
  6. 클라이언트가 'PLAY'를 보냅니다.
  7. 카메라는 RTP 패킷을 클라이언트 UDP 포트로 보냅니다.

1~6단계가 성공하고 7단계가 실패하면 스트림은 RTSP 로그인 문제가 아닙니다. 미디어 경로 문제입니다.

전송 헤더에 항구 계획이 표시됩니다.

'SETUP' 요청에는 다음이 포함될 수 있습니다.

Transport: RTP/AVP;unicast;client_port=50000-50001

The camera may answer:

Transport: RTP/AVP;unicast;client_port=50000-50001;server_port=6970-6971

카메라는 RTP/RTCP를 클라이언트의 UDP 포트로 보내야 합니다. 방화벽은 해당 트래픽을 허용해야 합니다. NAT 장치는 이를 올바르게 매핑해야 합니다. VPN은 이를 전달해야 합니다. 그렇지 않은 경우 미디어가 침묵하는 동안 RTSP 제어가 정상으로 나타날 수 있습니다.

일반적인 방화벽 및 NAT 오류

일반적인 원인은 다음과 같습니다.

  • 방화벽은 TCP 554를 허용하지만 UDP RTP 포트 범위는 차단합니다.
  • NAT는 RTSP 포트를 전달하지만 RTP 포트는 전달하지 않습니다.
  • 카메라는 예상치 못한 소스 포트에서 RTP를 보냅니다.
  • 클라이언트는 카메라에서 연결할 수 없는 개인 UDP 포트를 알립니다.
  • VPN은 TCP를 허용하지만 UDP는 삭제합니다.
  • 기업 방화벽은 높은 UDP 포트를 차단합니다.
  • 카메라가 이중 NAT 뒤에 있습니다.
  • RTP 패킷이 잘못된 인터페이스로 반환됩니다.

눈에 띄는 증상은 'PLAY 후 영상이 나오지 않는 경우'인 경우가 많습니다.

TCP 인터리브가 종종 작동하는 이유

TCP를 통한 RTSP 인터리브는 RTSP TCP 연결 내에서 RTP 및 RTCP를 전달합니다. 이렇게 하면 별도의 UDP 핀홀이 방지됩니다.

UDP 모드가 실패하고 TCP 인터리브가 작동한다면 이는 코덱과 카메라가 괜찮다는 강력한 증거입니다. 문제는 UDP 미디어 전송일 가능성이 높습니다.

그러나 TCP 인터리브에는 채널 매핑을 포함한 자체 구문 분석 요구 사항이 있습니다. 이는 UDP 경로 문제에 대한 해결 방법이지 모든 레이어가 정상이라는 증거는 아닙니다.

RTCP는 경로를 증명하는 데 도움이 될 수 있습니다.

RTP가 차단되었지만 RTCP가 도착하거나 그 반대인 경우 포트 쌍을 검사하십시오. 일부 방화벽은 두 방향을 다르게 처리합니다. RTCP 수신기 보고서에는 미디어가 부분적으로 도착하는 경우 패킷 손실과 지터도 표시될 수 있습니다.

기록:

  • RTP 패킷 수.
  • RTCP 패킷 수.
  • RTP 소스 IP 및 포트.
  • RTP 대상 IP 및 포트.
  • 시퀀스 번호 차이.
  • PLAY부터 첫 번째 패킷까지의 시간입니다.

디버그 체크리스트

다음 워크플로를 사용하세요.

  1. RTSP 'DESCRIBE', 'SETUP', 'PLAY'가 성공했는지 확인하세요.
  2. 'Transport' 헤더와 클라이언트/서버 UDP 포트를 검사하세요.
  3. 'PLAY' 이후에 RTP 패킷이 도착하는지 확인하세요.
  4. RTCP 패킷이 도착하는지 확인하세요.
  5. LAN 테스트와 VPN/WAN 테스트를 비교하세요.
  6. TCP 인터리브 전송을 테스트합니다.
  7. UDP RTP 포트 범위에 대한 방화벽 규칙을 확인하세요.
  8. NAT 포트 전달 및 소스 포트 동작을 확인하십시오.
  9. 클라이언트가 도달 가능한 UDP 포트를 광고했는지 확인합니다.
  10. RTP 페이로드가 실제로 도착할 때까지 코덱을 디버깅하지 마십시오.

최종 진단

RTSP가 연결되지만 UDP RTP가 차단되면 미디어가 도착하지 않아도 카메라에 완벽하게 연결할 수 있습니다. 해결 방법은 UDP 포트 연결 가능성, NAT 동작, 방화벽 정책, VPN 규칙 또는 TCP 인터리브로 전환하는 것입니다.

RTSP 검사기는 RTSP 제어 순서와 RTP 패킷 증거를 함께 표시하여 도움을 주므로 "비디오 없음"은 구체적인 전송 진단이 됩니다.