### [谈谈网站视频服务的优化方案](https://www.7b3.cn/article/2139) **Published:** 2022-04-04T12:06:11 **Author:** 泵小丫 **Excerpt:** 最新的测速视频就在本文上方,欢迎测试! 原来所有的视频都是录制好后丢服务器里边获取直链就直接挂在网站前端播放了… **最新的测速视频就在本文上方,欢迎测试!** 原来所有的视频都是录制好后丢服务器里边获取直链就直接挂在网站前端播放了,这样非常的方便,对于前期用户少的情况来说是完全可以应付的,现在随着播放量的提升,出现了加载慢、播放卡顿、无法正常播放的问题,所以趁着假期我们对服务器进行了升级,由原来的云服务器升级为物理服务器,宽带也由原来的10M提升至100M,但是如果对视频存储方案不做出优化,即便服务器性能再好也是徒劳,所以还进行了以下举措: - 压缩视频大小 原来为了保证视频的清晰度是没有对视频进行压缩的,这导致很多视频虽然只有几十分钟的时长,但是文件大小却有1GB之大,这对在线播放是不利的,对用户的不同网络环境的兼容性也很差,所以趁此机会对现有的视频进行了基本无损的体积压缩,部分视频降低了50%的体积,更有甚者能够压缩80%的体积,这对在线播放无疑是有很大帮助的。因为视频不多所以在本地电脑采用“小丸工具箱”软件进行了批量压缩,效果很好! ![](https://img.7b3.cn/7b3/20220404/hFdfoLgpCpz3.png?imageslim) - 视频切片 传统的视频播放采用MP4格式,随着用户群的增加,mp4文件播放的弊端也日益凸显,主要集中在两个方面: ①当视频时长比较长的时候,mp4的关键帧元素往往很大,需要加载很长时间才能开始播放,网速不好的情况缓冲加载就要20多秒的时间。 ② 当用户打开一个视频播放的时候,浏览器会持续请求下载mp4文件直到下载完成,就算是用户暂停视频播放浏览器也会持续这种下载状态,如果这个视频文件是500M则会请求服务器下载500M文件,是1G则会不停下载1G,给服务器硬盘和宽带造成很大浪费和压力。 而HLS的优势就在于此,HLS流主要指.m3u8格式的视频文件,这个.m3u8其实就是一个文件列表list,用于加载分割成不同小段的.ts文件,这个.ts文件就来自于分片处理。 当 M3U8 文件作为媒体播放列表(Media Playlist)时,其内部信息记录的是一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。其格式如下所示: ```text #EXTM3U #EXT-X-TARGETDURATION:10 #EXTINF:9.009, http://media.example.com/first.ts #EXTINF:9.009, http://media.example.com/second.ts #EXTINF:3.003, http://media.example.com/third.ts #EXT-X-ENDLIST ``` 当 M3U8 作为主播放列表(Master Playlist)时,其内部提供的是同一份媒体资源的多份流列表资源。其格式如下所示: ```text #EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" http://example.com/low/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=240000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" http://example.com/lo_mid/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2" http://example.com/hi_mid/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2" http://example.com/high/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=64000,CODECS="mp4a.40.5" http://example.com/audio/index.m3u8 #EXT-X-ENDLIST ``` 当我们请求播放.m3u8文件格式时,浏览器是分段加载.ts文件的,这样不会出现开始播放加载慢的用户体验,随着视频继续播放,会陆续加载小段.ts直至播放完成,详细过程可以查看下方示意: ![](https://img.7b3.cn/7b3/20220404/Ml4lszyanLNc.png?imageslim) ![](https://img.7b3.cn/7b3/20220404/inerYWNCC3GN.gif) ![](https://img.7b3.cn/7b3/20220404/OLB7CLQwU2NS.png?imageslim) 综上所示:**M3U8格式的视频文件好处在于:** **①加载速度快,即使在网速不好的情况下,任意拖拽视频进度条,对于视频的加载时间都可以做到立即响应;** **②视频文件既可以在flash环境播放,又能在无flash的html5环境播放,多终端播放效果好;** **③可以实现多种码率在不同网速下的自动切换,网速好自动切换高清晰度视频,网速慢自动播放低清晰度文件;** **④可以实现流加密(视频文件本身加密)、分段下载播放、任意时间点拖拽播放、随机视频文件广告插入等等优势;** **⑤面对海量视频播放的需求时,对服务器本身的压力小,节省宽带费用,是目前互联网视频网站的主流选择。** - 添加备用播放通道 当然,本次升级我们也并没有将鸡蛋放在一个篮子里,同时添加云存储OSS作为备用播放渠道,一旦服务器加载出现问题,可以切换至备用通道播放视频,能够最大限度保证在线! ![](https://img.7b3.cn/7b3/20220404/wwXvyd0lJkE3.png?imageslim) 以上就是本次更新内容的总结,用于备忘! 2022.04.04 * * * **![](https://img.7b3.cn/7b3/2021/01/20210131132356643.gif)** **免责声明** 泵小丫收集资源均来自网络 仅用于内部交流之用,如有需要请支持正版 **Tags:** HLS, 升级, 测试, 演示 **Categories:** 公告, 其他 ---