CDN加速

HLS广告插播

更新时间:2021-01-22 13:34:55

一. 功能简介

  广告是视频网站重要的收入来源,视频网站斥巨资购买独播版权,很大程度上也是看中大流量入口的广告位价值。

  为减少客户技术投入,帮助客户更好的实现营收,网宿结合自身的技术优势,推出了HLS广告插播功能,支持在视频的片头、片尾和片中的指定位置,插入指定的广告内容,视频厂商可以基于视频内容的差异性,针对每个视频设置不同的广告插播策略,甚至可以根据每个用户设置不同的广告插播策略。

二. 功能说明

2.1. 基本原理


  用户点击视频网站的视频链接时,一般会向源站内容管理服务器请求该视频的URL信息,源站内容管理服务器会根据事先约定的规则,响应携带有视频广告参数的URL信息。

  用户获取到源站内容管理服务器响应的m3u8的URL信息后,便向CDN节点发起m3u8文件请求,CDN节点收到用户的请求后,首先根据问号后面的广告插播参数提取广告内容URL和广告插入时间等信息,然后解析出m3u8文件,再把广告内容URL根据广告插入时间添加到m3u8文件中,最后将改写后的m3u8文件响应给用户。用户根据CDN节点响应的m3u8文件,在指定的时间点请求指定的广告内容,从而达到灵活实现广告插播的目的。

2.2. 业务流程


网宿直播能力大升级:毫秒级低延时直播全新发布

图1 HLS广告插播业务流程图


  (1) 用户向源站内容管理服务器请求视频URL信息;

  (2) 源站内容管理服务器响应视频的m3u8文件的URL信息,该URL信息携带广告插播参数;

  (3) 用户获取到视频的m3u8文件的URL信息后,向CDN节点发起m3u8文件请求;

  (4) CDN节点收到用户的请求后,首先提取问号后面广告插播参数携带的值并进行utf-8解码,得出广告内容URL和广告插入时间等信息,如无缓存,则向源站请求m3u8文件;

  (5) 源站返回m3u8文件给CDN节点;

  (6) CDN节点解析m3u8 文件,根据m3u8 的内容格式将广告内容URL按照广告插入时间插入到对应的位置,再响应给用户。 

2.3. 应用实例


  某客户希望在片头、片中600s处以及片尾分别插入对应的广告内容1.ts、2.ts、3.ts,则用户请求的m3u8实例为:


http://ws.chinanetcenter.com/playlist.m3u8?ad=http%3a%2f%2fws.chinanetcenter.com%2f1.ts%26StartTime%3d0%26ad%3dhttp%3a%2f%2fws.chinanetcenter.com%2f2.ts%26StartTime%3d600%26ad%3dhttp%3a%2f%2fws.chinanetcenter.com%2f3.ts%26StartTime%3d-1

  CDN节点收到用户的m3u8文件请求,首先经过utf-8解码,提取出问号后面的广告内容URL和广告插入时间等信息:


 http://ws.chinanetcenter.com/playlist.m3u8?ad=http://ws.chinanetcenter.com/1.ts&StartTime=0&ad=http://ws.chinanetcenter.com/2.ts&StartTime=600&ad=http://ws.chinanetcenter.com/3.ts&StartTime=-1

  CDN节点提取到广告内容URL和广告插入时间后,首先获取并解析m3u8 文件,然后根据m3u8 的内容格式将广告内容URL按照广告插入时间插入到对应的位置,最后响应给用户。

三. 适用场景

  适用于使用HLS协议,并且希望基于每个请求实现灵活的广告插播等应用场景:

(1)每个视频的精彩片段位置不一样,插入广告的时间点需要灵活设置;

(2)每个视频的内容类型不一样,需要插入与视频内容相匹配的广告;

(3)用户最近经常浏览某类视频,需要插入与这类视频相关的广告。