[python] 파이썬을 사용한 비디오 스트리밍 서버 만들기

이번에는 파이썬을 사용하여 간단한 비디오 스트리밍 서버를 만드는 방법에 대해 알아보겠습니다. 비디오 스트리밍 서버를 만들기 위해 Flask와 OpenCV를 사용하겠습니다.

목표

우리의 목표는 웹 브라우저에서 실시간으로 동영상을 스트리밍할 수 있는 서버를 만드는 것입니다.

준비물

이 프로젝트를 진행하기 위해 우리는 다음의 준비물이 필요합니다.

단계별 진행

1. 환경 설정

먼저 Python과 Flask를 설치합니다.

pip install Flask

그리고 OpenCV도 설치합니다.

pip install opencv-python

2. 프로젝트 구성

다음으로, 프로젝트 폴더를 만들고 그 안에 app.py라는 파일을 만듭니다.

from flask import Flask, Response
import cv2

app = Flask(__name__)

camera = cv2.VideoCapture(0)

def generate_frames():
    while True:
        success, frame = camera.read()
        if not success:
            break
        else:
            ret, buffer = cv2.imencode('.jpg', frame)
            frame = buffer.tobytes()
            yield (b'--frame\r\n'
                   b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')

@app.route('/video_feed')
def video_feed():
    return Response(generate_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    app.run(debug=True)

3. 서버 실행

이제 터미널에서 다음 명령을 실행하여 서버를 시작합니다.

python app.py

서버가 성공적으로 시작되면, 웹 브라우저에서 localhost:5000/video_feed에 접속하여 비디오 스트리밍을 볼 수 있습니다.

마치며

이렇게 파이썬과 Flask, OpenCV를 활용하여 간단한 비디오 스트리밍 서버를 만들어보았습니다. 이를 활용하여 웹 기반 영상 감지, 인식 등 다양한 응용이 가능합니다.

참고문헌:

감사합니다!