1. Stream의 다양한 프로토콜
정리는 참조 페이지에 잘 나와있다!
https://jee00609.github.io/live%20stream/Live-Stream/
데이터
인터넷에서 실시간 Stream 영상을 보는 것은 일반적인 간단한 데이터를 주고 받는 것이 아니라 실시간으로 전송되는 바이너리 데이터를 기반으로 이루어진다. 그리고 이 바이너리 데이터는 보통 '영상' 부분과 '오디오' 부분이 분리되어서 전송된다. 그러면 이걸 받는 쪽에서 합쳐서(Muxing) 타임라인에 맞게 영상-오디오를 동기화해서 재생하는 방식이다.
프로토콜
HTTP 같은 규약을 통해서 이루어지는 것이 아니라 RTSP(Real-Time Streaming Protocol), RTMP(Real-Time Messaging Protocol), HLS(Http Live Streaming) 등의 규약으로 이루어진다. 다만 HLS는 애플에서 2009년 개발한 프로토콜로, HTTP 방식으로도 Stream 파일을 전송할 수 있도록 했으며, 보통 10초 단위의 짧은 영상을 계속해서 다운로드 받게 하는 방식으로 동작한다.
물론 HLS는 기본적인 방식을 한 번 더 wrapping한 것이라서, 속도면에서는 RTSP 같은 방식이 좋다.
2. WCS와 CCTV 접속 방식
WCS
WCS(Web Call Server)는 Flashphoner라는 회사에서 제공하는 서버 이름이다. WebRTC 기술을 기반으로해서 실시간 비디오 영상 등을 전송하는 기능을 제공하는 서버라고 보면 된다. 이 서버를 infra로 실시간 스트리밍을 위한 서버를 구축할 수 있다. 다만 띄우는만큼 계속 돈을 지불해야한다.
CCTV
CCTV도 인터넷 공유기처럼 설치 시, id, pw를 설정할 수 있고 고유의 주소를 설정할 수 있다. 보통 rtsp 프로토콜을 사용하여 아래 양식의 URL 주소를 갖는다.
rtsp://[username:password@]ip_address[:rtsp_port]/server_URL[[?param1=val1[?param2=val2]…[?paramN=valN]]
여기서 username, password는 CCTV를 설치 후 소프트웨어로 공유기처럼 지정하는 ID와 PW이다.
그리고 이 주소의 값들을 완벽히 안다면, 이 값들을 복사하여 VLC Player(영상 재생 프로그램)에서 [파일] > [네트워크 열기]에서 URL을 입력하여 바로 CCTV의 화면을 조회할 수 있다!
회사 테크 리드 jy님, devOps is님 감사합니다.
'Programming-[Backend] > Network, etc' 카테고리의 다른 글
패킷분석 - Wireshark 강의 정리(+ Fiddler 간단히만) (0) | 2024.02.03 |
---|---|
국가별, 언어별 코드 표준: ISO 3166-1, ISO639-1, Accept-Language header (0) | 2023.11.16 |
[TIL][link] HTTP 상태 코드별 내용 정리 (0) | 2023.09.08 |
ngrok: 로컬 서버 인터넷 연결, 콜백 api 예제(AWS 람다) (0) | 2022.10.27 |