P2P直播系统及P2P直播方法转让专利

申请号 : CN201611248954.X

文献号 : CN106791993B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘炜

申请人 : 上海云熵网络科技有限公司

摘要 :

本发明公开了一种P2P直播系统及P2P直播方法,P2P直播系统包括HTTP服务器、HLS解析服务器以及播放端;播放端安装有直播处理程序,直播处理程序在本地启动http守护进程;直播处理程序从HTTP服务器获取视频数据,从HLS解析服务器中获取m3u8列表文件;直播处理程序在本地生成若干第一文件片段,并插入至m3u8列表文件的当前待播放的视频文件片段之前,以在本地修改m3u8列表文件;播放端在P2P直播过程中从http守护进程请求并获取修改后的m3u8列表文件,并在解析后从http守护进程请求并获取若干第一文件片段和当前待播放的视频文件片段以进行播放。本发明能够加快启播速度并且降低延迟。

权利要求 :

1.一种P2P直播系统,其特征在于,包括HTTP服务器、HLS解析服务器以及播放端;所述播放端安装有一直播处理程序,所述直播处理程序用于在本地启动一http守护进程;

所述直播处理程序用于从所述HTTP服务器获取视频数据,以及从所述HLS解析服务器中获取m3u8列表文件;

所述直播处理程序还用于在P2P直播过程中在本地生成若干第一文件片段,并将所述若干第一文件片段插入至m3u8列表文件的当前待播放的视频文件片段之前,以在本地修改m3u8列表文件;所述第一文件片段包括但不限于一帧黑屏画面文件片段或无画面文件片段;

所述第一文件片段的时长不超过1s;

所述第一文件片段的数量为2个;

所述播放端用于在P2P直播过程中从所述http守护进程请求并获取修改后的m3u8列表文件,并在解析后根据请求参数向所述http守护进程请求,所述http守护进程根据请求参数将指定位置的所述若干第一文件片段和所述当前待播放的视频文件片段返回给播放端用以播放。

2.如权利要求1所述的P2P直播系统,其特征在于,所述P2P直播过程包括启播过程以及播放过程。

3.一种P2P直播方法,其特征在于,其利用如权利要求1所述的P2P直播系统实现,所述P2P直播方法包括以下步骤:S1、所述直播处理程序从所述HTTP服务器获取视频数据,以及从所述HLS解析服务器中获取m3u8列表文件;

S2、所述直播处理程序在P2P直播过程中在本地生成若干第一文件片段,并将所述若干第一文件片段插入至m3u8列表文件的当前待播放的视频文件片段之前,以在本地修改m3u8列表文件;所述第一文件片段包括但不限于一帧黑屏画面文件片段或无画面文件片段;

所述第一文件片段的时长不超过1s;

所述第一文件片段的数量为2个;

S3、所述播放端在P2P直播过程中从所述http守护进程请求并获取修改后的m3u8列表文件,并在解析后根据请求参数向所述http守护进程请求,所述http守护进程根据请求参数将指定位置的所述若干第一文件片段和所述当前待播放的视频文件片段返回给播放端用以播放。

4.如权利要求3所述的P2P直播方法,其特征在于,所述P2P直播过程包括启播过程以及播放过程。

说明书 :

P2P直播系统及P2P直播方法

技术领域

[0001] 本发明涉及一种P2P(Peer to Peer,对等网络)直播技术领域,特别是涉及一种在HLS(HTTP Live Streaming,苹果公司实现的基于HTTP的流媒体传输协议)中加快启播速度和降低延迟的P2P直播系统及P2P直播方法。

背景技术

[0002] HLS是苹果公司实现的基于HTTP(HyperText Transfer Protocol,超文本传输协议)的流媒体传输协议,可以实现流媒体的直播和点播,主要应用在iPhone、iPod、iTouch和iPad等移动终端上。
[0003] 对于直播来说,其工作原理是将直播流切分成TS媒体文件,同时生成m3u8索引文件,播放端按照m3u8索引文件顺序依次下载每个媒体文件进行播放。
[0004] 现有HLS技术所存在的问题是启播慢和延迟高,启播时间是指从点击播放器的播放按钮到视频可以被正常播放所产生的时间(通俗来讲,启播速度主要就是看打开视频的快慢);而延迟则是指一个视频帧从被生产出来到被消费掉的时间差(或者说是,用户端播放的画面和现场画面的时间差)。现有HLS技术存在的启播慢和延迟高的主要原因在于,HLS协议建议播放器缓存3个segment(视频文件片段)才开始播放,而一个segment通常的时间是10s,即在播放过程中播放器缓存便引入了30s的延迟,在启播时,播放端需要下载30s的视频内容才能播放,在带宽受限的情况下需要很长时间才能完成下载。
[0005] 现有技术中针对启播慢和延迟高的技术问题,所提供的解决方案有:
[0006] 方案1,缩短每个segment的时间,例如将10s的播放内容缩短成5s,但HLS要求每个segment能够独立播放,也就是说每个segment至少需要一个I帧,I帧需要的字节数远高于其他视频帧,所以缩短segment带来的负面效果就是降低了视频的压缩效率;
[0007] 方案2,优化播放器,例如只需要缓存一个segment,就可以开始进行播放。但对于提供视频服务的人来说,市场上有很多第三方实现的播放器是无法控制的,所以也不能100%解决上述问题。

发明内容

[0008] 本发明要解决的技术问题是为了克服现有技术中HLS技术存在启播慢和延迟高的问题并且没有很好的解决方案的缺陷,提供一种在HLS中加快启播速度和降低延迟的P2P直播系统及P2P直播方法。
[0009] 本发明是通过下述技术方案来解决上述技术问题的:
[0010] 本发明提供了一种P2P直播系统,其特点在于,包括HTTP服务器、HLS解析服务器以及播放端;所述播放端安装有一直播处理程序,所述直播处理程序用于在本地启动一http守护进程;
[0011] 所述直播处理程序用于从所述HTTP服务器获取视频数据,以及从所述HLS解析服务器中获取m3u8列表文件;
[0012] 所述直播处理程序还用于在P2P直播过程中在本地生成若干第一文件片段,并将所述若干第一文件片段插入至m3u8列表文件的当前待播放的视频文件片段之前,以在本地修改m3u8列表文件;所述第一文件片段包括但不限于一帧黑屏画面文件片段或无画面文件片段;
[0013] 所述播放端用于在P2P直播过程中从所述http守护进程请求并获取修改后的m3u8列表文件,并在解析后根据请求参数向所述http守护进程请求,所述http守护进程根据请求参数将指定位置的所述若干第一文件片段和所述当前待播放的视频文件片段返回给播放端用以播放。
[0014] 较佳地,所述第一文件片段的时长不超过1s。
[0015] 较佳地,所述第一文件片段的数量为2个。
[0016] 较佳地,所述P2P直播过程包括启播过程以及播放过程。
[0017] 本发明的目的在于还提供了一种P2P直播方法,其特点在于,其利用上述的P2P直播系统实现,所述P2P直播方法包括以下步骤:
[0018] S1、所述直播处理程序从所述HTTP服务器获取视频数据,以及从所述HLS解析服务器中获取m3u8列表文件;
[0019] S2、所述直播处理程序在P2P直播过程中在本地生成若干第一文件片段,并将所述若干第一文件片段插入至m3u8列表文件的当前待播放的视频文件片段之前,以在本地修改m3u8列表文件;所述第一文件片段包括但不限于一帧黑屏画面文件片段或无画面文件片段;
[0020] S3、所述播放端在P2P直播过程中从所述http守护进程请求并获取修改后的m3u8列表文件,并在解析后根据请求参数向所述http守护进程请求,所述http守护进程根据请求参数将指定位置的所述若干第一文件片段和所述当前待播放的视频文件片段返回给播放端用以播放。
[0021] 较佳地,所述第一文件片段的时长不超过1s。
[0022] 较佳地,所述第一文件片段的数量为2个。
[0023] 较佳地,所述P2P直播过程包括启播过程以及播放过程。
[0024] 本发明的积极进步效果在于:本发明通过在播放端安装本地程序,并且本地程序只需要下载到一个视频文件片段,播放端就能获取若干第一文件片段以及下载的视频文件片段,从而可以实现直接播放下载的视频文件片段,从而将延迟大致缩短到一个视频文件片段的时间,在启播时只需要下载一个视频文件片段即可,从而达到了加快启播速度并且降低延迟的目的。

附图说明

[0025] 图1为本发明的较佳实施例的P2P直播系统的模块示意图。
[0026] 图2为本发明的较佳实施例的P2P直播方法的流程图。

具体实施方式

[0027] 下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0028] 如图1所示,本发明的P2P直播系统包括HTTP服务器1、HLS解析服务器2以及播放端3,其中所述播放端3的数量可以有很多个,具体可以根据实际情况进行设置;
[0029] 所述播放端3的本地安装有一个直播处理程序(SDK),所述直播处理程序用于在本地启动一个HTTP守护进程,例如http://127.0.0.1:xxx/;
[0030] 在本发明中,所述直播处理程序用于从所述HTTP服务器1获取视频数据,以及从所述HLS解析服务器2中获取对应的m3u8列表文件;
[0031] 所述直播处理程序还用于在P2P直播过程中生成2个时长极短的第一文件片段,并将2个第一文件片段插入至m3u8列表文件的当前待播放的视频文件片段之前,以实现在本地修改m3u8列表文件;其中,所述第一文件片段可以包括但不限于一帧黑屏画面文件片段或无画面文件片段,其具体时长可设置为不超过1s;
[0032] 所述播放端3则用于在P2P直播过程中从所述http守护进程请求并获取修改后的m3u8列表文件,并在解析修改后的m3u8列表文件后根据请求参数(即start/end参数)向所述http守护进程请求,所述http守护进程根据请求参数将指定位置的所述2个第一文件片段和所述当前待播放的视频文件片段返回给播放端用以播放,由于所述2个第一文件片段的时长极短,从而就相当于在播放端直接播放所述当前待播放的视频文件片段,即实现了将延迟大致缩短到一个视频文件片段的时间,并且在启播时只需要下载一个视频文件片段即可,从而达到加快启播速度的目的。
[0033] 在本发明的具体实施过程中,所述P2P直播过程具体包括启播过程以及播放过程,在启播时,播放端本地生成2个极短的第一文件片段,插入到m3u8文件列表的开头,播放端拿到2个第一文件片段和当前待播放的视频文件片段即可开始播放;在播放过程中,会使用2个极短的第一文件片段作为最新的m3u8文件列表的开头,即直播处理程序下载到一个当前待播放的视频文件片段,播放端便可进行播放。
[0034] 下面举一个简单的例子对本发明与现有技术的实现方法进行比较:
[0035] 如下表1、表2所示,其中a、b、c和1、2、3即为m3u8文件的索引,a.ts、b.ts、c.ts、1.ts、2.ts、3.ts即为文件片段,后面对应的时间表示该文件片段的时长,另外,c.ts和3.ts分别为最接近当前播放时间的文件片段;
[0036] 表1现有技术实现方法
[0037]
[0038] 表2本发明实现方法
[0039]
[0040] 在现有技术中,播放端需要缓存a.ts、b.ts、c.ts3个文件片段才能开始播放,而在本发明中,用一帧黑屏画面文件片段或无画面文件片段(时长为0.1s)来替换掉原先的1.ts、2.ts中的内容,以缩短1.ts、2.ts的时长,从而播放端的直播处理程序只需要下载到一个视频文件片段,播放端的播放器就可以能到3个文件片段(包括两个时长为0.1s的文件片段),从而将延迟大致缩短到一个视频文件片段的时间,并且在启播时只需要下载一个视频文件片段即可,从而达到加快启播速度的目的。
[0041] 当然在本发明的具体实施过程中,第一文件片段的数量也不限于2个,可以根据实际情况进行调整,第一文件片段的时长也可以根据实际情况进行设置。
[0042] 本发明还提供了一种P2P直播方法,其利用上述的P2P直播系统实现,如图2所示,本发明的P2P直播方法包括以下步骤:
[0043] 步骤101、所述直播处理程序从所述HTTP服务器获取视频数据,以及从所述HLS解析服务器中获取m3u8列表文件;
[0044] 步骤102、所述直播处理程序在P2P直播过程中在本地生成2个第一文件片段,并将所述2个第一文件片段插入至m3u8列表文件的当前待播放的视频文件片段之前,以在本地修改m3u8列表文件;所述第一文件片段包括但不限于一帧黑屏画面文件片段或无画面文件片段;
[0045] 步骤103、所述播放端在P2P直播过程中从所述http守护进程请求并获取修改后的m3u8列表文件,并在解析后根据请求参数向所述http守护进程请求,所述http守护进程根据请求参数将指定位置的所述若干第一文件片段和所述当前待播放的视频文件片段返回给播放端用以播放。
[0046] 虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。