起步
利用 html5 的 标签可以播放:
您的浏览器不支持video标签。
但是这样的方式,视频中的进度条无法使用,而且以静态文件方式返回的话,后台的程序会占用大量的内存。
使用响应流的方式能很好的解决这两个问题。
streaminghttpresponse
大多数 django 响应使用 httpresponse 。这意味着响应的主体内置在内存中,并以单件形式发送到 http 客户端。而如果用 streaminghttpresponse 的方式则可以以 chunks (部分块)的方式返回。一个很简单的例子就是:
from django.http import streaminghttpresponse
def hello():
yield 'hello,'
yield 'there!'
def test(request):
return streaminghttpresponse(hello)
根据 wsgi 协议中的,当服务器调用时,应用程序对象必须返回一个可迭代的,产生零个或多个字节串。因此我们可以通过给服务器提供生成器来完成流响应的功能。
常见的使用 streaminghttpresponse 是一些大文件的下载等,利用它还能完成断点续传的功能。
视频流
使用视频流时可以从请求头部中获得起始字节数。
这字段似乎是浏览器自动提供的ÿ