django html5 video,Django 中使用流响应处理视频的方法

本文介绍了如何在Django中利用streaminghttpresponse处理HTML5视频,通过视频流解决进度条不可用和内存占用大的问题。通过设置content-range头信息,实现了视频的分片传输,支持断点续传。详细代码展示了如何创建流响应并处理视频文件请求。
摘要由CSDN通过智能技术生成

起步

利用 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 是一些大文件的下载等,利用它还能完成断点续传的功能。

视频流

使用视频流时可以从请求头部中获得起始字节数。

22a5897ef0db23c038a94bfbb74db7b0.png

这字段似乎是浏览器自动提供的ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值