基于切片的RTP流传输方法、装置、终端及服务器与流程

文档序号:20010118发布日期:2020-02-22 04:01阅读:239来源:国知局
基于切片的RTP流传输方法、装置、终端及服务器与流程

本发明属于流媒体技术领域,尤其涉及一种基于切片的rtp流传输方法、装置、终端及服务器。



背景技术:

实时传输协议(real-timetransportprotocol,rtp)是一种实时流媒体协议。rtp协议广泛应用于流媒体相关的通讯和娱乐,包括电话、视频会议、视频监控、电视和基于网络的一键通业务(类似对讲机的通话)。

目前rtp流传输都是以整个rtp流为单位进行传输,服务器尽力发、客户端尽力收,确定要传输的rtp流之后无法根据网络状况进行改变rtp流的参数,例如,码率等。以传输视频文件为例,当传输网络变差时,rtp流可能无法正常传输,客户端播放该视频文件时会出现卡顿现象,严重影响用户观看体验。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于切片的rtp流传输方法、装置、终端及服务器,以解决目前的rtp流传输方法无法适应网络状况传输的技术问题。其技术方案如下:

第一方面,本申请提供了一种基于切片的rtp流传输方法,应用于客户端,包括:

向服务器发送播放基于rtp流的rtp流文件的播放请求,所述播放请求包括目标rtp流文件的文件标识,其中,所述rtp流文件包括至少一个rtp流,每一个rtp流包括多个rtp切片,每一个rtp切片具有唯一的切片标识;

接收所述服务器返回的所述目标rtp流文件的所有码率规格,所述码率规格由所述服务器根据所述文件标识从服务器中获得;

确定与当前网络状况相匹配的目标码率规格,并向所述服务器请求所述目标码率规格对应的内容数据;

当确定当前网络状况发生变化时,确定与变化后的网络状况相匹配的新的目标码率规格;

根据正在接收的rtp切片数据的切片标识,向所述服务器请求所述新的目标码率规格对应的rtp数据。

可选地,向所述服务器请求所述目标码率对应的文件内容数据,包括:

向所述服务器请求与所述目标码率规格相匹配的rtp数据所包含的rtp切片的切片标识列表及切片时刻信息;

根据所述切片时刻信息,从所述切片标识列表中确定出与目标时刻对应的目标切片标识;

向所述服务器请求所述目标切片标识所对应的rtp切片数据。

可选地,根据正在接收的rtp切片数据的切片标识,向所述服务器请求所述新的目标码率规格对应的rtp数据,包括:

根据所述正在接收的rtp切片数据的切片标识和所述新的目标码率规格,生成码率切换请求;

向所述服务器发送所述码率切换请求,以使所述服务器从所述新的目标码率规格对应的rtp切片数据;

接收所述服务器返回的所述新的目标码率规格对应的rtp切片数据。

第二方面,本申请还提供了一种基于切片的rtp流传输方法,应用于服务器中,包括:

接收客户端发送的播放基于rtp流的目标rtp流文件的播放请求,所述播放请求包括目标rtp流文件的文件标识,所述rtp流文件包括至少一个rtp流,每一个rtp流包括至少一个rtp切片,每一个rtp切片具有用于定位rtp切片的切片标识;

解析所述播放请求获得目标rtp流文件的文件标识;

获取服务器内存储的所述目标rtp流文件的所有码率规格,并将所述所有码率规格返回给客户端;

接收客户端发送的包含目标码率规格的第一请求,所述目标码率规格由客户端根据客户端所在网络的当前网络状况确定得到;

依据所述第一请求向所述客户端返回目标rtp流文件对应的目标码率规格的rtp数据;

当接收到所述客户端发送的包含新的目标码率规格的第二请求后,向所述客户端返回所述新的目标码率规格对应的rtp数据,所述新的目标码率规格由所述客户端根据客户端所在网络的变化情况确定。

可选地,所述第一请求还包括客户端请求的目标时刻;

向所述客户端返回所述目标rtp流文件对应的目标码率规格的rtp数据,包括:

解析所述第一请求获得所述目标时刻;

从所述目标码率规格对应的rtp数据中查找与所述目标时刻相对应的rtp切片的目标切片标识;

读取包含所述目标切片标识的目标rtp切片数据,并将所述目标rtp切片数据返回给所述客户端。

可选地,所述第二请求包括所述客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格;

所述当接收到所述客户端发送的包含新的目标码率规格的第二请求后,向所述客户端返回所述新的目标码率规格对应的rtp数据,包括:

解析所述第二请求获得所述客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格;

解析所述当前正在接收的rtp切片数据的目标切片标识,获得正在接收的rtp切片数据在目标码率规格的rtp数据中的序列号;

确定所述序列号的下一个序列号为目标序列号;

从所述新的目标码率规格对应的rtp数据中查找所述目标序列号对应目标rtp切片数据;

将所述目标rtp切片数据发送给所述客户端。

可选地,所述第二请求包括所述客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格;

所述当接收到所述客户端发送的包含新的目标码率规格的第二请求后,向所述客户端返回所述新的目标码率规格对应的rtp数据,包括:

解析所述第二请求获得所述客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格;

解析所述当前正在接收的rtp切片数据的目标切片标识,获得正在接收的rtp切片数据在目标码率规格的rtp数据中的序列号;

从所述新的目标码率规格对应的rtp数据中,读取所述序列号对应的目标rtp切片数据;

确定所述客户端当前正在接收的rtp切片数据的未接收部分,并将所述目标rtp切片数据中与所述未接收部分相对应的部分发送给所述客户端。

第三方面,本申请提供了另一种基于切片的rtp流传输方法,应用于服务器中,包括:

接收客户端发送的播放请求,所述播放请求包含rtp流文件的文件标识;

根据所述文件标识确定服务器内存储的所述rtp流文件的所有码率规格,并确定目标码率规格;

向所述客户端返回所述目标码率规格对应的rtp切片数据;

判断服务器与客户端之间的网络状况是否发生变化;

当确定服务器与客户端之间网络的网络状况发生变化后,确定与变化后的网络状况相匹配的新的目标码率规格;

根据上一rtp切片数据的接收结果及rtp切片间的关联关系,从新的目标码率规格的rtp切片数据中确定出待发送rtp切片数据的新的目标切片标识;

读取与新的目标切片标识相对应的rtp切片数据,并将读取的rtp切片数据返回给客户端。

可选地,判断服务器与客户端之间的网络状况是否发生变化,包括:

接收所述客户端返回的接收反馈信息;

根据所述接收反馈信息确定所述客户端接收数据的丢包率;

根据所述丢包率确定服务器与客户端之间的网络状况;

当所述丢包率高于第一阈值时,确定所述服务器与客户端之间的网络状况变差;

当所述丢包率低于第二阈值时,确定所述服务器与客户端之间的网络状况变好,且第一阈值高于第二阈值。

可选地,所述方法还包括:当所述丢包率低于第二阈值时,重传丢包。

第四方面,本申请提供了一种基于切片的rtp流传输装置,应用于客户端,包括:

第一请求发送模块,用于向服务器发送播放基于rtp流的rtp流文件的播放请求,所述播放请求包括目标rtp流文件的文件标识,其中,所述rtp流文件包括至少一个rtp流,每一个rtp流包括多个rtp切片,每一个rtp切片具有唯一的切片标识;

第一接收模块,用于接收服务器返回的目标rtp流文件的所有码率规格,所述码率规格由服务器根据文件标识从服务器中获得;

第一码率确定模块,用于确定与当前网络状况相匹配的目标码率规格;

第一数据获取模块,用于向服务器请求所述目标码率规格对应的内容数据;

第二码率确定模块,用于当确定当前网络状况发生变化时,确定与变化后的网络状况相匹配的新的目标码率规格;

第二数据获取模块,用于根据正在接收的rtp切片数据的切片标识,向所述服务器请求所述新的目标码率规格对应的rtp数据。

第五方面,本申请提供了一种基于切片的rtp流传输装置,应用于服务器,包括:

第一接收模块,用于接收客户端发送的播放基于rtp流的目标rtp流文件的播放请求,所述播放请求包括目标rtp流文件的文件标识,所述rtp流文件包括至少一个rtp流,每一个rtp流包括至少一个rtp切片,每一个rtp切片具有用于定位rtp切片的切片标识;

解析模块,用于解析播放请求获得目标rtp流文件的文件标识;

码率获取模块,用于获取服务器内存储的目标rtp流文件的所有码率规格,并将所有码率规格返回客户端;

第二接收模块,用于接收客户端发送的包含目标码率规格的第一请求,所述目标码率规格由客户端根据客户端所在网络的当前网络状况确定得到;

第一数据返回模块,用于依据所述第一请求向所述客户端返回所述目标rtp流文件对应的目标码率规格的rtp数据;

第二数据返回模块,用于当接收到所述客户端发送的包含新的目标码率规格的第二请求后,向所述客户端返回所述新的目标码率规格对应的rtp数据,所述新的目标码率规格由所述客户端根据客户端所在网络的变化情况确定。

第六方面,本申请还提供了一种基于切片的rtp流传输装置,应用于服务器中,包括:

第一接收模块,用于接收客户端发送的播放请求,所述播放请求包含rtp流文件的文件标识;

第一码率确定模块,用于根据所述文件标识确定服务器内存储的所述rtp流文件的所有码率规格,并确定目标码率规格;

第一数据返回模块,用于向所述客户端返回所述目标码率规格对应的rtp切片数据;

判断模块,用于判断服务器与客户端之间的网络状况是否发生变化;

第二码率确定模块,用于当确定服务器与客户端间网络的网络状况发生变化后,确定与变化后的网络状况相匹配的新的目标码率规格;

切片标识确定模块,用于根据上一rtp切片数据的接收结果及rtp切片间的关联关系,从新的目标码率规格的rtp切片数据中确定出待发送rtp切片数据的新的目标切片标识;

第二数据返回模块,用于读取与新的目标切片标识相对应的rtp切片数据,并将读取的rtp切片数据返回给客户端。

第七方面,本申请还提供了一种终端设备,包括存储器和处理器,所述存储器内存储有可在处理器上运行的程序,处理器执行所述程序时实现第一方面任意一种可能的实现方式所述的方法。

第八方面,本申请还提供了一种服务器,包括存储器和处理器,所述存储器内存储有可在处理器上运行的程序,处理器执行所述程序时实现第二方面任意一种可能的实现方式所述的方法。

本实施例提供的基于切片的rtp流传输方法,服务器中针对同一rtp流文件存储有不同码率规格的基于切片的rtp数据。服务器向客户端传输基于切片的rtp流时,能够根据网络状况的变化情况切换传输与当前网络状况相匹配的码率规格的rtp数据。客户端确定与当前网络状况相匹配的目标码率规格,并向服务器请求该目标码率规格对应的rtp数据;当客户端检测到当前网络状况发生变化后,确定与变化后的网络状况相匹配的新的目标码率规格。然后,根据正在接收的rtp切片数据的切片标识,向服务器请求新的目标码率规格对应的rtp切片数据。从而实现根据网络状况变化自适应传输相应码率规格的rtp数据。当网络状况较好时,传输码率规格较高的rtp数据,当网络状况变差时,能够及时切换至传输码率规格较低的rtp数据,rtp流文件传输过程流畅,提高了用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例一种基于切片的rtp复合流的格式示意图;

图2是本申请实施例一种基于切片的rtp流传输方法的流程示意图;

图3是本申请实施例一种获取目标码率规格的rtp数据过程的流程图;

图4是本申请实施例一种获取新的目标码率规格的rtp切片数据过程的流程图;

图5是本申请实施例一种基于切片的rtp流自适应传输示意图;

图6是本申请实施例另一种基于切片的rtp流传输方法的流程示意图;

图7是本申请实施例一种服务器判断网络状况过程的流程示意图;

图8是本申请实施例一种基于切片的rtp流传输装置的框图;

图9是本申请实施例另一种基于切片的rtp传输装置的框图;

图10是本申请实施例另一种基于切片的rtp流传输装置的框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,示出了本申请实施例一种基于切片的rtp复合流的格式示意图,本实施例中rtp流媒体以切片方式存储到服务器内。

如图1所示,每一个rtp流由多个独立的切片(本文中称为rtp切片)连接而成,每个rtp切片独立解码。

每一个rtp切片包括描述区和一个或多个rtp独立解码单元,其中,每一个rtp独立解码单元包括一个或多个rtp数据包,该一个或多个rtp独立解码单元即rtp切片数据;描述区是附加在rtp切片数据前面的独立索引包,具有特定的rtp载荷类型。该描述区包括流关联描述区、切片关联描述区和切片属性描述区;

流关联描述区存储流关联信息,用于描述当前rtp流与哪些rtp流之间的存在哪种关联类型,关联类型包括复合、同步和自适应;其中,自适应关联是指同一rtp流文件对应的不同码率的基于rtp切片的rtp流之间的关联关系。

切片关联描述区存储切片关联信息,用于描述当前rtp切片的1-2个前驱切片和1个后继切片;

切片属性描述区用于描述当前rtp切片的切片属性信息,包括:切片大小、切片名称、切片类型、切片序列号、时间戳、加密信息等。传输过程要求数据包尽量精简,因此,该描述区内的信息尽量精简。

在本申请的一个实施例中,rtp切片的时间戳实现统一定义,该时间戳可以是相对时间或绝对时间。其中,绝对时间和相对时间都基于相同的时间基准,以保证相关联的各个rtp流的时间戳保持一致。

切片关联信息将一系列rtp切片串联形成基于切片的rtp流媒体,而且,各个rtp切片之间独立解码,即,同一个rtp流中可以有不同媒体格式、解码参数等的rtp切片,不影响传输、播放。

流关联信息将多个基于rtp切片的rtp流关联形成复合rtp流,能够将具有一定关系的多个rtp流关联传输、关联存储、关联定位、关联播放、关联加密等。例如,同源rtp流同步关联,可定义唇音同步、主辅流同步等。

本申请提供的基于切片的rtp流传输方法主要是在图1所示的rtp流媒体格式的基础上实现rtp流根据网络状况自适应传输。

请参见图2,示出了本申请实施例一种基于切片的rtp流传输方法的流程示意图,该方法应用于包含客户端和服务器的系统中。对于同一rtp流文件,服务器内存储有多个码率规格的rtp数据。

本实施例中,客户端可以主动从服务器拉取rtp流文件。如图2所示,该方法可以包括以下步骤:

s110,客户端向服务器发送播放基于rtp流的rtp流文件的播放请求。

该播放请求包括该rtp流文件的文件标识。其中,所述rtp流文件包括至少一个rtp流,每一个rtp流包括多个rtp切片,每一个rtp切片具有用于定位rtp切片的切片标识。

s120,服务器解析客户端发送的播放请求,获得目标rtp流文件的目标文件标识。

s130,服务器获取自身存储的目标rtp流文件的目标码率规格,并发送至客户端。

s140,客户端确定与当前网络状况相匹配的目标码率规格,并向服务器发送包含目标码率规格的第一请求。

该第一请求用于向服务器请求目标rtp流文件对应的该目标码率规格的rtp数据。

s150,服务器依据第一请求,获取目标rtp流文件对应的目标码率规格的rtp数据,并发送至客户端。

在本申请的一个实施例中,第一请求中包括客户端请求的目标时刻,该目标时刻可以是客户端根据用户操作确定的播放rtp流文件的时刻,或者,是系统默认的开始播放时刻(可以是起始时刻,或者,上次观看截止时刻)。

通常一个rtp流文件具有一定的播放时长,例如,视频文件的视频播放时长,开始播放时刻是指从rtp流文件中的哪个时刻开始播放。例如,一个视频文件的播放时长是3min,用户指定开始播放时刻为1分20秒处,则从该视频文件的第1分20秒处开始播放。

如图3所示,服务器获取目标rtp流文件对应的目标码率规格的rtp数据的过程可以包括s151~s153:

s151,服务器解析第一请求获得目标时刻。

s152,服务器从目标rtp流文件对应的目标码率规格的rtp数据中,查找与目标时刻相对应的rtp切片的目标切片标识。

在本申请的一个实施例中,每个rtp切片数据中包含该rtp切片的时间偏移信息,即,该rtp切片数据与第一个rtp切片数据的起始之间的时间差。根据该时间偏移信息能够确定出该rtp切片在整个rtp流文件中的播放时刻。

s153,服务器读取目标切片标识对应的目标rtp切片数据并发送至客户端。

当客户端开始播放或拖动播放进度控件到一个新位置播放时,客户端按上述的播放时间请求。后续连续播放过程中,服务器会向客户端返回rtp切片的切片标识列表及切片时刻信息,其中,切片时刻信息包含rtp切片的时间偏移信息。客户端根据切片时刻信息从切片标识列表中确定出目标切片标识,并向服务器请求该目标切片标识对应的rtp切片数据。这样,服务器不需要存储rtp切片与对应的播放时间之间的关系,可以直接根据客户端发送的切片标识查询到对应的rtp切片,提高了服务器的查询效率。

s160,当客户端检测到当前网络状况发生变化时,确定与变化后的网络状况相匹配的新的目标码率规格。

客户端可以实时感知到自身所在网络的网络状况。如果当前网络状况发生变化,则从该目标rtp流文件所对应的全部码率规格中确定出与变化后的网络状况相匹配的新的目标码率规格。

s170,客户端根据正在接收的rtp切片数据的切片标识及新的目标码率规格,生成第二请求并发送至服务器。

第二请求用于请求服务器将目标rtp流文件从目标码率规格的rtp数据切换至新的目标码率规格的rtp数据。

其中,客户端生成的第二请求包括客户端当前正在接收的rtp切片数据的切片标识及确定的新的目标码率规格。

s180,服务器依据第二请求,获取目标rtp流文件对应的新的目标码率规格的rtp数据,并发送至客户端。

服务器根据客户端当前正在接收的rtp切片数据的切片标识确定新的目标码率规格的rtp切片数据的切片标识。

rtp切片标识通常包括码率信息和rtp切片的序列号信息,其中,同一rtp流文件的同一播放时刻的不同码率规格的rtp切片数据的序列号相同。

在本申请的一个实施例中,从客户端当前正在接收的rtp切片数据的下一个切片开始切换为新的目标码率规格。如图4所示,s180可以包括:

s181,解析第二请求获得客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格。

rtp切片的切片标识通常包含两部分,一部分是码率规格信息,一部分是切片序列号。同一rtp流文件对应的不同码率规格的rtp流内同一时刻的rtp切片的序列号相同。

s182,解析当前正在接收的rtp切片数据的目标切片标识,获得正在接收的rtp切片数据在目标码率规格的rtp数据中的序列号。

s183,确定序列号的下一个序列号为目标序列号。

s184,从新的目标码率规格对应的rtp数据中查找目标序列号对应目标rtp切片数据。

s185,将目标rtp切片数据发送给所述客户端。

请参见图5,示出了本申请实施例一种基于切片的rtp流自适应传输示意图,如图5所示,音频流和视频流是同步关联关系,而且,视频流包括多种码率规格(如,500k、1m、3m)的rtp流。

其中,码率是500k的rtp流内的rtp切片可以表示为:500k切片1,500k切片2,500k切片3,……,500k切片n;

码率是1m的rtp流内的rtp切片可以表示为:1m切片1,1m切片2,1m切片3,……,1m切片n;

码率是3m的rtp流内的rtp切片可以表示为:3m切片1,3m切片2,3m切片3,……,3m切片n。

当客户端所在网络状况较好时,可以请求服务器传输码率为3m的rtp流,这样,在网络带宽充足时,传输码率较高的rtp流,使得用户观看到更清晰的视频。当客户端所在网络状况变差后,根据上一切片的传输结果及切片间的关联关系,请求传输码率较低的1m或500k的rtp流,这样不会出现视频播放卡顿的现象,使用户观看视频过程更流畅。可以根据网络状况确定相匹配的码率。

当客户端所在网络状况变好后,可以根据上一切片的传输结果及切片间的关联关系,请求传输码率较高的1m或3m的rtp流,在保证视频播放过程流畅的前提下提高视频的清晰度。

本实施例提供的基于切片的rtp流传输方法,服务器中针对同一rtp流文件存储有不同码率规格的基于切片的rtp数据,此种情况下,服务器向客户端传输基于切片的rtp流时,能够根据网络状况的变化情况切换传输与当前网络状况相匹配的码率规格的rtp数据。客户端确定与当前网络状况相匹配的目标码率规格,并向服务器请求该目标码率规格对应的rtp数据;当客户端检测到当前网络状况发生变化后,确定与变化后的网络状况相匹配的新的目标码率规格。然后,根据正在接收的rtp切片数据的切片标识,向服务器请求新的目标码率规格对应的rtp切片数据。从而实现根据网络状况变化自适应传输相应的码率规格的rtp数据。当网络状况较好时,传输码率规格较高的rtp数据,当网络状况变差时,能够及时切换至传输码率规格较低的rtp数据,rtp流文件传输过程流畅,提高了用户体验。

请参见图6,示出了本申请实施例另一种基于切片的rtp流传输方法的流程图;本实施例中,服务器根据自身所在网络的带宽变化情况主动向客户端发送与变化后的带宽相匹配的rtp流。如图6所示,该方法可以包括以下步骤:

s210,客户端向服务器发送播放请求。

该播放请求包含目标rtp流文件的文件标识。

s220,服务器根据文件标识获取服务器内存储的目标rtp流文件的所有码率规格,并确定目标码率规格。

服务器确定默认的码率规格为目标码率规格,其中,默认码率规格可以是上次向客户端传输rtp流文件的码率规格,或者,系统默认的某一固定码率规格。

服务器还可以根据自身与客户端之间的网络状况确定出相匹配的码率规格作为本次传输的目标码率规格。

s230,服务器向客户端返回目标码率规格对应的rtp切片数据。

s240,服务器判断自身所在网络的网络状况是否发生变化;如果发生变化,则执行s250;如果未发生变化,则执行s290;

服务器根据客户端反馈的接收反馈信息判断自身所在网络的网络状况。如图7,所示,服务器判断自身所在网络的网络状况的过程可以包括:s241~s245:

s241,服务器接收客户端返回的接收反馈信息。

客户端接收到服务器发送的rtp数据之后,通过接收反馈信息(如,rtcp、nack)定期向服务器上报接收rtp数据的情况。接收反馈信息中包含数据丢包信息。

s242,服务器根据该接收反馈信息确定客户端接收数据的丢包率。

服务器根据客户端反馈的接收反馈信息包含的数据丢包信息能够计算得到客户端接收数据的丢包率。

s243,服务器根据丢包率判断自身与客户端之间的网络状况;若丢包率高于第一阈值,则执行s244;若丢包率低于第二阈值,则执行s245。

s244,确定服务器与客户端之间的网络状况变差。

若客户端接收rtp数据的丢包率较高,且密集丢包,则说明服务器与客户端之间的网络状况不好,此时要降低传输rtp流的码率规格,服务器可以主动选择比当前传输的码率规格低一档的rtp数据。

s245,确定服务器与客户端之间的网络状况变好。

若客户端接收rtp数据的丢包率较低,且是偶尔丢包,则说明服务与客户端之间的网络状况良好,可以启动丢包重传策略保证客户端收到完整的rtp数据。

s250,服务器确定与变化后的网络状况相匹配的新的目标码率规格。

s260,服务器根据上一rtp切片数据的接收结果及rtp切片间的关联关系,从新的目标码率规格的rtp数据中确定出新的目标切片标识。

在本申请的一个实施例中,若上一rtp切片数据客户端接收失败,则确定上一rtp切片数据在新的目标码率规格的rtp数据中对应的新的目标切片标识。

在本申请的另一个实施例中,若上一rtp切片数据客户端接收成功,则确定与上一rtp切片数据相邻的下一个rtp切片数据在新的目标码率规格的rtp切片数据中对应的新的目标切片标识。

s270,服务器读取新的目标切片标识对应的rtp切片数据。

s280,服务器将该rtp切片数据发送至客户端。

s290,服务器继续传输当前的目标码率规格对应的rtp切片数据。

本实施例提供的基于切片的rtp流传输方法,服务器中针对同一rtp流文件存储有不同码率规格的基于切片的rtp数据。服务器主动向客户端发送rtp数据,当服务器检测到服务器与客户端之间的网络状况发生变化时,根据变化后的网络状况确定新的目标码率规格。并根据上一rtp切片数据的接收结果及切片关联关系,从新的目标规格对应的rtp数据中确定出新的目标切片标识。并读取该新的目标切片标识对应的rtp切片数据,并发送至客户端。利用该方法实现根据网络状况变化自适应传输相应的码率规格的rtp数据。当网络状况较好时,传输码率规格较高的rtp数据,当网络状况变差时,能够及时切换至传输码率规格较低的rtp数据,rtp流文件传输过程流畅,提高了用户体验。

相应于上述的方法实施例,本申请还提供了基于切片的rtp流传输装置实施例。

请参见图8,示出了本申请实施例一种基于切片的rtp流传输装置的框图,该装置应用于客户端中。本实施例中客户端主动从服务器拉取rtp流文件。

如图8所示,该装置包括:第一请求发送模块110、第一接收模块120、第一码率确定模块130、第一数据获取模块140、第二码率确定模块150和第二数据获取模块160。

第一请求发送模块110,用于向服务器发送播放基于rtp流的rtp流文件的播放请求。

该播放请求包括目标rtp流文件的文件标识,其中,该rtp流文件包括至少一个rtp流,每一个rtp流包括多个rtp切片,每一个rtp切片具有唯一的切片标识。

第一接收模块120,用于接收服务器返回的目标rtp流文件的所有码率规格,所述码率规格由所述服务器根据所述文件标识从服务器中获得。

第一码率确定模块130,用于确定与当前网络状况相匹配的目标码率规格。

第一数据获取模块140,用于向服务器请求目标码率规格对应的内容数据。

当客户端开始播放或拖动播放进度控件到一个新位置播放时,客户端按播放时间请求。例如,客户端向服务器发送的播放请求中包含目标时刻,服务器确定目标时刻相对应的rtp切片并向客户端返回该rtp切片的内容数据;同时,服务器向客户端返回切片标识列表及切片时刻信息,其中,切片时刻信息包含rtp切片的时间偏移信息。客户端在后续连续播放过程中,根据切片时刻信息从切片标识列表中确定出与当前播放时间相对应的目标切片标识,并向服务器请求该目标切片标识对应的内容数据。这样,服务器不需要存储rtp切片与对应的播放时间之间的关系,可以直接根据客户端发送的切片标识查询到对应的rtp切片,提高了服务器的查询效率。

第二码率确定模块150,用于当确定当前网络状况发生变化时,确定与变化后的网络状况相匹配的新的目标码率规格。

第二数据获取模块160,用于根据正在接收的rtp切片数据的切片标识,向服务器请求新的目标码率规格对应的rtp数据。

在本申请的一个实施例中,第二数据获取模块160具体用于:根据正在接收的rtp切片数据的切片标识和新的目标码率规格,生成码率切换请求;向服务器发送码率切换请求,以使服务器从新的目标码率规格对应的rtp切片数据;接收服务器返回的新的目标码率规格对应的rtp切片数据。

本实施例提供的基于切片的rtp流传输装置,服务器中针对同一rtp流文件存储有不同码率规格的基于切片的rtp数据,此种情况下,服务器向客户端传输基于切片的rtp流时,能够根据网络状况的变化情况切换传输与当前网络状况相匹配的码率规格的rtp数据。客户端确定与当前网络状况相匹配的目标码率规格,并向服务器请求该目标码率规格对应的rtp数据;当客户端检测到当前网络状况发生变化后,确定与变化后的网络状况相匹配的新的目标码率规格。然后,根据正在接收的rtp切片数据的切片标识,向服务器请求新的目标码率规格对应的rtp切片数据。从而实现根据网络状况变化自适应传输相应的码率规格的rtp数据。当网络状况较好时,传输码率规格较高的rtp数据,当网络状况变差时,能够及时切换至传输码率规格较低的rtp数据,rtp流文件传输过程流畅,提高了用户体验。

请参见图9,示出了本申请实施例另一种基于切片的rtp传输装置的框图,该装置应用于服务器中,本实施例中客户端主动从服务器拉取rtp流文件。

如图9所示,该服务器可以包括第一接收模块210、解析模块220、码率获取模块230、第二接收模块240、第一数据返回模块250和第二数据返回模块260。

第一接收模块210,用于接收客户端发送的播放基于rtp流的目标rtp流文件的播放请求。

该播放请求包括目标rtp流文件的文件标识;该rtp流文件包括至少一个rtp流,每一个rtp流包括至少一个rtp切片,每一个rtp切片具有用于定位rtp切片的切片标识。

解析模块220,用于解析播放请求获得目标rtp流文件的文件标识。

码率获取模块230,用于获取服务器内存储的目标rtp流文件的所有码率规格,并将所有码率规格返回客户端;

第二接收模块240,用于接收客户端发送的包含目标码率规格的第一请求。

该目标码率规格由客户端根据客户端所在网络的当前网络状况确定得到。

第一数据返回模块250,用于依据第一请求向客户端返回目标rtp流文件对应的目标码率规格的rtp数据。

在其它实施例中,该第一请求还包括客户端请求的目标时刻;

该第一数据返回模块具体用于:解析第一请求获得目标时刻;从目标码率规格对应的rtp数据中查找与目标时刻相对应的rtp切片的目标切片标识;读取包含该目标切片标识的目标rtp切片数据,并将目标rtp切片数据返回给客户端。

第二数据返回模块260,用于当接收到客户端发送的包含新的目标码率规格的第二请求后,向客户端返回新的目标码率规格对应的rtp数据。

该新的目标码率规格由客户端根据客户端所在网络的变化情况确定。

第二请求包括客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格;

在一个实施例中,服务器从当前正在发送的rtp切片的下一个rtp切片开始切换成新的目标码率规格。此种应用场景下,该第二数据返回模块260具体用于:

解析该第二请求获得客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格;解析当前正在接收的rtp切片数据的目标切片标识,获得正在接收的rtp切片数据在目标码率规格的rtp数据中的序列号;确定该序列号的下一个序列号为目标序列号;从新的目标码率规格对应的rtp数据中查找该目标序列号对应目标rtp切片数据;将目标rtp切片数据发送给所述客户端。

在另一个实施例中,服务器从当前正在发送的rtp切片中的未发送部分开始切换成新的目标码率规格。此种应用场景下,该第二数据返回模块260具体用于:

解析第二请求获得客户端当前正在接收的rtp切片数据的目标切片标识和新的目标码率规格;解析当前正在接收的rtp切片数据的目标切片标识,获得正在接收的rtp切片数据在目标码率规格的rtp数据中的序列号;从新的目标码率规格对应的rtp数据中,读取该序列号对应的目标rtp切片数据;确定客户端当前正在接收的rtp切片数据的未接收部分,并将目标rtp切片数据中与未接收部分相对应的部分发送给所述客户端。

本实施例提供的基于切片的rtp流传输装置,实现了根据网络状况变化自适应传输相应码率规格的rtp数据。当网络状况较好时,传输码率规格较高的rtp数据,当网络状况变差时,能够及时切换至传输码率规格较低的rtp数据,rtp流文件传输过程流畅,提高了用户体验。

请参见图10,示出了本申请实施例另一种基于切片的rtp流传输装置的框图,该装置应用于服务器中。本实施例中服务器主动向客户端推送rtp流文件。

如图10所示,该装置可以包括:第一接收模块310、第一码率确定模块320、第一数据返回模块330、判断模块340、第二码率确定模块350、切片标识确定模块360和第二数据返回模块370。

第一接收模块310,用于接收客户端发送的播放请求。该播放请求包含rtp流文件的文件标识。

第一码率确定模块320,用于根据文件标识确定服务器内存储的rtp流文件的所有码率规格,并确定目标码率规格。

第一数据返回模块330,用于向客户端返回目标码率规格对应的rtp切片数据。

判断模块340,用于判断服务器与客户端之间的网络状况是否发生变化。

在一个实施例中,判断模块340具体用于:

接收客户端返回的接收反馈信息,根据该接收反馈信息确定所述客户端接收数据的丢包率;根据该丢包率确定服务器与客户端之间的网络状况;当丢包率高于第一阈值时,确定服务器与客户端之间的网络状况变差;当丢包率低于第二阈值时,确定服务器与客户端之间的网络状况变好,且第一阈值高于第二阈值。当丢包率低于第二阈值时,重传丢包即可,可以不切换传输的rtp切片的码率。

第二码率确定模块350,用于当确定服务器与客户端间网络的网络状况发生变化后,确定与变化后的网络状况相匹配的新的目标码率规格。

切片标识确定模块360,用于根据上一rtp切片数据的接收结果及rtp切片间的关联关系,从新的目标码率规格的rtp切片数据中确定出待发送rtp切片数据的新的目标切片标识。

第二数据返回模块370,用于读取与新的目标切片标识相对应的rtp切片数据,并将读取的rtp切片数据返回给客户端。

本实施例提供的基于切片的rtp流传输装置,服务器中针对同一rtp流文件存储有不同码率规格的基于切片的rtp数据。服务器主动向客户端发送rtp数据,当服务器检测到服务器与客户端之间的网络状况发生变化时,根据变化后的网络状况确定新的目标码率规格。并根据上一rtp切片数据的接收结果及切片关联关系,从新的目标规格对应的rtp数据中确定出新的目标切片标识。并读取该新的目标切片标识对应的rtp切片数据,并发送至客户端。利用该装置实现根据网络状况变化自适应传输相应的码率规格的rtp数据。当网络状况较好时,传输码率规格较高的rtp数据,当网络状况变差时,能够及时切换至传输码率规格较低的rtp数据,rtp流文件传输过程流畅,提高了用户体验。

上述实施例提供的基于切片的rtp流传输装置包括处理器和存储器,该装置所包含的上述功能模块均作为程序模块存储在存储器中,由处理器执行存储在存储器中的上述程序模块来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现根据网络状况变化自适应传输相应的码率规格的rtp数据。当网络状况较好时,传输码率规格较高的rtp数据,当网络状况变差时,能够及时切换至传输码率规格较低的rtp数据,rtp流文件传输过程流畅,提高了用户体验。

其中,本文中的处理器可以是cpu,或者,mcu,或者,还可以是cpu和mcu的结合。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本申请提供了一种终端设备,该终端包括处理器和存储器,该存储器内存储有可在处理器上运行的程序。该处理器运行存储内存储的该程序时实现上述应用于客户端中的基于切片的rtp流传输方法。

本申请还提供了一种终端设备可执行的存储介质,该存储介质中存储有程序,该程序由终端设备执行时实现上述的基于切片的rtp流传输方法。

本申请还提供了一种服务器,该服务器包括理器和存储器,该存储器内存储有可在处理器上运行的程序。该处理器运行存储内存储的该程序时实现上述应用于服务器中的基于切片的rtp流传输方法。

本申请还提供了一种服务器可执行的存储介质,该存储介质中存储有程序,该程序由服务器执行时实现上述的基于切片的rtp流传输方法。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本申请各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。

本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1