본문 바로가기
프로그래밍/Python

[Python] Python으로 휴대폰 캠을 웹캠으로 사용해보자

by rahites 2024. 1. 14.

 

웹캠이 없는 경우나 해상도가 마음에 들지 않는 경우... 우리는 휴대폰 캠을 사용해서 웹캠을 사용할 수 있다.

물론 이미 만들어진 툴을 활용할 수 있지만, Ubuntu OS의 경우 빌드된 툴이 많이 없어 어려움이 존재한다!!

 

따라서 이번에는 휴대폰의 IP 설정을 통해 휴대폰 캠을 웹캠으로 사용하는 방법에 대해 정리해 보도록 하겠다.

(구글에 검색하면 몇가지 방법이 나오지만 여기서는 같은 인터 회선을 이용하는 방법을 사용하였다)

 

1. IP Webcam 앱 설치

위 어플리케이션을 설치 후 실행하면 휴대폰 카메라와 연결된 서버를 열 수 있다. 

 

이 때 휴대폰 카메라와 연결된 네트워크는 연결하려는 컴퓨터와 같은 네트워크를 공유하는 상태여야 한다.

1) 컴퓨터와 동일한 네트워크를 사용하는 와이파이 사용

2) 모바일 데이터를 사용하는 휴대폰을 컴퓨터와 연결하여 테더링

 

2. 웹으로 서버 열기

서버를 만들게 되면 위와 같이 주소가 나오게 된다.  

같은 네트워크를 공유하는 컴퓨터 웹으로 해당 주소를 입력하면, 연결된 기기가 추가되며 웹으로 휴대폰 캠의 화면이 나오는 것을 확인할 수 있다. 

 

3. Python 코드로 웹캠 연결하기

우리의 목표는 Python 코드로 휴대폰 캠을 연결하는 것이기에 휴대폰에서 만든 URL을 이용하여 연결해보도록 하겠다.

 

from urllib.request import urlopen
import cv2
import numpy as np
import time

url = "<서버주소>/video"

cam = cv2.VideoCapture(url)

# FHD로 녹화
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('<파일명>.avi', fourcc, 30.0, (1920, 1080))

while True:
    check, img = cam.read()

    # 녹화 시작
    out.write(img)

    cv2.imshow('Camera', img)
    height, width, channels = img.shape
    if cv2.waitKey(1) == ord("q"):
        break

# 녹화 종료
cam.release()
out.release()
cv2.destroyAllWindows()

 

위 코드를 이용하면 IP Camera 앱으로 보고있는 카메라 화면을 OpenCV로 띄울 수 있고 동시에 녹화를 진행할 수 있다.

 

 

 

댓글