Flask + IIS + Motion JPEG - PullRequest
       32

Flask + IIS + Motion JPEG

0 голосов
/ 25 мая 2020

Я пытаюсь выполнить sh следующее: 1. захватить прямой эфир = выполняется с помощью захвата экрана (пакет mss) 2. распознавать лица в 1) = выполняется с использованием пакета "face_recognition" 3. (повторно -) потоковая передача результатов в формате Motion-JPEG с распознанными лицами в веб-приложении, размещенном в Flask + IIS = issues

Итак, когда я передаю результат только в Flask, используя функцию отладки (flask run --debugger), все работает (рисунок справа -> см. http://127.0.0.1: ... .). НО, когда я пытаюсь использовать IIS, это не работает, в результате получается серое изображение (рисунок ниже) - см. http://193 .....

image

Я точно знаю, что IIS работает с Flask, потому что у меня уже есть некоторые веб-службы, размещенные в том же приложении.

FLASK:

@app.route('/py/bbb', methods=['GET', 'POST'])
def bbb():
    return render_template("bbb.html")

@app.route('/py/video_feed', methods=['GET', 'POST'])
def video_feed():

    imagineProcesata = screenrec.proceseazaImagine()

    return Response(imagineProcesata, mimetype='multipart/x-mixed-replace; boundary=frame')

Python:

def proceseazaImagine():
[.....]
            predictions = recunoaste_fetze(face_unknown)

            face_unknown = show_prediction_labels_on_image(face_unknown, predictions)

            ret, jpeg = cv2.imencode('.jpg', face_unknown)

            jpeg2 = jpeg.tobytes()

            yield (b'--frame\r\n'
                   b'Content-Type: image/jpeg\r\n\r\n' + bytearray(jpeg2) + b'\r\n\r\n')

HTML Шаблон:

  <head>
    <title>Video Streaming din BBwwB</title>
  </head>
  <body>
    <h1>Video Streaming din BBBeee</h1>
    <img id="bg" src="{{ url_for('video_feed') }}" />
  </body>

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<modules>
            <remove name="WebDAVModule" />
        </modules>
  <handlers>   
   <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\ProgramData\Anaconda3\envs\opencv\python.exe|C:\inetpub\wwwroot\FlaskRedirect\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
  </handlers>
        <directoryBrowse enabled="true" />
</system.webServer>
<appSettings>
  <!-- Required settings -->
  <add key="WSGI_HANDLER" value="app.app" />
  <add key="PYTHONPATH" value="C:\inetpub\wwwroot\FlaskRedirect" />
</appSettings>
</configuration>
...