
cctv 영상은 보통 rtsp 혹은 rtmp 프로토콜을 사용한다.
아직까지 웹 클라이언트에서 다이렉트로 영상을 보여주는 방법은 없다.
그래서 스트리밍 서버를 사용해야한다.
가장 대중적인 방법은 hls (http live streaming) 방식이다.
영상을 n초 단위로 나눠서 저장한다음 순차적으로 보내주는 것이다.
영상 끊김이 적다.
라이브 스트리밍의 경우 계속 분할 파일이 저장되기 때문에 주기적으로 삭제해줘야한다.
-> 분할 파일 최대 유지개수를 다음과같은 옵션 명령어로 정할 수 있다.
-hls_list_size 20
opencv 모듈을 사용하거나 웹 소켓으로 정적 이미지를 계속 보내주는 방법도 있는데 버벅거리고 성능이 좋지 않다.
그리고 웹 소켓 방식은 경로가 아닌 포트로 영상을 식별하기 때문에 여러 포트를 열어놔야해서 보안상 좋지 않은 것 같다(추측).
ffmpeg 혹은 vlc 프로그램으로 비디오 파일 혹은 cctv 스트림을 변환할 수 있다.
파이썬, c#. nodejs 중 무엇을 스트리밍 서버로 사용할지 고민하다가 nodejs를 사용해보기로 했다.