파이썬과 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 입니다. 거의 비슷한 틀입니다. 이제는 제가 위 예제코드를 어떤 제품을 기준으로 작성한지 아실겁니다.
'개발' 카테고리의 다른 글
파이썬 DB연결 (pymssql - insert select update 예제) (0) | 2022.05.10 |
---|---|
파이썬 TCP 통신 UDP 통신 예제 (소켓 프로그래밍) (0) | 2022.04.19 |
파이썬 영상저장 (opencv를 이용한 ip카메라 영상저장) (0) | 2022.03.02 |
파이썬 문자인식 숫자인식 해보자(pytesseract-OCR,deep-text-recognition) (0) | 2022.02.24 |
파이썬 가상 컴포트 열기 시리얼통신 (0) | 2022.01.27 |
댓글