CV2로 IPCAMERA 영상을 출력해보자

2022. 11. 16. 22:37·파이썬/OpenCV
반응형
cv2로 ipcamera를 연결하려면 rtsp 주소가 필요합니다.
여기서 RTSP란 Real Time Streaming Protocol의 약자로 스트리밍 미디어 서버를 컨트롤 하기위한 네트워크 프로토콜입니다.
RTSP 주소 알아보기

IPCAMERA(이하 카메라라고 칭함)가 부여 받은 아이피 주소를 알아야합니다.

카메라 제조사의 소프트웨어를 보시면 ip finder 프로그램을 제공합니다. 

192.168.0.48 이런 아이피 주소를 부여 받습니다(자신의 아이피 주소마다 상이함)

동영상플레이어로 주소열기(네트워크 스트림)하고 아래 예시의 주소를 입력하면 rtsp 접속이 가능합니다

rtsp 포트번호는 따로 설정하지 않으면 기본값이 554입니다

  • 한화 테크윈 : rstp://카메라IP:554/profile2/media.smp ( H.264 )
  • 한화 테크윈 : rtsp://카메라IP:554/profile1/media.smp( MPGE)
  • 세연테크(플렉스와치) : rtsp://카메라IP:554/cam0_0

동영상 플레이어로 접속하는 경우 아이디와 비밀번호를 요구하는 창이 뜹니다. 

파이썬 코드에서는 이런 창을 띄워서 아이디,비밀번호를 입력하기엔 복잡하니 미리 입력해둡시다

rtsp://id:pw@ip:port/cam0_0

ID와 PW는 기본적으로 admin admin 이나 root root로 설정되어 있습니다. (제가 사용해본 카메라는 그랬습니다)

그러면 이제 rtsp를 연결해 영상을 출력해봅시다
import cv2

class streaming():
    def __init__(self,ip,id,pw,rport):
        self.ip = ip
        self.id = id
        self.pw = pw
        self.rport = rport
        self.url = f'rtsp://{id}:{pw}@{ip}:{rport}/cam0_0'
    def video(self):
        cap = cv2.VideoCapture(self.url)
        while True:
            ret, frame = cap.read()
            cv2.imshow('ipcamera',frame)

            k = cv2.waitKey(1) & 0xff
            if k == 27 : break
        cap.release()
        cv2.destroyAllWindows()

test = streaming('192.168.0.48','root','root','554')
test.video

cv2로 rtsp 영상을 재생하는 클래스를 만들었습니다

객체 생성시 전달받은 인자들로 rtsp 주소를 만들었습니다

cap = cv2.VideoCapture(self.url)
rtsp로 카메라에 연결하는 부분입니다. 
ret, frame = cap.read()
카메라의 프레임을 받아오는 부분입니다
ret은 프레임을 정상적으로 받아왔는지 True,False 값을 가진 변수입니다.
frame은 현재 프레임의 이미지 numpy.ndarray 값입니다
cv2.imshow('ipcamera', frame)
이미지를 화면에 보여주는 함수입니다
ipcamera는 윈도우 창 이름으로 아무거나 써도 상관없습니다

 

k = cv2.waitKey(1) & 0xff
if k == 27 : break
cv2.waitkey() 는 키 입력을 기다리는 대기 함수로 현재 1을 넣어줬기에 1ms만큼 대기합니다 
k 에 입력된 키 값을 저장하고 27(아스키 코드 ESC)가 입력되면 while문을 빠져나오는 부분입니다
cap.release() 
cv2.destroyAllWindows()
while문을 빠져나오면 이미지 창을 종료하는 부분입니다
release() 저장하고 종료하는 부분입니다  #현재는 없어도 무방한 부분
destroyAllWindows() cv.imshow()에서 생성된 이미지 창을 종료합니다

 

다음 포스팅에서는 이미지를 동영상으로 저장하는것을 알려드리도록 하겠습니다

저작자표시 비영리 변경금지 (새창열림)

'파이썬 > OpenCV' 카테고리의 다른 글

파이썬 모듈 : OpenCV 가장자리 검출  (0) 2023.03.26
파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기  (1) 2023.03.25
파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링  (0) 2023.03.24
이미지의 크기 변환 cv2.resize()  (0) 2022.11.17
CV2로 IPCAMERA 영상을 동영상으로 저장 해보자  (0) 2022.11.16
'파이썬/OpenCV' 카테고리의 다른 글
  • 파이썬 모듈 : OpenCV 이미지 확대, 회전, 자르기
  • 파이썬 모듈 : OpenCV 읽기, 쓰기, 필터링
  • 이미지의 크기 변환 cv2.resize()
  • CV2로 IPCAMERA 영상을 동영상으로 저장 해보자
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (658)
      • 상품 추천 (164)
      • MongoDB (4)
      • 하드웨어 (11)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (12)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (50)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    list
    programmerlife
    믈레코비타멸균우유
    리뷰이관
    스크립트 실행 순서
    셀레니움
    상품 리뷰 크롤링
    C#
    스마트스토어리뷰
    스크립트 실행
    긴유통기한우유
    리뷰관리
    ipcamera
    devlife
    파이썬
    라떼우유
    appdevelopment
    unity
    카페24리뷰
    codingcommunity
    learntocode
    programming101
    카페24리뷰이관
    rtsp
    리스트
    codingtips
    쇼핑몰리뷰
    Python
    유니티
    cv2
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
CV2로 IPCAMERA 영상을 출력해보자
상단으로

티스토리툴바