У меня есть приложение фляги, которое отображает прямую трансляцию с веб-камеры на страницу браузера. В среде разработки она работает нормально. Но как я могу выполнить развертывание с помощью apache и mod_wsgi.
с файлом хоста, указанным под ним толькопоказывает один кадр, захваченный не видео на веб-странице. Другими словами, поток останавливается.
<VirtualHost *:80>
ServerName localhost
WSGIScriptAlias / "E:/myapp/app/web.wsgi"
DocumentRoot E:/myapp/app
<Directory "E:/myapp/app/">
WSGIApplicationGroup %{GLOBAL}
Options +Indexes +Includes +FollowSymLinks +MultiViews +ExecCGI
AllowOverride None
Require all granted
</Directory>
ErrorLog "E:/myapp/app/logs/error.log"
CustomLog "E:/myapp/app/logs/access.log" common
</VirtualHost>
app.py
from flask import Flask
from flask import render_template
import cv2
from time import sleep
from flask import Response
import threading
from imutils.video import VideoStream
vs = VideoStream(src=0).start()
# initialize a flask object
app = Flask(__name__)
lock = threading.Lock()
def detect_motion():
global vs, outputFrame, lock
while True:
frame = vs.read()
with lock:
outputFrame = small_frame.copy()
(flag, encodedImage) = cv2.imencode(".jpg", outputFrame)
if not flag:
continue
yield(b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' +
bytearray(encodedImage) + b'\r\n')
@app.route("/")
def index():
return render_template('index.html')
@app.route("/video_feed")
def video_feed():
return Response(detect_motion(),
mimetype = "multipart/x-mixed-replace; boundary=frame")
if __name__ == '__main__':
app.run( debug=True,
threaded=True, use_reloader=False)
snooziness = 5
sleep(snooziness)
# release the video stream pointer
vs.stop()