본문 바로가기
소프트웨어개발

RTSP 401 Unauthorized 해결: CCTV 계정·Digest 인증·URL 점검 순서

by 아빠띠띠뽀 2026. 9. 14.

RTSP 주소를 VLC나 관제 프로그램에 넣었는데 401 Unauthorized가 반복된다면 카메라가 연결 요청은 받았지만 인증을 완료하지 못한 상태입니다. 첫 번째 401은 Digest 인증 정보를 알려 주는 정상 응답일 수 있습니다. 문제는 아이디와 비밀번호를 보낸 다음에도 401이 계속되는 경우입니다.

이때 비밀번호만 반복해서 바꾸기보다 ‘주소와 포트 → RTSP 권한이 있는 계정 → 인증 방식 → 장치 시간 → 전송과 코덱’ 순서로 나누어 확인해야 원인을 빨리 찾을 수 있습니다.

1. RTSP 401은 언제 정상이고 언제 오류일까?

RTSP 서버는 인증하지 않은 DESCRIBE 요청을 받으면 401 응답과 함께 WWW-Authenticate 정보를 보낼 수 있습니다. 클라이언트는 서버가 제공한 realm·nonce와 사용자 정보를 이용해 인증 응답을 만든 뒤 요청을 다시 보냅니다.

ONVIF 실시간 스트리밍 시험 규격은 Profile T 장치가 익명 RTSP 요청에 401과 Digest 인증 헤더를 반환하는지 확인합니다. 따라서 로그에 401이 한 번 보였다는 사실만으로 비밀번호 오류라고 단정하면 안 됩니다.

증상 가능한 원인 먼저 확인할 것
401 뒤 영상 재생 정상 인증 도전·응답 추가 조치 불필요
401 반복 계정·암호·권한·인증 불일치 카메라 RTSP 사용자
404 Not Found 스트림 경로·채널 오류 제조사 RTSP 경로
연결 시간 초과 IP·포트·방화벽·라우팅 네트워크 도달 여부
연결 후 화면 없음 전송·코덱·디코더 문제 패킷 수신과 코덱

직접 제작한 RTSP 401 인증 흐름도. 첫 401은 Digest 인증 정보를 전달하는 정상 절차일 수 있으며, 자격 증명을 넣은 뒤에도 401이 반복될 때 계정·권한·시간·URL을 확인합니다.

2. 주소·포트·계정을 먼저 분리해서 확인하세요

RTSP의 기본 포트로 554를 많이 사용하지만 제조사 설정에 따라 다른 포트일 수 있습니다. 웹 관리 화면에 로그인되는 계정이 RTSP 시청 권한까지 갖는다고 가정하지 마세요. ONVIF 사용자나 영상 시청 전용 사용자를 별도로 만드는 제품도 있습니다.

스트림 경로는 모델·채널·메인 스트림과 서브 스트림에 따라 달라집니다. 주소를 추측하지 말고 카메라 설명서, 제조사 검색 도구 또는 ONVIF로 반환된 스트림 URI를 확인하세요. MediaMTX의 RTSP 카메라 연결 안내처럼 중계 서버도 카메라가 제공하는 정확한 주소를 입력해야 합니다.

비밀번호에 @, :, /, # 같은 문자가 있으면 URL 안에서 구분 기호로 해석될 수 있습니다. 가능하면 프로그램의 별도 사용자·비밀번호 입력란을 사용하세요. URL에 넣어야 한다면 해당 클라이언트가 요구하는 퍼센트 인코딩 방식을 확인하고, 실제 계정 정보를 화면 캡처나 로그에 남기지 마세요.

3. Digest 인증이 반복해서 실패할 때 볼 항목

Digest 인증은 서버가 보낸 nonce와 요청 정보 등을 조합하므로 카메라와 클라이언트가 같은 방식으로 요청을 처리해야 합니다. 오래된 펌웨어나 클라이언트가 지원하는 인증 방식이 다르면 올바른 계정이어도 실패할 수 있습니다.

  • 사용자 이름의 대소문자: 카메라가 구분하는지 확인합니다.
  • RTSP 시청 권한: 관리자 화면 로그인 권한과 영상 권한을 분리해 확인합니다.
  • 장치 시간: 카메라 시간·시간대·NTP 동기화를 점검합니다.
  • 동시 접속 제한: 다른 NVR이나 앱의 세션을 잠시 줄여 봅니다.
  • 펌웨어와 클라이언트: 인증 호환성 수정 내역을 확인합니다.

보안을 이유로 익명 재생이나 약한 인증을 켜서 우회하기보다, 카메라를 외부망에 직접 노출하지 않고 전용망·방화벽·중계 서버를 통해 접근하도록 구성하는 편이 안전합니다.

4. 404와 시간 초과는 401과 접근 방법이 다릅니다

404는 카메라까지 연결됐지만 요청한 스트림 경로가 없을 가능성이 큽니다. 채널 번호, 프로필 이름, 메인·서브 스트림 구분과 경로의 대소문자를 확인하세요. 펌웨어 업데이트 후 경로 규칙이 바뀌었는지도 제품 문서에서 확인합니다.

시간 초과는 인증보다 앞단의 문제입니다. 클라이언트에서 카메라 IP까지 라우팅되는지, RTSP 포트가 열려 있는지, 방화벽과 VLAN 정책이 허용하는지부터 봅니다. 외부에서 접속할 때 포트 포워딩으로 카메라를 바로 공개하지 말고 VPN이나 보호된 중계 구성을 검토하세요.

인증은 성공했지만 영상이 멈춘다면 TCP·UDP 전송 방식, RTP 패킷 수신, 코덱과 디코더를 확인합니다. FFmpeg RTSP 공식 문서에는 TCP와 UDP 전송 선택 항목이 정리되어 있습니다.

5. FFprobe와 VLC로 단계별 확인하기

먼저 같은 네트워크에서 VLC의 ‘네트워크 스트림 열기’로 제조사가 제공한 주소를 확인합니다. 프로그램이 계정 입력 창을 제공하면 URL에 자격 증명을 넣지 않고 그 입력 창을 사용하는 것이 좋습니다.

명령줄에서는 다음과 같이 TCP 전송으로 스트림 정보를 확인할 수 있습니다. 아래 값은 실제 정보가 아닌 자리표시자입니다.

ffprobe -rtsp_transport tcp -v error \
  "rtsp://USER:PASSWORD@CAMERA_IP:554/STREAM_PATH"

401이면 계정·권한·Digest 처리를, 404이면 경로를, 시간 초과면 IP·포트·방화벽을 우선합니다. 스트림 정보와 H.264·H.265 코덱이 출력되면 인증과 미디어 정보 조회 단계까지 성공한 것입니다. 운영 계정의 비밀번호를 셸 기록이나 공유 로그에 남기지 않도록 테스트용 계정과 안전한 입력 방식을 사용하세요.

6. 현장에서 사용하는 점검 순서

  1. 카메라 웹 관리 화면에서 RTSP 서비스와 포트를 확인합니다.
  2. RTSP 권한이 있는 테스트 사용자를 만듭니다.
  3. 제조사 문서나 ONVIF 응답에서 정확한 스트림 URI를 확인합니다.
  4. 같은 네트워크의 VLC나 FFprobe로 TCP 전송을 먼저 시험합니다.
  5. 401·404·시간 초과 중 어떤 단계에서 실패하는지 기록합니다.
  6. 성공 후 UDP, NVR, 중계 서버, 브라우저 경로를 하나씩 추가합니다.

처음부터 브라우저 화면까지 한 번에 시험하면 인증, 중계와 디코딩 문제를 구분하기 어렵습니다. 카메라 원본 수신이 확인된 뒤 다음 구간으로 이동하세요.

7. 자주 묻는 질문

브라우저에서 401이 보이면 카메라 비밀번호 문제인가요?
브라우저 앞의 중계 서버나 웹 API가 반환한 401일 수도 있습니다. 개발자 도구의 요청 대상과 카메라 RTSP 로그를 구분해 확인해야 합니다.

VLC에서는 나오는데 NVR에서만 401이 발생합니다.
NVR의 인증 방식, 사용자 이름 문자 처리, URL 인코딩과 저장된 이전 자격 증명을 확인하세요. 카메라·NVR 펌웨어 조합의 호환성도 점검합니다.

ONVIF 검색은 되는데 RTSP는 401입니다.
장치 검색과 영상 스트림 인증은 별도 단계입니다. ONVIF로 반환된 URI, 미디어 프로필과 RTSP 사용자의 권한을 확인하세요.

ONVIF와 RTSP의 역할은 ONVIF·RTSP 차이 글, 전체 연결 구조는 CCTV 브라우저 연결 구조에서 이어서 볼 수 있습니다.

자료 확인일: 2026년 9월 14일. ONVIF·FFmpeg·MediaMTX 공식 문서를 바탕으로 작성했으며 제조사별 경로와 인증 구현은 실제 제품 문서를 우선합니다.