🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[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) 使用视频切片(或称为分段)来播放视频是一种常见的技术,可以提供更好的流媒体传输和播放体验。下面是使用 PHP 进行视频切片的基本步骤: 1. 视频转码:首先,需要将原始视频文件转码为适合切片的格式,例如 MPEG-DASH 或 HLS。可以使用工具如 FFmpeg 来进行视频转码。 2. 视频切片:接下来,将转码后的视频文件切割成若干个小的视频片段。每个片段通常具有相同的时长(例如 5 秒)并保存为独立的文件。可以使用 FFmpeg 或其他专门用于切片的工具来完成此步骤。 3. 生成切片清单文件:对于 MPEG-DASH,需要生成一个 MPD(Media Presentation Description)文件,该文件描述了切片的时序信息和地址。对于 HLS,需要生成一个 M3U8 文件,其中包含切片的地址信息。可以使用相关工具或库来生成这些清单文件。 4. 设置服务器:将切片文件和清单文件上传到服务器,并设置适当的服务器配置,以确保可以通过 HTTP 协议访问切片文件和清单文件。 5. 前端播放器:在前端页面中使用 HTML5 视频播放器(如 video 标签)或使用第三方的流媒体播放器库(如 Video.js、DPlayer 等)来加载切片清单文件并进行视频播放。 需要注意的是,视频切片需要额外的服务器资源和处理步骤,以及一些专门的工具或库。此外,不同的切片格式和播放协议可能需要不同的处理方式和工具。因此,在实施视频切片时,建议参考相关文档、教程或使用成熟的开源解决方案来确保正确和高效地实现。