потоковая передача видео с сервера python на веб-клиент (решено) - PullRequest
0 голосов
/ 25 мая 2020

Как передать потоковое видео с сервера python на веб-клиент html page (nodejs)?

Я использую веб-проект node js, и я просто запись кадров с помощью 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 голосов
/ 31 мая 2020

спасибо, ребята, это решено с помощью этого кода python (flask) для потоковой передачи прямой трансляции с веб-камеры:

    #!/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)

код, написанный г-ном Мохитом Кумаром, я нашел его на YouTube.

для получения изображения прямой трансляции с использованием

<img src="http://localhost:3000/vid">

примечание: вы должны четко указать используемый протокол. также не имеет значения, какой веб-фреймворк вы используете (он работал на nodejs и flask), спасибо за помощь

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

Сначала вы используете простой тег в html:

<video id="videoPlayer" controls> <source src="localhost:3000/video" type="video/mp4"> </video>

, эта ссылка обеспечивает прямую трансляцию (если python генерирует остаточные кадры) и все, что вам нужно, с nodejs, на самом деле я настоятельно рекомендую использовать docker для простого развертывания

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