云转码
2022-04-06T03:30:50.325Z
这次更新是将昨天更新的线路功能再次升级一下,这次单线路中可以设置多域名多服务器同时提供服务,什么意思呢?比如我设置了一个线路,名为默认线路,默认线路设置为默认,然后开放给所有用户,包括登录用户和未登录用户都能观看,然后因为默认线路的负载比较高,可能一个服务器没办法提供足够的带宽资源,于是我就可以设置多个域名,对应多个服务器给默认线路这一个线路提供服务。
设置域名:https://a.com|https://b.com|https://c.com
当用户加载默认线路时,实际m3u8内容中可能是这样的:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:18
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:17.400000,
https://a.com/index0.ts
#EXTINF:10.000000,
https://b.com/index1.ts
#EXTINF:5.480000,
https://b.com/index2.ts
#EXTINF:14.200000,
https://b.com/index3.ts
#EXTINF:4.800000,
https://c.com/index4.ts
#EXTINF:10.000000,
https://a.com/index5.ts
#EXTINF:17.720000,
https://c.com/index6.ts
#EXT-X-ENDLIST
也就是在加载的M3U8中,ts会随机使用你设置的多域名,让多服务器负载均衡这一个线路。
截图如下:
获取线路列表
GET /api2/lines
#返回数据
[
{
"group": null,
"vipGroup": null,
"createAt": "2021-06-28T03:55:16.236Z",
"_id": "60da81313b870875ec5d9fa4",
"title": "组合线路",
"url": "https://cdn1.efvcms.com|https://cdn2.efvcms.com",
"open": "on",
"default": "on",
"notlogin": "on",
"__v": 0
},
{
"group": null,
"vipGroup": null,
"createAt": "2021-06-28T03:55:16.236Z",
"_id": "60da817b3b870875ec5da0b5",
"title": "cn2线路",
"url": "https://cdn3.efvcms.com",
"open": "on",
"default": null,
"notlogin": "on",
"__v": 0
}
]
m3u8调用指定线路
https://域名/index.m3u8?line=线路id
m3u8调用示例
#直接访问,则自动调用默认线路
/videos/60d88e0d66c8886d0a961818/720/index.m3u8
#使用上述线路列表示例的cn2线路
/videos/60d88e0d66c8886d0a961818/720/index.m3u8?line=60da817b3b870875ec5da0b5