[python] 파이썬을 사용한 비디오 스트리밍 서버 만들기
이번에는 파이썬을 사용하여 간단한 비디오 스트리밍 서버를 만드는 방법에 대해 알아보겠습니다. 비디오 스트리밍 서버를 만들기 위해 Flask와 OpenCV를 사용하겠습니다.
목표
우리의 목표는 웹 브라우저에서 실시간으로 동영상을 스트리밍할 수 있는 서버를 만드는 것입니다.
준비물
이 프로젝트를 진행하기 위해 우리는 다음의 준비물이 필요합니다.
- 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를 활용하여 간단한 비디오 스트리밍 서버를 만들어보았습니다. 이를 활용하여 웹 기반 영상 감지, 인식 등 다양한 응용이 가능합니다.
참고문헌:
- https://flask.palletsprojects.com/
- https://opencv.org/
감사합니다!