问题描述
我正在尝试使用 NATS pub-sub 将通过我的网络摄像头生成的帧提供给网络应用程序。我能够检索我可以确认的帧,同时在回调函数中放置打印“数据”(yield 语句被注释)。
但是当我用 yield 语句再次运行它时,它没有显示任何帧产量并且 Web 应用程序页面是空白的。
你能帮我吗?我对所有这些事情都很陌生。
import nest_asyncio
nest_asyncio.apply()
import cv2
import sys
import base64
import numpy as np
from flask import Flask,Response,render_template
from nats.aio.client import Client as NATS
from json import loads
from nats.aio.errors import ErrConnectionClosed,ErrTimeout,ErrNoServers
loop = asyncio.get_event_loop()
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/video_Feed',methods=['GET'])
def video_Feed():
async def get_video_stream(loop):
nc = NATS()
await nc.connect(servers = ["nats://localhost:4222"],connect_timeout=1,loop=loop)
async def message_handler(msg):
data = msg.data
print(type(data))
try:
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + data + b'\r\n')
except:
print("Yield not working")
sid = await nc.subscribe("video_stream","workers",cb=message_handler)
await asyncio.sleep(5,loop=loop)
loop.run_until_complete(get_video_stream(loop))
return Response(mimetype = 'multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
app.run(host='0.0.0.0',debug = True)
print("1111")
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)