본문 바로가기
개발

파이썬 IP카메라 연동하기 OPENCV 사용(RTSP 정리)

by 화악 2022. 1. 25.
반응형

파이썬과 opencv 라이브러리를 사용하여 IP카메라에 접속하는 방법에 대해 소개할려고 합니다. 이중 각 IP카메라 별 rtsp 프로토콜을 이용하여 쉽게 화면 송출을 하는 코드를 작성 해봅시다. 이 포스팅은 파이썬 버전 3.8로 진행 하였습니다.

 


1. 코드

import cv2

cam=cv2.VideoCapture(rtsp://admin:admin123@192.168.29.30:554/cam/realmonitor?channel=1&subtype=1)

while True:
	
    _,img=cam.read()
    
    cv2.imshow("TEST",img)
    
    cv2.waitKey(1)

굉장히 간단합니다. opencv는 굉장히 간단하게 ip카메라의 영상을 얻을 수 있게 해줍니다. 웹캠같은경우 cv2.VideoCapture 함수의 괄호에 (0) 또는 (1)로 표시해주면 값을 받을 수 있습니다. imshow는 이미지를 출력 하는 부분이고 waitKey는 어떤 키값을 받을때까지 괄호 밀리초 만큼 기다리겠다는 의미입니다. 여기서 waitKey를 사용한 이유는 while 반복문을 돌렸서 과부하를 막기 위함입니다. 그래도 헷갈리는 부분이 있습니다. 네 여기서 조금 헷갈리는 부분은 딱 한가지 일겁니다.


2. RTSP

rtsp://admin:admin123@192.168.29.30:554/cam/realmonitor?channel=1&subtype=1

@뒤에는 ip주소  admin:admin123은 각각 id와 패스워드 그러면 뒤에 붙은 것들은 뭐일까? 자세하게 설명하면 길어지니 간단하게 설명하면 서브채널과 본채널 등등을 ip카메라에서 설정할 수 있습니다. 이는 ip카메라 주소에 접속하면 설정 칸에 어떤 화면을 송출할지등을 정할 수 있습니다. 이 프로토콜의 형식은 대부분의 회사 제품이 비슷하지만 조금씩은 다른경우가 있기 때문에 각 회사 제품마다 검색을 통하여 형식을 먼저 확인해야 합니다.

 

다후아 RTSP
한화테크윈 RTSP

 

각각 다후아 제품의 RTSP 와 한화테크윈 사 제품의 RTSP 입니다. 거의 비슷한 틀입니다. 이제는 제가 위 예제코드를 어떤 제품을 기준으로 작성한지 아실겁니다.

반응형

댓글