多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[https://www.bilibili.com/read/cv855111/](https://www.bilibili.com/read/cv855111/) [https://blog.csdn.net/weixin\_45189747/article/details/94872944?utm\_medium=distribute.pc\_relevant\_bbs\_down.none-task--2~all~first\_rank\_v2~rank\_v29-2.nonecase&depth\_1-utm\_source=distribute.pc\_relevant\_bbs\_down.none-task--2~all~first\_rank\_v2~rank\_v29-2.nonecase](https://blog.csdn.net/weixin_45189747/article/details/94872944?utm_medium=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v29-2.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v29-2.nonecase) 它是一种HTTP技术标准,根据用户带宽情况自动选择合适视频流技术规范。原理将大视频文件切割成很多小文件,再通过一个XML文件mpd后缀名文件中定义这些小文件,当DASH播放器请求视频时,先请求mpd文件,然后再解析XML文件依次读取视频小文件 ![](https://img.kancloud.cn/12/4e/124eee98b5cead83576e6a124faedba7_756x757.png) 该技术规范还扩展定义如何进行加密视频,播放器如何授权后再访问的相关技术。下面将介绍3个工具组合实现上面应用场景。 1. ffmpeg(https://www.ffmpeg.org/),很强大的视频处理工具,如果视频需要进行格式转换、压缩等需要用到这个工具,具体使用查看[我上一篇文章](https://www.mayi888.com/archives/57179),介绍过如何使用ffmpeg。 2. bento4 工具包(https://www.bento4.com/downloads/),这个工具包提供了一系列加工视频的工具,使用该工具对视频进行处理,这些处理包括:加密、将视频转换为Dash格式的分片文件等,本文会重点介绍。 3. Dash.js 视频播放js库(https://github.com/Dash-Industry-Forum/dash.js),使用这个js库来播放加密后的视频。 **如何将视频转为DASH规范格式?** 使用ffmpeg将视频进行格式转换后使用mp4dash工具进行处理 1)mp4fragment video.mp4 video-fragmented.mp4 2)mp4dash video-fragmented.mp4 3)产生一个output目录将该目录下所有文件上传服务器,有一个stream.mpd,使用文本编辑打开如下图所示: ![](https://img.kancloud.cn/4c/38/4c38d409db8e86fba370599281b708e8_768x506.png) 使用Dash.js播放器,加载stream.mpd URL路径,视频正确播放如下图。 ![](https://img.kancloud.cn/e5/c6/e5c6395d4689fa68c21df8dab3c318c6_768x506.png)