将视频从python服务器流式传输到Web客户端(已解决)

时间:2020-05-25 15:54:14

标签: python html

如何将视频从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);
});

2 个答案:

答案 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) 谢谢你的帮助