本文章旨在记录解决网页播放较大视频文件这一问题中积累到的知识点。

一、前后端技术都不变的基础上,如何提升视频播放速度

后端上传视频文件走的直接是普通文件上传,提供的文件接口也是media。
前端仅使用了<video src="">,src中的链接即后端提供的url。

这时候会发生,播放视频很卡的现象,当视频大于100M会出现基本每秒的播放都要卡顿。

使用nginx的静态文件代理,url含media直接让它到nginx的指定路径下找文件,nginx的该文件夹和django的media文件夹是共享的。这么处理速度上来很多,但还是有点卡(跟老网站的直接读静态文件相比)
docker-compose.yml

version: "3"services:db:image: postgresexpose:- "5432"environment:POSTGRES_PASSWORD: '***'POSTGRES_USER: 'postgres'POSTGRES_DB: '***'PGDATA: '/var/lib/postgresql/data/pgdata'volumes:- ./postgres/data:/var/lib/postgresql/data/pgdatarestart: alwaysweb:build: ./webexpose:- "8000"volumes:- ./web/media:/home/**/media- ./web/cntechsite:/home/**/cntechsite- ./uwsgi:/tmp # 挂载uwsgi日志depends_on:- db# environment:#   - DEBUG=Falsetty: true #同docker run指令参数,表示分配tty设备,该可以支持终端登录stdin_open: truenginx:build: ./nginxrestart: alwaysports:- "**:80"expose:- "80"volumes:- ./web/media:/usr/share/nginx/html/mediadepends_on:- weblinks:- web

nginx/Dockerfile

FROM nginx:latest# 删除原有配置文件,创建静态资源文件夹和ssl证书保存文件夹
RUN rm /etc/nginx/conf.d/default.conf \&& mkdir -p /usr/share/nginx/html/media
# && mkdir -p /usr/share/nginx/html/static \
# && mkdir -p /usr/share/nginx/ssl# 设置Media文件夹用户和用户组为Linux默认www-data, 并给予可读和可执行权限,
# 否则用户上传的图片无法正确显示。
RUN chown -R www-data:www-data /usr/share/nginx/html/media \&& chmod -R 775 /usr/share/nginx/html/media# 添加配置文件
ADD ./nginx.conf /etc/nginx/conf.d/# 添加ssl证书
ADD ./**.crt /etc/nginx/certs/
ADD ./**.key /etc/nginx/certs/# 关闭守护模式
CMD ["nginx", "-g", "daemon off;"]

nginx/nginx.conf

upstream django {ip_hash;server web:8000; # Docker-compose web服务端口
}server {listen 80 ssl; # 监听80端口server_name localhost; # 可以是nginx容器所在ip地址或127.0.0.1,不能写宿主机外网ip地址charset utf-8;client_max_body_size 10240M; # 限制用户上传文件大小# client_body_buffer_size 100M;ssl_certificate     /etc/nginx/certs/ssl-33-cntechcom2020.crt;ssl_certificate_key /etc/nginx/certs/ssl-33-cntechcom2020.key;ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers         HIGH:!aNULL:!MD5;#location /static {location / {include /etc/nginx/uwsgi_params;uwsgi_pass django;uwsgi_read_timeout 1200;uwsgi_connect_timeout 600;uwsgi_send_timeout 1200;uwsgi_max_temp_file_size 10240M;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_redirect off;proxy_set_header X-Real-IP  $remote_addr;# proxy_pass http://django; # 使用uwsgi通信,而不是http,所以不使用proxy_pass。}location /media  {alias /usr/share/nginx/html/media;}}access_log /var/log/nginx/access.log main;error_log /var/log/nginx/error.log warn;server_tokens off;

做了一下比较,老网站使用了阿里云的负载均衡。我寻思就一个服务器,用负载均衡有用吗,还是加了一下,结果真的有用。至于这个原理我就不懂。

二、对上传视频进行压缩

一中的方法感觉对小体积视频比较有效,但体积一旦变大可能就会有些危险,因为没有从本质解决问题。对上传视频进行压缩也算是一种无奈之举。

三、采用主流视频网站的解决方案

这里就涉及到大改代码了。搜了一下解决方案,直接贴链接了,因为还没打算改。
视频在线播放卡慢,如何实现视频分片加载呢?前段 vue,后台 go
网页视频加载慢
求助:关于视频播放的方案

【视频播放】因视频过大产生卡顿相关推荐

  1. 黑苹果音频卡顿_手机耗电大、卡顿怎么办?只需关掉这个按键轻松解决,去试试...

    阅读本文前,请您先点击上面的"议科技",关注,这样您就可以继续收到最新文章了.每天都有分享.完全是免费订阅,请放心关注. 大家好,很高兴认识大家,话不多说,进入正题,手机现在已经是 ...

  2. 解决DeepLinux 15.8在I3 6100的核心显卡hd530播放视频隔1分钟卡顿几秒的问题

    我的机器配置如下:lspci 00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07) 00 ...

  3. kodi android 卡顿,给Kodi设置缓存来解决播放大文件卡顿

    给Kodi设置缓存来解决播放大文件卡顿 2021-03-02 16:21:20 28点赞 355收藏 31评论 Kodi可以算是电视盒子上最棒的播放器了,它具有强大的功能,优美的界面,相信很多人也都是 ...

  4. 关于Unity VideoPlayer组件 视频切换第一帧卡顿

    关于Unity VideoPlay组件 视频切换第一帧卡顿的问题 1.问题: 在做项目时,发现VideoPlayer组件在多个视频切换时,会在第一帧重复上个视频的结束时的画面. 2.原因: 因为Vid ...

  5. H265网页视频播放器播放H265编码录像视频文件如何减缓卡顿情况?

    视频播放延时卡顿的问题从视频服务诞生以来就一直存在,即便是在技术发达的今天,延时卡顿问题仍然是不能完全解决的(不同视频流延时说明). TSINGSEE青犀视频研发团队开发的H265播放器播放录像文件时 ...

  6. iOS微信聊天界面朋友圈多个小视频同时播放不卡顿

    我的简书地址http://www.jianshu.com/p/10206ed63e0d 之前有个需求是实现如微信朋友圈动态列表小视频播放的效果,最近有空整理下给同样有需要的同学. 我们都知道微信朋友圈 ...

  7. 视频损坏修复后卡顿声音画面口型不同步处理解决方法

    视频修复后为什么会 出现卡顿.花屏.音画不同步? 视频损坏后经简单修复后经常遇到画面卡顿,甚至会有花屏,声音和视频画面(说话口型)不同步的情况,声音或者画面提早或者滞后出现,视觉效果上会有明显差别,是 ...

  8. 结合实战,浅析GB/T28181(八)——视频丢包(卡顿、花屏、绿屏)排查

    1 问题现象 在视频专网(局域网)中,通过GB/T 28181视频平台接入大量的网络摄像机,比如上百.上千,甚至上万台.当系统同一时刻实况点播并发的视频路数较多时,常常会在客户端或电视墙监视器上,出现 ...

  9. 高德地图marker标点数据量太大造成卡顿的解决方案

    marker标点卡顿问题 问题说明 应用高德地图使用marker标点时,由于数据量大(>1000)就会造成页面卡顿,好几秒才能加载完成,并且页面也会卡顿 解决方案 使用官方提供的海量点MassM ...

最新文章

  1. 动态路由选择协议(三)链路状态路由选择协议
  2. 俞敏洪:创业者应该避开的10个坑
  3. [content-description] find_element_by_accessibility_id 在 android 中的详解
  4. java 数据库数据脱敏_Sharding-JDBC-数据脱敏
  5. Java异常(一) Java异常简介及其架构
  6. C语言库自带的二分查找函数bsearch函数的使用示例
  7. List集合_介绍常用方法
  8. 22(2)序列化以及反序列化
  9. 这是一段关乎你的代码:你的未来 我们正在参与
  10. Java 反射(Array相关)
  11. python123用户登录的三次机会_用户登录三次机会(PYTHON)
  12. ftp 200 227 451linux,FTP无法链接
  13. 从高斯消元到矩阵的三角分解(LU)
  14. cookie不同页面访问不到的问题
  15. 卡西欧手表城市编码,调时区用
  16. 查看 Chrome 下载的文件的真实下载地址
  17. 我来告诉你,草根程序员如何进入BAT
  18. CodeForces - 1467C(枚举,思维)
  19. 用opencv将左右眼视角图片转换为红蓝3D图片
  20. 简单的用java操作Excel入门

热门文章

  1. “小波”的定义与小波函数
  2. python字典查询_python查询字典
  3. 数据分析---2.数据分析----分析NBA中国官方网站2017-2018赛季的球员数据
  4. java numbereditor_java.lang.NumberFormatException: For input string: ${jdbc.maxActive}
  5. request设置cookies
  6. bacula 备份小技巧
  7. 一个卡牌游戏的DEMO(0)
  8. 大数据显示:中国XP用户心向Win 10
  9. 超高性价比WiFi蓝牙模块大合集
  10. css3 transform animation 动画 小结