如何将视频从python服务器流式传输到html页面Web客户端(nodejs)?
我正在使用一个节点js Web项目,我只是用python编写框架并使用javascript读取它们,但是我不能使用高帧频或高分辨率。
感谢您的帮助。这是我用来读取框架的代码:
var button = document.getElementById('play');
button.addEventListener('click', function refresh() {
document.getElementById("myimg").src = "images/color_img.jpg?" + new Date().getTime();
v= setTimeout(refresh, 100);
});
var button2 = document.getElementById('pause');
button2.addEventListener('click', function myStopFunction() {
clearTimeout(v);
});
答案 0 :(得分:0)
首先,您在html中使用简单标记:
<video id="videoPlayer" controls> <source src="localhost:3000/video" type="video/mp4"> </video>
此link提供实时流传输(如果python正在生成残帧)以及nodejs所需的一切,实际上,我强烈建议使用docker轻松部署
答案 1 :(得分:0)
谢谢大家,使用此python(烧瓶)代码从网络摄像头流实时直播可以解决此问题:
#!/usr/bin/env python
from flask import Flask, render_template, Response
import cv2
import sys
import numpy
app = Flask(__name__)
def get_frame():
camera_port=0
camera=cv2.VideoCapture(camera_port) #this makes a web cam object
while True:
retval, im = camera.read()
imgencode=cv2.imencode('.jpg',im)[1]
stringData=imgencode.tostring()
yield (b'--frame\r\n'
b'Content-Type: text/plain\r\n\r\n'+stringData+b'\r\n')
del(camera)
@app.route('/vid')
def vid():
return Response(get_frame(),mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
app.run(host='localhost',port=5000, debug=True, threaded=True)
由Mohit Kumar先生编写的代码是我在youtube上发现的。
使用
检索即时消息<img src="http://localhost:3000/vid">
注意:您必须明确指定所使用的协议。 同样,您使用的是什么Web框架也没关系(它适用于nodejs和flask) 谢谢你的帮助