OpenCV를 이용하여 파이썬으로 비디오 스트리밍 서버 만들기

이 튜토리얼에서는 OpenCV와 Python을 사용하여 비디오 스트리밍 서버를 만드는 방법을 알아보겠습니다. 이 서버를 통해 웹 브라우저나 다른 클라이언트에서 실시간으로 비디오를 스트리밍할 수 있습니다.

필수 요구사항

단계별 가이드

1. OpenCV 설치

먼저 Python 환경에서 OpenCV 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 OpenCV를 설치합니다.

pip install opencv-python

2. Flask 설치

스크립트를 웹 서버로 만들기 위해 Flask 라이브러리도 설치해야 합니다. 다음 명령어를 사용하여 Flask를 설치합니다.

pip install Flask

3. 비디오 스트리밍 서버 코드 작성

아래의 코드를 사용하여 비디오 스트리밍 서버를 작성합니다.

import cv2
from flask import Flask, render_template, Response

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('/')
def index():
    return render_template('index.html')

@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)

4. HTML 템플릿 생성

templates 폴더를 생성하고 index.html 파일을 다음과 같이 작성합니다.


<!DOCTYPE html>
<html>
<head>
    <title>Video Streaming</title>
</head>
<body>
    <h1>Video Streaming</h1>
    <img src="{{ url_for('video_feed') }}">
</body>
</html>

5. 서버 실행

아래의 명령어를 사용하여 서버를 실행합니다.

python 서버파일이름.py

서버가 시작되면 웹 브라우저에서 http://localhost:5000 주소로 접속하면 실시간으로 비디오가 스트리밍됩니다.

마무리

이제 OpenCV와 Python을 이용하여 비디오 스트리밍 서버를 만들었습니다. 이 서버를 사용하면 웹 브라우저나 다른 클라이언트에서 실시간으로 비디오를 스트리밍할 수 있습니다. 이를 응용하여 다양한 프로젝트를 구현해보세요!

참고 자료