前台

{% block content %}<video width="640" height="480" controls><source id="media" src="/video/test.mp4/" type="video/mp4"></video>{% endblock %}

路由

# video/是播放视频的页面
path('video/', video.video),# 这里的<arg_path>作为第二个参数传递到stream_video函数中去,意义就是视频文件的路径名
path('video/<arg_path>/', video.stream_video),

后台

views.py

def video(request):return render(request, 'video/video.html', {})def file_iterator(file_name, chunk_size=8192, offset=0, length=None):with open(file_name, "rb") as f:f.seek(offset, os.SEEK_SET)remaining = lengthwhile True:bytes_length = chunk_size if remaining is None else min(remaining, chunk_size)data = f.read(bytes_length)if not data:breakif remaining:remaining -= len(data)yield datadef stream_video(request, arg_path):"""将视频文件以流媒体的方式响应"""range_header = request.META.get('HTTP_RANGE', '').strip()range_re = re.compile(r'bytes\s*=\s*(\d+)\s*-\s*(\d*)', re.I)range_match = range_re.match(range_header)# 这里规定存放视频文件夹path = 'E:\\video\\' + arg_pathprint(path)size = os.path.getsize(path)content_type, encoding = mimetypes.guess_type(path)content_type = content_type or 'application/octet-stream'if range_match:first_byte, last_byte = range_match.groups()first_byte = int(first_byte) if first_byte else 0last_byte = first_byte + 1024 * 1024 * 10if last_byte >= size:last_byte = size - 1length = last_byte - first_byte + 1resp = StreamingHttpResponse(file_iterator(path, offset=first_byte, length=length), status=206,content_type=content_type)resp['Content-Length'] = str(length)resp['Content-Range'] = 'bytes %s-%s/%s' % (first_byte, last_byte, size)else:resp = StreamingHttpResponse(FileWrapper(open(path, 'rb')), content_type=content_type)resp['Content-Length'] = str(size)resp['Accept-Ranges'] = 'bytes'return resp

【django】简易视频播放功能相关推荐

  1. 集音频和视频播放功能于一身的简易播放器

    <Win32_17>集音频和视频播放功能于一身的简易播放器 搜索源代码

  2. Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能

    最近有个项目牵扯到上传视频,简直把我搞炸了.还么搞定,主要是当初设计有点小出入,心里一直不是坚持,所以,哎,还得努力撒! 下面是当时参考,睡觉,明天搞哎.http://www.cnblogs.com/ ...

  3. android实现水平进度条_Flutter在线视频播放功能实现(chewie库)

    前言: 实现在一个在线视频播放功能,使用第三方库Chewie. 实现步骤: 1.新建一个flutter项目. 2.获取Chewie插件. 3.添加播放视频所需要的权限. 4.调试代码实现你想要的效果. ...

  4. macbook视频格式转换_AnyMP4简易视频格式转换器 for mac | MAC之家

    AnyMP4简易视频格式转换器 for mac 软件简介 销售商:AnyMP4 Studio 价格:免费 语言: 评分:0 分 评论数:0 年龄分级:限4岁以上 免费视频转换器可以转换几乎所有视频文件 ...

  5. Adobe Premiere Pro CC 2019启动时提示找不到任何具有视频播放功能的模板,请更新视频显示驱动程序并再次启动/PR启动时提示找不到任何具有视频播放功能的模板

    Adobe Premiere Pro CC 2019启动时提示找不到任何具有视频播放功能的模板,请更新视频显示驱动程序并再次启动/PR启动时提示找不到任何具有视频播放功能的模板 一.开头 最近刚开学, ...

  6. uni app 视频播放功能

    视频播放功能,需求:编译成纯h5网页,运行在任意容器里,如浏览器.安卓原生和iOS等 媒体组件video 首先使用video组件,然后高度需要自己设置 uni.createVideoContext 官 ...

  7. 易语言实现视频播放功能

    易语言实现视频播放功能 新建工程 导入视频播放支持库 增加视频播放组件 实现选择视频文件功能 添加'按钮'和'通用对话框'组件 打开视频文件 运行程序 新建工程 打开易语言,新建windows窗口程序 ...

  8. android 音视频播放 SDK,几句代码即可实现音视频播放功能~

    项目地址:wanliyang1990/wlmedia  简介:android 音视频播放 SDK,几句代码即可实现音视频播放功能~ 更多:作者   提 Bug 标签: FFmpeg-Android音视 ...

  9. Springboot项目使用html5的video标签完成视频播放功能

    Springboot项目使用html5的video标签完成视频播放功能 1.首先引入pom文件: pom.xml 2.使用video标签来播放视频: 3.视频播放功能的具体实现: 文件的上传与下载会另 ...

最新文章

  1. PAT (Basic Level) Practise 1040 有几个PAT(DP)
  2. 不用现有方法,把string转换成int型[C#]
  3. Binary Search二分法搜索C++程序
  4. Maven学习总结(10)——使用Maven编译项目gbk的不可映射问题
  5. 离线安装docker镜像
  6. 远程连接redis,并设置字符集
  7. ad9原理图转到orcad capture16.5
  8. 老毛子 K2 通过SSH 抓包
  9. 华为eSight网管平台折腾
  10. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-20期...
  11. c#: UrlDecode()
  12. SpringMVC总结笔记
  13. 使用TensorFlow搭建智能开发系统,自动生成App UI代码
  14. C语言 习题3-1 比较大小 (简单解法)
  15. Eel+VUE python GUI编程
  16. 如何看损失函数图loss
  17. python 期货现货差价监测_基差,即期货与现货之间价格之差
  18. 硬件电路设计(转载)
  19. 【Unity】环境光探究,在shader中如何计算 : Ambient Color, Sky Color, Equator Color, Ground Color
  20. 无懈可击的Web设计:使用HTML 5和CSS 3提高网站的灵活性与适应性(第3版)

热门文章

  1. arduino编程语言Wiring参考手册API
  2. 【笔记】设计模式 | 5种设计模式笔记整理
  3. 百万数据进行查询与排序
  4. 网易考拉海购Java开发面经(已拿offer)
  5. Java子线程异常及异常处理
  6. 创造与魔法java语言_创造与魔法基础魔法大全 超实用基础魔法推荐
  7. 牛客小白月赛61_C-小喵觅食题解
  8. session机制详解
  9. Python打印详细报错日志,获取报错信息位置行数
  10. case when then else end 语句遇上sum或count等统计函数的注意事项(列转行)