Потоковое видео с использованием flask и mod_wsgi на Apache 2.4 - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть приложение фляги, которое отображает прямую трансляцию с веб-камеры на страницу браузера. В среде разработки она работает нормально. Но как я могу выполнить развертывание с помощью 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()
...