dash视频服务器本地搭建 (初探)
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视频服务器本地搭建 (初探)相关推荐
- 《微信小游戏远程服务器本地搭建》——本地搭建IIS静态文件服务器
本地文件服务器 前言 搭建背景 搭建需求 搭建流程 结尾 前言 开发游戏的同学们,经常都会遇到以下情况:当包体大于平台限制不被允许打包发布:建议将不必要的资源文件放在远程加载:打开发版本的包,没有合适 ...
- asp站点服务器,本地搭建ASP+IIS网站服务器平台
DW 只是网页开发工具 无法独立创建动态网站 必须建立相应的Web服务器环境和数据库运行环境 DW支持ASP JSP ColdFusion PHP MySQL 在惊醒ASP网页开发前 首先安装 ASP ...
- DASH视频系统(服务器播放器)搭建
文章目录 0. 概述 1. 搭建服务器(Nginx) 2. 获取源视频及音频 3. 安装编码器(FFmpeg) 4. 视频编码 5. 音频编码 6. 安装视频切片工具(Bento4) 7. 视频切片 ...
- 运维初学者必备之SRS音视频服务器搭建
运维初学者必备之SRS音视频服务器搭建 什么是srs音视频服务器? 答:SRS是一个流媒体集群,支持RTMP/HLS/HTTP-FLV/RTSP/DASH/WebRTC/SRT/GB28181,高效. ...
- 使用tomcat软件在本地搭建服务器
首先介绍eclipse开发JavaWeb项目需要配置的相关环境,使用tomcat软件在本地搭建服务器,然后再在eclipse环境下配置tomcat: 第一步:使用tomcat软件在本地搭建服务器,这个 ...
- 服务器是什么系统_为什么视频监控系统搭建,要使用流媒体服务器做视频分发?...
众所周知,TSINGSEE有很多视频流媒体平台和辅助分发的组件,例如EasyNVR.EasyDSS.EasyGBS均是流媒体平台,而EasyRTMPLive则是负责拉转推的推流网关. 而对于流媒体服务 ...
- NodeJs本地搭建服务器,模拟接口请求,获取json数据
最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...
- dns服务期搭建使用_使用maradns搭建简易dns服务器(本地实现dns劫持)
需求描述 本地搭建服务器,并且使用啦一个本地域名 test.loc 通过host解析到本地服务器,开发一个网页后想让手机直接访问test.loc来打开电脑上的网站,想实现这样的功能首先得让手机访问这个 ...
- 视频服务器是什么?要如何搭建?
视频服务器是指专门对音视频数据进行压缩.存储及处理的服务器,现在常见的都是视频云服务器,主要是对视频数据进行压缩编码,以满足存储和传输的要求. 一般用户视频方面的云服务器,4核4G的配置就可以跑动,不 ...
- 本地搭建SIP服务器
目录 本地搭建SIP服务器 SIP服务器 下载PortSIP PBX 登录和配置PortSIP PBX 添加分机用户 服务器常见问题 CPE 修改APN配置 VoIP测试 注册通话 注册 本地搭建SI ...
最新文章
- 设计模式05-建造者模式
- 操作系统——MiniDos
- Mysql存储过程(四)——异常处理
- python复制列表元素_Python学习教程:Python列表赋值,复制,深拷贝及5种浅拷贝详解...
- C#LeetCode刷题-哈希表
- linux终端 中国象棋,在Deepin系统下安装Xboard并使用它玩中国象棋
- Invalid bound statement (not found)错误的可能原因分析
- mongoDB Error:not master and slaveOk=false
- qq纯黑主题怎么设置_qq背景变黑色,怎么调过来
- 考研-高等数学(数学一)目录整理
- 用 Python 计算 Hurst 指数并预测市场趋势
- Docsify支持Markdown多种流程图
- 软件工程-团队作业2
- 红蓝眼睛逻辑问题推理
- 【UE4】联网游戏开发的正确姿势
- 推荐一个免费服务器网站|亲测可用
- svn怎么执行清理命令_C盘又见红了?一个C盘清理强迫症教你真正有效的解决方法!...
- arch nvidia驱动安装记录
- 视觉惯性单目SLAM (五)矩阵微积分
- 【信号与系统学习笔记 3】—— 系统,以及系统的性质以及判断方法解析
热门文章
- linux子进程中断信息码6,Linux入门学习——进程
- matlab定位噪声位置,Matlab怎么样调节KALMAN滤波中的过程噪声和观测噪声
- 神经网络入门学习-一些基本的概念+不含隐层
- DeepFake——实际操作
- 纪念一下我这尴尬中二的排名吧
- 基于TortoiseGit完成本地代码上传Git远程仓库中
- picpick尺子像素大小精度不够准确_袖珍大小MFJ-223 1-60MHz彩色图形VNA矢量网络分析仪...
- UNITY服务器登录验证设计,Unity游戏登录模块流程(需验证)
- 营山天气预报软件测试,营山天气预报15天
- 计算机应用可分为哪两类,计算机应用简答题