기본 스트림 수정의 RTP 오류: RTSP의 패킷 손실, 카메라 정지 및 매크로 블록 진단
카메라 정지, 끊김 및 깨짐 현상을 유발하는 RTP 패킷 손실 문제를 해결합니다. RTP 시퀀스 번호, RTCP 보고서 및 코덱 데이터를 사용하여 진단합니다. 단계별 RTSP 스트림 디버깅.
IP 카메라 스트림이 정지되거나 끊기거나 H.264 디코더 오류가 발생하는 경우 일반적으로 눈에 띄는 증상은 늦게 나타납니다. 원인은 RTP 시퀀스 초기에 나타나는 경우가 많습니다. 누락된 RTP 패킷은 이후 프레임이 의존하는 비디오 데이터 조각을 제거할 수 있습니다. 플레이어가 디코드 오류를 기록할 때쯤에는 네트워크 증거가 이미 사라질 수 있습니다.
그렇기 때문에 RTP 문제 해결은 임의의 카메라 설정을 변경하기 전에 시퀀스 번호, 타임스탬프, 페이로드 유형, 마커 동작 및 코덱 구조부터 시작해야 합니다.
RTP 시퀀스 간격이 알려주는 것
각 RTP 패킷은 시퀀스 번호를 전달합니다. 꾸준한 스트림의 경우 시퀀스가 예측 가능하게 진행되어야 합니다. 간격은 하나 이상의 패킷이 도착하지 않았음을 의미합니다. 뒤로 점프는 재정렬, 중복 전달, 다시 시작 동작 또는 캡처 경계 문제를 나타낼 수 있습니다.
실용적인 질문은 다음과 같습니다.
- 누락된 패킷은 몇 개입니까?
- 손실이 한 번 발생했습니까, 아니면 반복적으로 발생했습니까?
- 키 프레임 근처에서 발생했나요?
- RTCP 발신자 보고가 계속되었나요?
- RTSP 제어 세션이 계속 살아 있었나요?
- 간격 후에 디코더 오류가 발생했습니까?
이 증거를 통해 네트워크 손실과 카메라 페이로드 버그를 구분할 수 있습니다. 시퀀스 간격이 시각적 손상과 일치하면 사례가 더욱 강력해집니다. 시퀀스 연속성은 완벽하지만 페이로드 형식이 잘못된 경우 진단은 인코더 또는 패킷화 동작으로 이동합니다.
H.264 및 H.265가 손실에 민감한 이유
압축된 비디오는 독립적인 이미지 목록이 아닙니다. 인터 프레임은 참조 프레임에 따라 달라집니다. 작은 패킷 손실은 즉각적인 패킷보다 더 큰 손상을 줄 수 있습니다. H.264 및 H.265 스트림은 SPS 및 PPS와 같은 매개변수 세트에 의존할 수도 있으며 H.265는 VPS를 추가합니다. 누락되거나, 지연되거나, 손상된 경우 관대한 시청자가 복구하는 것처럼 보이더라도 다운스트림 소프트웨어는 스트림을 거부할 수 있습니다.
일반적인 증상은 다음과 같습니다.
- 매크로블록 또는 블록화된 아티팩트
- 정지 후 갑자기 따라잡음
- "참조 누락" 스타일 디코더 오류
- 스트림이 시작되지만 프레임이 디코드 준비 상태가 되지 않습니다.
- 모션이 많은 장면 이후 반복되는 손상
이러한 증상만으로는 충분하지 않습니다. RTP 및 코덱 증거를 통해 이를 실행할 수 있습니다.
지터와 손실을 혼동하지 마십시오
지터는 패킷이 고르지 못한 타이밍에 도착함을 의미합니다. 손실은 패킷이 도착하지 않음을 의미합니다. 둘 다 사용자에게 눈에 띄는 끊김 현상을 일으킬 수 있지만 서로 다른 수정이 필요합니다.
지터의 경우 타임스탬프 진행 및 도착 시간을 검사합니다. 손실이 있는 경우 시퀀스 간격을 검사합니다. 카메라 펌웨어 버그의 경우 페이로드 일관성과 NAL 구조를 검사하세요. "스트림이 고르지 않습니다"라고만 표시된 현장 보고서는 네트워크 엔지니어, 펌웨어 엔지니어 또는 VMS 공급업체에 무엇을 변경해야 하는지 알려주지 않습니다.
더 나은 보고서는 다음과 같이 말합니다.
- N에서 N+M까지의 RTP 시퀀스 간격
- 동일한 지점에서 관찰된 타임스탬프 점프
- RTSP 세션이 설정된 상태로 유지됨
- 페이로드 유형이 안정적으로 유지됨
- H.264 슬라이스가 불완전했습니다.
- 다음 IDR 프레임 복원 디코더 준비 상태
이는 훨씬 더 강력한 지원 아티팩트입니다.
UDP와 TCP는 서로 다른 이야기를 전합니다
RTSP는 일반적으로 UDP 또는 인터리브된 TCP를 통해 RTP를 전송합니다. UDP는 패킷 손실을 직접 노출합니다. TCP는 차단된 UDP 경로를 사라지게 할 수 있지만 대기 시간이 발생할 수 있으며 의도한 배포 경로가 정상임을 증명하지 못합니다.
진단을 위해 두 모드를 비교하십시오.
- 시퀀스 간격으로 인해 UDP가 실패합니다. 네트워크 손실, 스위치, Wi-Fi, 방화벽, NAT 또는 카메라 전송 동작을 검사합니다.
- UDP는 RTP를 수신하지 않습니다. 협상된 포트와 방화벽 정책을 검사합니다.
- TCP는 작동하지만 UDP는 실패합니다. 코덱이 아닌 네트워크 경로가 의심됩니다.
- 두 모드 모두 잘못된 페이로드(카메라 인코더, 스트림 프로필 또는 펌웨어로 의심됨)를 표시합니다.
전송 선택은 단순한 플레이어 체크박스가 아니라 증거입니다.
RTSP 검사기가 문제를 해결하는 방법
RTSP Inspector는 재생 대신 프로토콜 증거에 중점을 둡니다. 지원 사례를 재생하고 설명할 수 있도록 RTSP, RTP, RTCP 및 코덱 관찰을 캡처합니다. VLC, FFmpeg, NVR, 클라우드 수집 서비스 및 분석 파이프라인에서 동일한 스트림이 다르게 동작하는 경우 이는 중요합니다.
목표는 모든 스트림을 로컬에서 수정할 수 있다고 주장하는 것이 아닙니다. 목표는 결함의 소유자를 식별하는 것입니다.
- 네트워크 경로
- 카메라 구성
- 펌웨어 패킷화
- 다운스트림 디코더 지원
- 지원되지 않는 코덱 경계
- 예상되는 UDP/TCP 배포 불일치
RTP 손실은 단순한 비디오 증상이 아닙니다. 측정 가능한 프로토콜 이벤트입니다. 측정이 완료되면 문제 해결에 대한 대화가 훨씬 짧아집니다.