返回顶部
首页 > 资讯 > 后端开发 > Python >Django实现视频播放的具体示例
  • 734
分享到

Django实现视频播放的具体示例

2024-04-02 19:04:59 734人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

view视图 import re import os import mimetypes from wsgiref.util import FileWrapper from Djang

view视图

import re
import os
import mimetypes
from wsgiref.util import FileWrapper
from Django.Http import StreamingHttpResponse
from djanGo.shortcuts import render
from django.conf import settings

def file_iterator(file_name, chunk_size=8192, offset=0, length=None):
    # 每次最多读取8Kb
    with open(file_name, "rb") as f:
        f.seek(offset, os.SEEK_SET)
        remaining = length  # 还有多少未读取
        while True:
            bytes_length = chunk_size if remaining is None else min(remaining, chunk_size)
            data = f.read(bytes_length)
            if not data:  # 没有数据了 退出
                break
            if remaining:
                remaining -= len(data)
            yield data


def stream_video(request):
    """将视频文件以流媒体的方式响应"""
    range_header = request.META.get('HTTP_RANGE', '').strip()
    range_re = re.compile(r'bytes\s*=\s*(?P<START>\d+)\s*-\s*(?P<END>\d*)', re.I)
    range_match = range_re.match(range_header)
    path = request.GET.get('path')
  #这里根据实际情况改变,我的views.py在core文件夹下但是folder_path却只到core的上一层,media也在core文件夹下
    video_path = os.path.join(settings.BASE_DIR, 'static', 'video')  # 视频放在目录的static下的video文件夹中
    file_path = os.path.join(video_path, path) #path就是template ?path=后面的参数的值
    size = os.path.getsize(file_path)  # 文件总大小
    content_type, encoding = mimetypes.guess_type(file_path)
    content_type = content_type or 'application/octet-stream'
    if range_match:
        # first_byte播放到的位置
        # 下次播放的位置 
        first_byte, last_byte = range_match.group('START'), range_match.group('END')
        first_byte = int(first_byte) if first_byte else 0
        # 从播放的位置往后读取10M的数据
        last_byte = first_byte + 1024 * 1024 * 10
        if last_byte >= size:  # 如果想读取的位置大于文件大小
            last_byte = size - 1  # 最后将图片全部读完
        length = last_byte - first_byte + 1  # 此次读取的长度(字节)
        resp = StreamingHttpResponse(file_iterator(file_path, offset=first_byte, length=length), status=200, 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(file_path, 'rb')), content_type=content_type)
        resp['Content-Length'] = str(size)
    resp['Accept-Ranges'] = 'bytes'
    return resp
 

前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/Jquery/3.6.0/jquery.js"></script>
</head>
<body>
<video id="media" src="" width="720" height="480" controls autoplay>浏览器不支持video标签 </video>
</video>
</body>
<script>
    $(function () {
            $("#media").attr('src', '/test_resp/?path=/media/video.mp4');
     })

</script>
</html>

到此这篇关于Django实现视频播放的具体示例的文章就介绍到这了,更多相关Django 视频播放 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Django实现视频播放的具体示例

本文链接: https://lsjlt.com/news/118447.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django实现视频播放的具体示例
    view视图 import re import os import mimetypes from wsgiref.util import FileWrapper from djang...
    99+
    2024-04-02
  • Django如何实现视频播放
    这篇文章主要讲解了“Django如何实现视频播放”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Django如何实现视频播放”吧!view视图import reimport ...
    99+
    2023-06-30
  • Android编程实现播放视频的方法示例
    本文实例讲述了Android编程实现播放视频的方法。分享给大家供大家参考,具体如下:播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的。这个 类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易...
    99+
    2023-05-30
    android 播放 视频
  • android视频播放简单实现示例(VideoView&MediaPlayer)
    如果你看过我的《android音乐播放简单实现(MediaPlayer)》,那么本篇将会毫无压力。首先是主界面的三个按钮和一个播放控件<?xml version="1.0" encoding="utf-8"?>&...
    99+
    2023-05-30
    android 视频播放 roi
  • html5视频播放的示例分析
    这篇文章主要介绍html5视频播放的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! pc端主要是利用用flash播放,移动端则通过html5方式...
    99+
    2024-04-02
  • ssm实现视频的上传与播放的示例代码
    实现的功能: 1:实现视频的上传与播放。 2:使用shiro框架进行登录注册。 3:视频分页展示在页面上。 4:视频简介 5:视频评论 6:发表评论 简单介绍一下大概实现的思路: 首...
    99+
    2024-04-02
  • AndroidUniversalVideoView实现视频播放器
    本文实例为大家分享了Android UniversalVideoView实现视频播放器的具体代码,供大家参考,具体内容如下 1.添加依赖 app下的 build.gradle d...
    99+
    2024-04-02
  • 利用MAC中的QuickTime视频播放器来播放各种媒体视频
      QuickTime 是MAC中的视频播放器,但是很多新手用户并不清楚QuickTime 的使用技巧,或者是仅仅知道一部分。不过别担心,现在小编就为大家讲解一下如何利用 QuickTime 播放程式来播放各种媒体档案。...
    99+
    2023-06-10
    MAC QuickTime 媒体视频 播放器 媒体 视频
  • Android开发基础实现最简单的视频播放示例
    目录正篇使用方法最终效果展示总结正篇 视频播放是很平常的一件事情,但如何在APP中实现呢,其实蛮简单的,方法也很多,但作为基础的就是使用VideoView了,下面我们来看看如何使...
    99+
    2023-02-05
    Android开发简单视频播放 Android 视频播放
  • Java Red5服务器实现流媒体视频播放
    目录引言Red5 概述Red5 服务器搭建配置Red5相关参数启动Red5视频直播开始准备设置信息发布直播Server设置推送视频流查看视频流用自己的页面观看直播使用浏览器观看引言 ...
    99+
    2024-04-02
  • android实现播放网络视频
    本文实例为大家分享了android实现播放网络视频的具体代码,供大家参考,具体内容如下 PlayVideoActivity.java package cn.edu.zufe.a...
    99+
    2024-04-02
  • Android实现音乐视频播放
    本文实例为大家分享了Android实现音乐视频播放的具体代码,供大家参考,具体内容如下 步骤 1、新建一个安卓项目,再加一个assets包 2、在 assets中加入一段音频 3...
    99+
    2024-04-02
  • html5如何实现视频播放
    这篇文章主要为大家展示了“html5如何实现视频播放”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5如何实现视频播放”这篇文章吧。一、html5技术优势...
    99+
    2024-04-02
  • Android如何实现播放视频
    这篇文章将为大家详细讲解有关Android如何实现播放视频,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、通过intent的方式,调用系统自带的播放器  Uri uri&n...
    99+
    2023-05-31
    android
  • AndroidWebView实现全屏播放视频
    目录介绍主要代码介绍 最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里总结了一下,希望大家看到后不要再犯类似的错误,...
    99+
    2024-04-02
  • MediaPlayer音频与视频播放方法示例介绍
    目录Android多媒体 MediaPlayer1.相关方法详解1)获得MediaPlayer实例:2)设置播放文件:3)其他方法2.使用代码示例示例一:使用MediaPlayer播...
    99+
    2023-05-17
    Android MediaPlayer音频视频播放 Android MediaPlayer
  • AndroidFFmpeg音视频解码播放示例详解
    目录前言一丶FFmpeg简介1.简介2.FFmpeg两个强大功能2.1 命令功能常用参数说明:二丶FFmpeg音视频解码播放前言1.FFmpeg 音视频解码流程2.FFmpeg 音视...
    99+
    2022-11-13
    Android FFmpeg音视频解码播放 Android FFmpeg
  • vue+video.js实现视频播放列表
    本文实例为大家分享了vue+video.js实现视频播放列表的具体代码,供大家参考,具体内容如下 1.引入Video.js npm install --save-dev vide...
    99+
    2024-04-02
  • Java Red5服务器如何实现流媒体视频播放
    这篇文章主要介绍Java Red5服务器如何实现流媒体视频播放,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应...
    99+
    2023-06-14
  • Android GSYVideoPlayer视频播放器功能的实现
    GSYVideoPlayer GSYVideoPlayer官方地址 GSYVideoPlayer 一个基于IJkPlayer的播放器 支持调节声音亮度 边播边缓存 使用了Andro...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作