一种基于hls协议的流媒体广告插入方法及系统的制作方法

文档序号:9329284阅读:1752来源:国知局
一种基于hls协议的流媒体广告插入方法及系统的制作方法
【技术领域】
[0001]本发明涉及流媒体技术领域,尤其涉及一种基于HLS协议的流媒体广告插入方法及系统。
【背景技术】
[0002]当前动态码率自适应技术(HTTP Live Streaming,简称HLS,以下都用HLS代替)流媒体的广告增加方式是在HLS流媒体流生成前配置完成,插入广告的位置仅在视频开始前。片头的广告基本码(Elementary Stream,简称ES,以下用ES代替)流格式没有限制,所以实现很容易,生成前广告方便插入,流程为插入广告YUV数据,再编码,切片,发布,其中YUV是采用明亮度、色度来表征彩色视频信号。其中“Y”表示明亮度,“U”表示色调,“V”表示饱和度。
[0003]对于流媒体的非发布方,由于其无法接触未发布的流媒体,只能使用已经发布的流媒体,其不能使用现有的在流媒体生成前的广告增加方式进行广告插入。
[0004]并且,根据HLS协议,发布后增加的广告视频流的容器格式、ES流格式等格式、参数必须与原视频对应的格式、参数基本相同,如ES流格式、profile、level、宽高、是否允许加权预测等等。如果ES流格式不相同,会导致编码器异常,无法解码。
[0005]因此,现有技术还有待于改进和发展。

【发明内容】

[0006]本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于HLS协议的流媒体广告插入方法及系统,旨在解决现有技术中当流媒体视频开始后无法插入广告,容易出现编码异常,无法解码的缺陷。
[0007]本发明解决技术问题所采用的技术方案如下:
一种基于HLS协议的流媒体广告插入方法,其中,所述方法包括:
A、客户端向服务器发送第一流媒体视频播放请求;
B、服务器接收所述视频播放请求后,检测客户端请求播放的第一流媒体地址,且判断服务器中是否存在与第一流媒体地址对应的第二流媒体片段地址,如果存在则执行步骤E ;如果不存在则获取流媒体中视频基本码流格式为H.264的第一流媒体片段的第一视频基本码流参数及容器格式;
C、服务器将获取的第一视频基本码流参数与准备插入的广告的图像数据和音频数据进行编码,输出插入的广告对应的第二流媒体片段;
D、将第二流媒体片段存储到服务器上,服务器生成对应的第二流媒体片段地址并保存;
E客户端获取第二流媒体片段地址,修改第一流媒体片段列表,按照更新后的第一流媒体片段列表进行播放。
[0008]所述的基于HLS协议的流媒体广告插入方法,其中,所述步骤B具体包括: B1、服务器检测客户端请求播放的第一流媒体地址,判断服务器中是否存在与第一流媒体地址对应的第二流媒体片段地址,如果存在则执行步骤E ;如果不存在则从所述第一流媒体地址中下载原始的第一流媒体片段;
B2、从第一流媒体片段中获取第一视频基本码流参数,判断当前第一视频基本码流是否是H.264格式;
B3、如果第一视频基本码流是H.264格式,获取H.264格式的第一流媒体片段的基本码流参数及容器格式;
B4、如果第一视频基本码流不是H.264格式,退出。
[0009]所述的基于HLS协议的流媒体广告插入方法,其中,所述步骤C具体包括:
Cl、将第一视频基本码流参数及准备插入的广告的图像数据输入H264编码器,获得H.264格式的第二视频基本码流;
C2、将准备插入的广告的音频数据采用编码器进行编码,输出自动数据远程通信服务格式的音频流;
C3、根据第一流媒体的容器格式将生成的第二视频基本码流和音频流进行编码,输出插入的广告对应的第二流媒体片段。
[0010]所述的基于HLS协议的流媒体广告插入方法,其中,所述步骤D具体包括:
D1、将第二流媒体片段存储在服务器上,服务器生成对应的第二流媒体片段地址;
D2、服务器对第一流媒体地址和对应的第二流媒体片段地址进行存储。
[0011 ] 所述的基于HLS协议的流媒体广告插入方法,其中,所述步骤E具体包括:
E1、服务器将第二流媒体片段地址发送给客户端;
E2、客户端将获取到的第二流媒体片段地址加入第一流媒体片段列表;
E3、客户端按照更新后的第一流媒体片段列表进行播放。
[0012]一种基于HLS协议的流媒体广告插入系统,其中,所述系统包括:
请求接收模块,用于客户端向服务器发送第一流媒体视频播放请求;
检测与获取模块,用于服务器接收所述视频播放请求后,检测客户端请求播放的第一流媒体地址,且判断服务器中是否存在与第一流媒体地址相同的第二流媒体片段地址,如果存在则客户端获取第二流媒体片段地址,修改第一流媒体片段列表,按照更新后的第一流媒体片段列表进行播放;如果不存在则获取流媒体中视频基本码流格式为H.264的第一流媒体片段的第一视频基本码流参数及容器格式;
编码与输出模块,用于服务器将获取的第一视频基本码流参数与准备插入的广告的图像数据和音频数据进行编码,输出插入的广告对应的第二流媒体片段;
存储模块,用于将第二流媒体片段存储到服务器上,服务器生成对应的第二流媒体片段地址并保存;
播放模块,用于客户端修改第一流媒体片段列表,按照更新后的第一流媒体片段列表进行播放。
[0013]所述的基于HLS协议的流媒体广告插入系统,其中,所述检测与获取模块具体包括:
检测与下载单元,用于服务器检测客户端请求播放的第一流媒体地址,判断服务器中是否存在与第一流媒体地址对应的第二流媒体片段地址,如果存在则客户端获取第二流媒体片段地址,修改第一流媒体片段列表,按照更新后的第一流媒体片段列表进行播放;如果不存在则从所述第一流媒体地址中下载原始的第一流媒体片段;
获取与判断单元,用于从第一流媒体片段中获取第一视频基本码流参数,判断当前第一视频基本码流是否是H.264格式;
第一控制单元,用于如果第一视频基本码流是H.264格式,获取H.264格式的第一流媒体片段的基本码流参数及容器格式;
第二控制单元,用于如果第一视频基本码流不是H.264格式,退出。
[0014]所述的基于HLS协议的流媒体广告插入系统,其中,所述编码与输出模块包括:
第一编码单元,用于将第一视频基本码流参数及准备插入的广告的图像数据输入H264
编码器,获得H.264格式的第二视频基本码流;
第二编码单元,用于将准备插入的广告的音频数据采用编码器进行编码,输出自动数据远程通信服务格式的音频流;
第三编码与输出单元,用于根据第一流媒体的容器格式将生成的第二视频基本码流和音频流进行编码,输出插入的广告对应的第二流媒体片段。
[0015]所述的基于HLS协议的流媒体广告插入系统,其中,所述存储模块具体包括:
第一存储与地址生成单元,用于将第二流媒体片段存储在服务器上,服务器生成对应的第二流媒体片段地址;
第二存储单元,用于服务器对第一流媒体地址和对应的第二流媒体片段地址进行存储。
[0016]所述的基于HLS协议的流媒体广告插入系统,其中,所述播放模块具体包括:
发送单元,用于当服务器将第二流媒体片段地址发送给客户端;
列表增加单元,用于客户端将获取到的第二流媒体片段地址加入第一流媒体的片段列表;
播放单元,用于客户端按照更新后的第一流媒体片段列表进行播放。
[0017]有益效果:本发明通过在HLS流媒体播放时,对广告片段进行编码,可实现将广告片段地址加入流媒体的片段列表(m3u8文件)的需要位置,广告可以通过修改后的流媒体索引文件的形式进行插入,而且插入广告后的流媒体播放流畅,方便快捷。
【附图说明】
[0018]图1是本发明的一种基于HLS协议的流媒体广告插入方法的较佳实施例的流程图。
[0019]图2是本发明的一种基于HLS协议的流媒体广告插入系统的较佳实施例的功能原理框图。
【具体实施方式】
[0020]为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021]本发明第一实施例所述的一种基于HLS协议的流媒体广告插入方法,如图1所示,包括:
步骤S10、客户端向服务器发送第一流媒体视频播放请求。
[0022]具体实施时,用户通过视频网站例如优酷、爱奇艺、乐视等网站观看视频,而视频网站经常会在视频上增加广告。本发明中针对HLS流媒体数据中加入广告。HLS流媒体有发布的协议,该协议保证了符合HLS协议的流媒体能正常播放
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1