2019-4-17 15:54:17 星期三

技术说明:

dash: 将一个大视频分解成不同分辨率, 不同清晰度的小视频, 以及一个描述文件(后缀: mpd), 根据网络带宽自动调整视频流, 看起来更顺畅, 拖动也很顺畅

用到的工具/技术:

ffmpeg: 生成不同分辨率的视频

bento4: 将mp4视频切割成许多小段

nginx: 负责展示网页, 以及输出视频流

html5: video 标签, src属性指向mpd描述文件

dash.js: 配合video标签, 播放dash后的视频

python 2.7: bento4用到了

参考:

dash简介: https://blog.csdn.net/ai2000ai/article/details/80306693

dash简介: https://blog.csdn.net/datamining2005/article/details/62225579

IIS搭建本地视频服务器: https://www.instructables.com/id/Making-Your-Own-Simple-DASH-MPEG-Server-Windows-10/

nginx搭建dash服务器:  https://blog.csdn.net/OCTODOG/article/details/79007302

下载 ffmpeg软件: https://ffmpeg.zeranoe.com/builds/

下载bento4dash视频切割软件: https://www.bento4.com/downloads/

网页客户端dashjs(里边介绍了两种使用方法):  https://www.npmjs.com/package/dashjs

过程:

1. 修改hosts, 添加:

127.0.0.1 www.testvideo.com
127.0.0.1 www.test.com

2. nginx配置1: (h5页面)

server {listen       80;server_name  www.test.com;location / {root    D:\server\code;index  index.php index.html;}}

nginx配置2: (视频), 重启nginx

server {listen       80;server_name  www.testvideo.com;location / {add_header Access-Control-Allow-Methods “GET,HEAD;add_header Accept-Ranges "bytes";add_header Access-Control-Allow-Origin "*";add_header Access-Control-Expose-Headers “Content-Lengrh,Content-Range,Date,Server,Transfer-Encoding,origin,range,x-goog-meta-foo1”;root    E:/video/fragment/output;}}

3. 准备HTML页面:

 1 <!doctype html>
 2 <html>
 3     <head>
 4         <title>Dash.js Rocks</title>
 5         <style>
 6             video {
 7                 width: 640px;
 8                 height: 360px;
 9             }
10         </style>
11     </head>
12     <body>
13         <div>
14             <video data-dashjs-player autoplay src="http://www.testvideo.com/stream.mpd" controls>
15             </video>
16         </div>
17         <script src="https://cdn.dashjs.org/latest/dash.all.min.js"></script>
18     </body>
19 </html>
20
21 //或者
22 <!DOCTYPE html>
23 <html lang="en">
24 <head>
25     <meta charset="utf-8"/>
26     <title>Auto-player instantiation example, single videoElement, using src attribute</title>
27     <script src="https://cdn.dashjs.org/latest/dash.all.min.js"></script>
28     <!--dash.all.min.js should be used in production over dash.all.debug.js
29         Debug files are not compressed or obfuscated making the file size much larger compared with dash.all.min.js-->
30     <!--<script src="../../dist/dash.all.min.js"></script>-->
31
32     <style>
33         video {
34             width: 640px;
35             height: 360px;
36         }
37     </style>
38
39     <body>
40         <div>
41             <video controls="true" id="videoPlayer" />
42         </div>
43         <script>
44             (function(){
45                 var url = "http://www.testvideo.com/stream.mpd";
46                 var player = dashjs.MediaPlayer().create();
47                 player.initialize(document.querySelector("#videoPlayer"), url, true);
48             })();
49         </script>
50     </body>
51 </html>

View Code

4. 下载原始视频

选择一个mp4视频下载到本地就可以了

5. 用ffmpeg工具处理视频

先下载安装ffmpeg, 然后将ffmpeg/bin 放到环境变量中, 要不然敲命令会很麻烦

我这里只是对原始视频用 ffmpeg视频处理了一下, 没有生成很多分辨率的视频, 所以目前只有一个视频文件

ffmpeg -i xxxx.mp4

6. 用bento4继续处理视频, 这个工具会把切好的视频放到当前目录的output目录中

先下载安装bento4, 然后将bento4/bin放到环境变量中, 要不然敲命令会很麻烦

mp4dash xxxx.mp4

这条命令处理完毕后会自动生成文件夹output, 这个output文件夹要跟nginx配置2中的root指令后边的值要一致

7. 访问 http://www.test.com/index.html 应该就有视频可以播放了

转载于:https://www.cnblogs.com/iLoveMyD/p/10724454.html

dash视频服务器本地搭建 (初探)相关推荐

  1. 《微信小游戏远程服务器本地搭建》——本地搭建IIS静态文件服务器

    本地文件服务器 前言 搭建背景 搭建需求 搭建流程 结尾 前言 开发游戏的同学们,经常都会遇到以下情况:当包体大于平台限制不被允许打包发布:建议将不必要的资源文件放在远程加载:打开发版本的包,没有合适 ...

  2. asp站点服务器,本地搭建ASP+IIS网站服务器平台

    DW 只是网页开发工具 无法独立创建动态网站 必须建立相应的Web服务器环境和数据库运行环境 DW支持ASP JSP ColdFusion PHP MySQL 在惊醒ASP网页开发前 首先安装 ASP ...

  3. DASH视频系统(服务器播放器)搭建

    文章目录 0. 概述 1. 搭建服务器(Nginx) 2. 获取源视频及音频 3. 安装编码器(FFmpeg) 4. 视频编码 5. 音频编码 6. 安装视频切片工具(Bento4) 7. 视频切片 ...

  4. 运维初学者必备之SRS音视频服务器搭建

    运维初学者必备之SRS音视频服务器搭建 什么是srs音视频服务器? 答:SRS是一个流媒体集群,支持RTMP/HLS/HTTP-FLV/RTSP/DASH/WebRTC/SRT/GB28181,高效. ...

  5. 使用tomcat软件在本地搭建服务器

    首先介绍eclipse开发JavaWeb项目需要配置的相关环境,使用tomcat软件在本地搭建服务器,然后再在eclipse环境下配置tomcat: 第一步:使用tomcat软件在本地搭建服务器,这个 ...

  6. 服务器是什么系统_为什么视频监控系统搭建,要使用流媒体服务器做视频分发?...

    众所周知,TSINGSEE有很多视频流媒体平台和辅助分发的组件,例如EasyNVR.EasyDSS.EasyGBS均是流媒体平台,而EasyRTMPLive则是负责拉转推的推流网关. 而对于流媒体服务 ...

  7. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

  8. dns服务期搭建使用_使用maradns搭建简易dns服务器(本地实现dns劫持)

    需求描述 本地搭建服务器,并且使用啦一个本地域名 test.loc 通过host解析到本地服务器,开发一个网页后想让手机直接访问test.loc来打开电脑上的网站,想实现这样的功能首先得让手机访问这个 ...

  9. 视频服务器是什么?要如何搭建?

    视频服务器是指专门对音视频数据进行压缩.存储及处理的服务器,现在常见的都是视频云服务器,主要是对视频数据进行压缩编码,以满足存储和传输的要求. 一般用户视频方面的云服务器,4核4G的配置就可以跑动,不 ...

  10. 本地搭建SIP服务器

    目录 本地搭建SIP服务器 SIP服务器 下载PortSIP PBX 登录和配置PortSIP PBX 添加分机用户 服务器常见问题 CPE 修改APN配置 VoIP测试 注册通话 注册 本地搭建SI ...

最新文章

  1. 设计模式05-建造者模式
  2. 操作系统——MiniDos
  3. Mysql存储过程(四)——异常处理
  4. python复制列表元素_Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解...
  5. C#LeetCode刷题-哈希表
  6. linux终端 中国象棋,在Deepin系统下安装Xboard并使用它玩中国象棋
  7. Invalid bound statement (not found)错误的可能原因分析
  8. mongoDB Error:not master and slaveOk=false
  9. qq纯黑主题怎么设置_qq背景变黑色,怎么调过来
  10. 考研-高等数学(数学一)目录整理
  11. 用 Python 计算 Hurst 指数并预测市场趋势
  12. Docsify支持Markdown多种流程图
  13. 软件工程-团队作业2
  14. 红蓝眼睛逻辑问题推理
  15. 【UE4】联网游戏开发的正确姿势
  16. 推荐一个免费服务器网站|亲测可用
  17. svn怎么执行清理命令_C盘又见红了?一个C盘清理强迫症教你真正有效的解决方法!...
  18. arch nvidia驱动安装记录
  19. 视觉惯性单目SLAM (五)矩阵微积分
  20. 【信号与系统学习笔记 3】—— 系统,以及系统的性质以及判断方法解析

热门文章

  1. linux子进程中断信息码6,Linux入门学习——进程
  2. matlab定位噪声位置,Matlab怎么样调节KALMAN滤波中的过程噪声和观测噪声
  3. 神经网络入门学习-一些基本的概念+不含隐层
  4. DeepFake——实际操作
  5. 纪念一下我这尴尬中二的排名吧
  6. 基于TortoiseGit完成本地代码上传Git远程仓库中
  7. picpick尺子像素大小精度不够准确_袖珍大小MFJ-223 1-60MHz彩色图形VNA矢量网络分析仪...
  8. UNITY服务器登录验证设计,Unity游戏登录模块流程(需验证)
  9. 营山天气预报软件测试,营山天气预报15天
  10. 计算机应用可分为哪两类,计算机应用简答题