요약
SID(Session ID)가 무엇이며 SUNAPI에서 비디오 스트리밍 관련 명령어에 어떻게 사용하는지에 대해 설명합니다.
진단
Session ID는 네트워크 전문가에게는 기본 개념이지만, 그렇지 않은 사람들에게는 익숙하지 않습니다. 따라서 그 의미와 사용법에 대해 간단한 설명이 필요합니다.
우선 세션이 무엇인지 간략히 이해해 봅시다.
클라이언트의 HTTP 상태 정보를 서버에서 유지하는 기술을 세션(Session)이라고 합니다. 즉, NVR 또는 카메라에 접근한 사용자의 정보를 저장하는 것입니다. 이는 브라우저가 종료될 때까지 유지됩니다.
그렇다면 왜 세션이 필요할까요?
- 비연결성(Connectionless)
- 무상태성(Stateless)
이 두 가지는 HTTP의 잘 알려진 특징입니다.
비연결성은 통신 후 연결을 유지하지 않는 것을 의미합니다. 서버는 응답을 마치면 연결을 닫아 서버 자원 사용을 최소화하고 효율성을 높입니다.
무상태성은 서버가 클라이언트의 정보를 유지하지 않는다는 뜻으로, 응답의 멱등성과 서버 확장성(스케일 아웃)을 활용할 수 있습니다.
하지만 무상태 통신을 하는 서버는 클라이언트 요청이 인증되었는지 확인할 방법이 없으므로 매번 응답 전에 인증해야 합니다. 세션은 이러한 무상태성의 단점을 보완합니다. 즉, 세션이란 서버가 클라이언트의 상태를 기억하는 것을 의미하며, 이 개념을 세션이라고 부릅니다.
카메라나 NVR의 웹 뷰어를 열 때 ID와 비밀번호를 입력하여 인증합니다. 세션은 웹페이지가 변경될 때마다(예: 라이브 -> 설정) 인증할 필요를 없애줍니다.
브라우저(클라이언트)가 첫 요청(로그인)을 하면 서버는 브라우저 상태를 세션에 저장하고 세션 ID를 응답합니다. 이후 브라우저가 동일한 세션 ID로 요청하면 같은 사용자로 간주합니다.
따라서 사용자가 웹이나 VMS에서 NVR로부터 비디오를 스트리밍할 때 동일한 세션 ID를 사용하면, 다중 채널 비디오를 단일 사용자로서 표시할 수 있습니다.
원인 및 해결책
1. SUNAPI 문서 가이드
- RTSP URL에서 채널 정보와 세션 ID는 NVR에 중요하며, 카메라의 경우 채널 정보 대신 프로파일 이름이나 프로파일 번호가 중요합니다.
- 일반적으로 NVR은 라이브를 위한 세션 ID를 생성하고 스트림 URI를 얻은 후 LIVE RTSP 세션을 설정할 수 있습니다.
- 일반적으로 다음 유형의 세션이 지원됩니다:
- 오디오
- 비디오
- 메타데이터
- 백채널
- NVR에서는 동일한 세션 ID를 가진 모든 RTSP 연결이 하나의 세션으로 간주됩니다. (예: 16뷰 모드에서는 16개의 RTSP 연결 모두 동일한 세션 ID를 가짐)
- 동일한 세션 ID를 가진 모든 라이브 채널은 하나의 라이브 세션으로 간주됩니다.
- 세션 ID가 변경되지 않으면 스트리밍되는 비디오는 동일한 포맷(예: 시간, 프로파일 등)을 가집니다.
2. NVR 세션 수 규격
- NVR에서는 각 채널에 별도의 세션이 할당됩니다. 각 NVR에서 구성 가능한 최대 세션 수는 다음과 같습니다.
- 최대 라이브 세션 수
- 32채널 이상 NVR
- 유니캐스트 : (채널 수 / 4) × 유니캐스트 사용자 수
- 멀티캐스트 : (채널 수 / 4) × 멀티캐스트 사용자 수
- 32채널 이상 NVR
- 8 또는 16채널 NVR
- 유니캐스트 : (기본 채널 수 / 2) × 유니캐스트 사용자 수
- 멀티캐스트 : (기본 채널 수 / 2) × 멀티캐스트 사용자 수
- 8채널 미만 NVR
- 유니캐스트 : (기본 채널 수) × 유니캐스트 사용자 수
- 멀티캐스트 : (기본 채널 수) × 멀티캐스트 사용자 수
- 최대 검색 세션 수
- 동시 재생 수 × 최대 원격 사용자 수
- 예시
- 다중 채널 라이브 (8채널 NVR, 최대 유니캐스트 사용자 10명)
- 최대 세션 수 = (8 / 2) × 10 = 40
- 이는 단일 SID로 최대 80개의 라이브 멀티 스트림이 가능함을 의미합니다.
- 다중 채널 라이브 (8채널 NVR, 최대 유니캐스트 사용자 10명)
- 다중 채널 재생 (16채널(로컬), 최대 원격 사용자 3명)
- 최대 세션 수 = 16 × 3 = 48
- 이는 단일 SID로 최대 48개의 재생 멀티 스트림이 가능함을 의미합니다.
- 동일한 시간대의 영상만 동시에 재생할 수 있습니다.