首页 > 解决方案 > Django 中的视频流:可以像烧瓶一样完成吗?

问题描述

Miguel Grinberg 的以下方法在 Flask 中对我来说效果很好,但是我正在将我的应用程序迁移到 Django,我想知道是否可以使用内置的 Django 函数重新创建它?

from flask import Flask, render_template, Response
from camera import Camera

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

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

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

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

这很好用,因为我的流是motionJPEG,而这正是这段代码的设计目的。

我特别想知道这Response(gen(Camera)), mimetype='multipart/x-mixed-replace';boundary=frame')一点。我将如何使用生成器将传入帧放置在 urls.py 中定义的 url/路由上?

标签: pythondjangostreaming

解决方案


推荐阅读