研究了下CNTV的点播调度方式,以2016央视春晚]小品《将军与士兵》视频为例。
页面地址:http://chunwan.cntv.cn/2016/02/11/VIDE0DEeKsIGwlmOPWcNWcuY160211.shtml
1、用浏览器自带的开发者工具,查看浏览器加载的url请求,找到调度请求 http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=813f69ca643a4a83b6e8f26db3fdab5b&tz=-8&from=000news&url=http://chunwan.cntv.cn/2016/02/11/VIDE0DEeKsIGwlmOPWcNWcuY160211.shtml&idl=32&idlr=32&modifyed=false
2、用浏览器打开调度请求,结果如下
{
-
ack: "yes",
-
tag: "",
-
title: "[2016央视春晚]小品《将军与士兵》 表演者:侯勇、句号、于恒 (字幕版)",
-
play_channel: "CCTV-1高清",
-
produce: "",
-
editer_name: "yangwen",
-
produce_id: "wxsb01",
-
column: "2016央视春晚高清精切",
-
f_pgmtime: "2016-02-11 21:02:55",
-
cdn_info: {
-
cdn_vip: "vod.cntv.lxdns.com",
-
cdn_code: "VOD-MP4-CDN-CNC",
-
cdn_name: "3rd网宿"
-
-
video: {
-
totalLength: "848.00",
-
lowChapters: [
-
chapters: [
-
chapters2: [
-
chapters3: [
-
validChapterNum: 4,
-
url: ""
-
-
hls_cdn_info: {
-
cdn_vip: "asp.cntv.lxdns.com",
-
cdn_code: "VOD-HLS-CDN-CNC",
-
cdn_name: "3rd网宿"
-
-
asp_error_code: "0",
-
client_sid: "dfd53a5a-d5ee-11e5-a80f-0050568986d6",
-
public: "1",
-
is_invalid_copyright: "0",
-
is_protected: "0",
-
is_fn_hot: "true",
-
is_p2p_use: true,
-
default_stream: "SD",
-
lc: {
-
isp_code: "0",
-
city_code: "",
-
provice_code: "BJ",
-
country_code: "CN",
-
ip: "221.123.166.154"
-
-
is_ipad_support: "true",
-
version: "0.2",
-
embed: "",
-
is_fn_multi_stream: false
从以上可以看出,CDN返回为网宿,chapters 为多码率,不同码率分段不同,高码率分段较多,低码率分段较少
3、从浏览器开发者工具中,看到浏览器解下来会请求
http://vod.cntv.lxdns.com/flash/mp4video48/TMS/2016/02/11/813f69ca643a4a83b6e8f26db3fdab5b_h264818000nero_aac32-1.mp4?start=72
可以看到,此请求是请求到网宿的。(lxdns.com为网宿域名),此请求返回结果为302,重定向到
http://218.26.67.22/vod.cntv.lxdns.com/flash/mp4video48/TMS/2016/02/11/813f69ca643a4a83b6e8f26db3fdab5b_h264818000nero_aac32-1.mp4?start=72&wshc_tag=0&wsts_tag=56c535fb&wsid_tag=dd7ba69a&wsiphost=ipdbm
浏览器接着请求重定向地址,获取视频。
4、根据以上情况,判定CNTV的调度方式为
a、用户先访问CNTV调度API,从调度API获取分配服务的CDN,分配方式为按照用户的IP地址分配
b、用户访问CDN的调度API(或称为GLSB),调度API通过302方式返回服务节点地址,302返回的服务节点依托于用户的IP地址
c、用户根据节点地址拼出访问url,到CDN边缘节点获取服务