[파이썬] Flask에서의 비디오 스트리밍
비디오 스트리밍은 현대 웹 애플리케이션에서 매우 인기있는 기능 중 하나입니다. Flask는 Python 웹 프레임워크로서, 이러한 비디오 스트리밍 기능을 구현하는 데 사용될 수 있습니다. 이 기사에서는 Flask를 사용하여 비디오 스트리밍을 구현하는 방법에 대해 알아보겠습니다.
필요한 패키지 설치
비디오 스트리밍을 구현하려면 먼저 필요한 패키지를 설치해야합니다. Flask, OpenCV 및 numpy 패키지를 설치하는 것이 일반적입니다. 다음과 같은 명령을 사용하여 설치할 수 있습니다.
pip install flask opencv-python numpy
비디오 스트리밍 앱 생성
Flask 애플리케이션을 시작하기 위해 먼저 app.py
라는 새로운 파일을 생성하고 다음과 같은 코드를 작성합니다.
from flask import Flask, render_template, Response
import cv2
app = Flask(__name__)
def generate_frames():
# 비디오 스트리밍을 시작하는 코드
cap = cv2.VideoCapture(0)
while True:
# 비디오의 프레임을 읽어오는 코드
ret, frame = cap.read()
if not ret:
break
# 프레임을 스트리밍하기 위해 바이트로 변환하는 코드
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)
HTML 템플릿 생성
templates
라는 새로운 디렉토리를 생성하고 index.html
이라는 새로운 파일을 만듭니다. 그리고 다음과 같은 코드를 작성합니다.
<!DOCTYPE html>
<html>
<head>
<title>비디오 스트리밍</title>
</head>
<body>
<h1>비디오 스트리밍</h1>
<img src="{{ url_for('video_feed') }}" width="640" height="480">
</body>
</html>
앱 실행
이제 앱을 실행해 보겠습니다. 터미널 또는 명령 프롬프트에서 app.py
가 있는 디렉토리로 이동한 다음 다음 명령을 실행합니다.
python app.py
앱이 실행되면 http://127.0.0.1:5000
에서 비디오 스트리밍을 확인할 수 있습니다.
결론
이 글에서는 Flask를 사용하여 Python에서 비디오 스트리밍을 구현하는 방법을 알아보았습니다. Flask는 간단하면서도 강력한 웹 프레임워크로, 비디오 스트리밍과 같은 기능을 쉽게 구현할 수 있습니다. Flask와 OpenCV를 사용하여 웹 애플리케이션에 비디오 스트리밍 기능을 추가해 보세요.