分发设置说明及使用

分发原理详解

一般我们播放m3u8视频时候,实际上是通过访问m3u8文件索引的切片达到播放目的;而程序转码后的m3u8默认是从所在服务器读取切片文件,所以当越来越多的人请求时,带宽、负载和硬盘IO慢慢上限,最后导致播放会卡起来,大多数情况下主要因素还是带宽问题,不过这时候遇到这些问题就可以使用分发解决了。

分发的原理就是程序会动态处理前端访问的m3u8文件,并将里面的切片索引到指定域名请求,这时候我们可以将切片存放到其它服务器、云存储如阿里云OSS、七牛云、亚马逊S3等,再绑定分发域名,然后播放的时候,直接通过分发域名从这些地方读取切片,从而解决负载、带宽等问题。

分发详细演示

提示:分发域名可以设置1到n个,

一般我们安装完程序,都是转码切片后,直接使用m3u8播放地址观看,这时候m3u8加载过程如下:

#比如我的m3u8链接地址如下:
http://moemv.com/public/videos/5dfca55166fb377a74d83447/index.m3u8
#当用户读取m3u8后,会加载服务器里的ts文件,才开始播放,链接大致如下:
http://moemv.com/public/videos/5dfca55166fb377a74d83447/index0.ts
http://moemv.com/public/videos/5dfca55166fb377a74d83447/index1.ts
http://moemv.com/public/videos/5dfca55166fb377a74d83447/index2.ts
http://moemv.com/public/videos/5dfca55166fb377a74d83447/index3.ts

从上面会发现,切片全部从本地服务器绑定的域名里读取。

接下来开启分发并设置了2个分发来源域名,此时,m3u8加载和分发前就不一样了,加载过程如下:

#比如我的m3u8链接地址如下:
http://moemv.com/public/videos/5dfca55166fb377a74d83447/index.m3u8
#当用户读取m3u8后,这时候会依次从你添加的分发域名读取ts文件,然后完成播放,链接大致如下:
http://a.moemv.com/public/videos/5dfca55166fb377a74d83447/index0.ts
http://b.moemv.com/public/videos/5dfca55166fb377a74d83447/index1.ts
http://a.moemv.com/public/videos/5dfca55166fb377a74d83447/index2.ts
http://b.moemv.com/public/videos/5dfca55166fb377a74d83447/index3.ts

这里就可以看到,切片全部从分发域名里读取;且设置分发前后,只是加载切片链接的域名变化了,路径都不变。

相关说明

分发大致设置思路

1、在纯净版后台设置分发;一个分发域名对应一个分发节点,N个对应N个分发节点。
2、将分发覆盖范围内的视频切片,转移或同步到分发节点,比如其它服务器、云存储等;且从app/public开始同步,也就是同步到分发节点的切片都在public目录,即路径均为public/videos/5dfca55166fb377a74d83447/index3.ts。
3、给分发点设置一个域名即分发域名,其根目录为同步到分发节点的切片目录public,保证切片读取路径为http://分发域名/public/videos/5dfca55166fb377a74d83447/index3.ts。

当然分发域名也可以是cdn域名,只要可以读取到切片文件就行;也就是设置好cdn,缓存程序的切片,添加到分发域名可以起到切片网络加速作用。

对于带宽要求

提示:使用云存储如阿里云OSS、七牛云、亚马逊S3等,或者CDN的,不需要管分发节点带宽,毕竟商家提供。

使用服务器自建分发节点的,需要注意下带宽问题;如果你同时在线人数1000人,按照一个300-400k左右计算,大概需要400M左右,也就是需要4G总带宽提供播放;有的国外服务器商家带宽计算会不一样,以商家为准;如果一个分发节点即服务器带宽不够的,需要多个分发节点,也就是全部分发节点带宽加起来足够即可。

对于所需分发节点的数量

如果你使用的服务商云存储作为分发节点,则直接设置一个分发域名即分发节点即可;如果自建分发节点,当一个分发节点带宽够用的时候,可以设置一个分发域名即分发节点,不够就增加分发域名即分发节点,直到带宽够用不卡为止。

配置好分发后,是否还需要保留转码服务器的切片

开启分发后,m3u8会从转码服务器读取,且必须要从转码服务器读取,毕竟需要程序动态处理分发,且切片文件只会从分发节点读取。

本身转码服务器也可以作为一个分发节点,如果你想将转码服务器设置为一个分发节点,则不用删除转码服务器的切片,反之可以删除转码服务器上的切片文件。

分发详细设置

1、开启步骤

提示:该步骤可以先领会下意思,然后做完2和3步骤,再做1步骤即可。

点击后台左侧 ⇒ 分发配置,开启分发开关,然后添加分发域名,如果只想使用一个分发节点,就设置一个分发域名就行,N个就设置N个,关于所需节点数的选择参考上方说明即可。

2、同步app/public目录全部切片到分发节点

如果使用服务商云存储做分发节点,如阿里云OSS、七牛云、亚马逊S3等,则参考:同步教程

如果使用服务器自建分发节点,则参考:同步教程,如果需要多个分发节点,则将切片同步到一个节点后,其它节点只需要从这个节点同步,即保证多个分发节点数据一模一样即可。

如果使用CDN做分发节点,则按照常规网站设置即可,设置只缓存切片文件,缓存时间足够长。

3、给分发节点绑定一个分发域名

使用云存储和CDN做分发节点的,就不说绑定教程了,基本上服务商都有教程。

如果使用服务器自建分发节点,先在分发节点的服务器绑定一个域名,然后将同步过来的public切片目录,移到域名根目录即可。

此时再将该分发节点的域名加到分发设置就可以了。