Потоковые данные во Flask с использованием подпроцесса - PullRequest
0 голосов
/ 11 июня 2018

Итак, в основном я создаю службу потокового вещания и транслирую видео с веб-камеры в браузере, используя opencv с флягой:

def gen(camera):
    frame  = camera.get_frame()
    yield (b'--frame\r\n'
           b'Content-Type: image/jpeg\r\n\r\n' + frame.tobytes() + b'\r\n')

@app.route('/video_feed')
def video_feed():
    return Response(gen(Camera()),
                mimetype='multipart/x-mixed-replace; boundary=frame')

И это работает нормально.Теперь у меня есть поток данных, генерируемый, когда пользователь смотрит в веб-камеру (скажем, точки лица).Я хочу передать эти данные в браузер, используя подпроцесс.Это то, что я написал до сих пор:

Серверная часть

@app.route('/yield')
def conso():
    def inner():
        proc = subprocess.Popen(                 # where L is the stream of data
        L,            
        shell=True,
        stdout=subprocess.PIPE
    )

    for line in iter(proc.stdout.readline,''):
        time.sleep(1)                         
        yield ( line.rstrip() + b'\r\n')

return Response(inner(), mimetype='text/event-stream') 

Клиентская сторона

<script>
if (!!window.EventSource) {
  var source = new EventSource('/yield');
  source.onmessage = function(e) {
  $("#data").text(e.data);
  }
 }
</script>
<div id="data">nothing received yet</div>

Ноне может передавать данные.Ни это не дает никаких ошибок.Может кто-нибудь помочь мне определить, где проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...