CN102710586B - 流媒体传输控制方法、媒体传输控制方法、相关设备 - Google Patents
流媒体传输控制方法、媒体传输控制方法、相关设备 Download PDFInfo
- Publication number
- CN102710586B CN102710586B CN201110083963.9A CN201110083963A CN102710586B CN 102710586 B CN102710586 B CN 102710586B CN 201110083963 A CN201110083963 A CN 201110083963A CN 102710586 B CN102710586 B CN 102710586B
- Authority
- CN
- China
- Prior art keywords
- media
- program segments
- client
- streaming media
- segmentation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种流媒体传输控制方法、媒体传输控制方法、相关设备。本发明实施例方法包括:流媒体客户端从流媒体服务器获取媒体索引文件,媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,媒体质量信息用于表示所述节目分段在对应码率下的媒体质量;流媒体客户端根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合;流媒体客户端按照多个节目分段的码率组合下载对应码率的节目分段。本发明实施例还提供一种流媒体客户端、流媒体服务器、媒体传输控制方法、客户端以及服务器。本发明实施例能够有效提高合理分配带宽,从而提高流媒体的综合质量。
Description
技术领域
本发明涉及通信领域,尤其涉及一种流媒体传输控制方法、媒体传输控制方法、相关设备。
背景技术
流媒体技术是一种应用层使用超文本传输协议(HTTP,Hyper TextTransport Protocol),传输层使用传输控制协议(TCP,Transport ControlProtocol)管理数据传输的技术,流媒体技术能够实现流媒体文件的“边下载边播放”。
为了提高传统流媒体技术的对带宽异构性和波动性的适应能力,现有技术中一般将一个完整的节目划分为多个节目分段,每个节目分段提供多种码率的版本,流媒体客户端在进行点播时,可以结合自身网络条件选择码率合适的节目分段。
当用户通过流媒体客户端点播某一节目时,流媒体客户端会从流媒体服务器下载媒体索引文件,该媒体索引文件中包含该节目的各节目分段的文件名、存储地址、大小、播放时长以及码率等信息。
流媒体客户端根据实时网络条件选择码率与当前带宽最接近的节目分段1进行缓冲,缓冲完成后,开始向用户播放节目分段1,在向用户播放节目分段1的过程中,流媒体客户端继续监测实时网络条件,并选择码率与当前带宽最接近的节目分段2进行下载,以此类推。
也就是说,现有技术的方案中,当某一节目分段i正在向用户播放时,流媒体客户端会根据实时网络条件选择码率与当前带宽最接近的节目分段i+1进行下载。
码率是流媒体质量的一个客观指标,一般来说,码率越高,流媒体质量也就越高,但是,对于某些场景(例如画面变化慢,背景颜色单一的场景)的节目分段而言,当码率达到某一数值之后,即使提高码率,也并不会给用户体验带来提升,而现有技术的方案只能选择码率与当前带宽最接近的节目分段,使得每个节目分段的码率都接近于当前带宽,所以流媒体客户端无法将有限的带宽调配给码率要求更高的场景(例如画面变化快,背景颜色复杂的场景)的节目分段,因此影响了客户端的媒体质量,从而降低了用户体验。
发明内容
本发明实施例提供了一种流媒体传输控制方法、媒体传输控制方法、相关设备,能够提高客户端的媒体质量,从而提升用户体验。
本发明实施例提供的流媒体传输控制方法,包括:流媒体客户端从流媒体服务器获取媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量;流媒体客户端根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合;流媒体客户端按照该多个节目分段的码率组合下载对应码率的节目分段。
本发明实施例提供的流媒体传输控制处理方法,包括:流媒体服务器接收流媒体客户端发送的索引获取请求;流媒体服务器向该流媒体客户端发送媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量。
本发明实施例提供的流媒体客户端,包括:获取单元,用于从流媒体服务器获取媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量;选择单元,用于根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合;下载单元,用于按照该多个节目分段的码率组合下载对应码率的节目分段。
本发明实施例提供的流媒体服务器,包括:接收单元,用于接收流媒体客户端发送的索引获取请求;发送单元,用于向该流媒体客户端发送媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量。
本发明实施例提供的媒体传输控制方法,包括:客户端获取媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息;客户端根据所述媒体呈现描述中的码率信息和/或质量信息选择分段。
本发明实施例提供的媒体传输控制处理方法,包括:服务器接收客户端发送的获取请求;服务器向所述客户端发送媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息。
本发明实施例提供的客户端,包括:描述获取单元,用于获取媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息;分段选择单元,用于根据所述媒体呈现描述中的码率信息和/或质量信息选择分段。
本发明实施例提供的服务器,包括:请求接收单元,用于接收客户端发送的获取请求;描述发送单元,用于向所述客户端发送媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息。
本发明实施例提供的技术方案中,流媒体客户端从流媒体服务器获取到媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量,流媒体客户端可以根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,由于流媒体客户端选择的是多个节目分段的码率组合,所以流媒体客户端可以根据不同节目分段的媒体质量信息在多个节目分段间进行合理的带宽分配,使得媒体质量高的节目分段获得更多的资源,从而能够有效的提高流媒体的综合质量;
此外,客户端从服务器获取到媒体呈现描述,该媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息,客户端可以根据媒体呈现描述中的码率信息和/或质量信息可以选取媒体质量高而且满足带宽约束的分段,从而能够有效的提高的客户端的媒体质量,提升用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明流媒体传输控制方法一个实施例示意图;
图2为本发明流媒体传输控制方法另一实施例示意图;
图3为本发明流媒体传输控制方法另一实施例示意图;
图4为本发明媒体传输控制方法一个实施例示意图;
图5为本发明媒体传输控制方法另一实施例示意图;
图6为本发明流媒体传输控制方法另一实施例示意图;
图7为本发明媒体传输控制方法另一实施例示意图;
图8为本发明流媒体客户端实施例示意图;
图9为本发明流媒体服务器实施例示意图;
图10为本发明客户端实施例示意图;
图11为本发明服务器实施例示意图;
图12为本发明实施例中一个质量-码率曲线图;
图13为本发明实施例中一个质量增益示意图;
图14为本发明实施例中另一质量-码率曲线图;
图15为本发明实施例中另一质量增益示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种流媒体传输控制方法、媒体传输控制方法、相关设备,能够提高客户端的媒体质量,从而提升用户体验。
本发明实施例中所描述的“媒体”可以为流媒体,也可以为其他类型的媒体。
请参阅图1,以流媒体为例,本发明流媒体传输控制方法一个实施例包括:
101、流媒体客户端从流媒体服务器获取媒体索引文件;
当用户请求进行流媒体业务时,流媒体客户端可以从流媒体服务器获取媒体索引文件。
本实施例中的流媒体业务可以是视频业务,也可以是音频业务,或者是其他类似的业务,具体此处不作限定。
该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,该媒体码率信息用于表示节目分段自身的码率,即对网络带宽的依赖程度,媒体质量信息用于表示节目分段在对应码率下的媒体质量。
需要说明的是,流媒体服务器中存储有若干个节目分段,每一个节目分段都是独立的,能够被流媒体客户端通过诸如HTTP等网络协议访问的媒体文件。
该媒体文件可以是完整节目文件或者节目流中的一个分片,在响应流媒体客户端访问请求后,从完整节目文件中分割出来实时生成的媒体文件,也可以是从一个完整节目文件或者节目流中分割出来的分片,非实时生成的,静态的媒体文件。
该媒体文件的具体文件格式可以是FLV格式,也可以是MP4格式,或者是其他类型的格式。
102、流媒体客户端根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合;
流媒体客户端获取到媒体索引文件之后,可以根据网络状况、媒体索引文件中的媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,即确定当前流媒体播放时刻之后的若干个节目分段各自对应的码率。
103、流媒体客户端按照多个节目分段的码率组合下载对应码率的节目分段。
流媒体客户端在步骤102中确定了当前流媒体播放时刻之后的多个节目分段的码率组合之后,则可以按照这些节目分段的码率组合下载对应码率的节目分段。
本实施例中,流媒体客户端从流媒体服务器获取到媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量,流媒体客户端可以根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,由于流媒体客户端选择的是多个节目分段的码率组合,所以流媒体客户端可以根据不同节目分段的媒体质量信息在多个节目分段间进行合理的带宽分配,使得媒体质量高的节目分段获得更多的资源,从而能够有效的提高流媒体的综合质量。
下面以一具体实例对本发明流媒体传输控制方法进行详细描述,请参阅图2,本发明流媒体传输控制方法另一实施例包括:
201、流媒体客户端从流媒体服务器获取媒体索引文件;
当用户请求进行流媒体业务时,流媒体客户端可以从流媒体服务器获取媒体索引文件。
本实施例中的流媒体业务可以是视频业务,也可以是音频业务,或者是其他类似的业务,具体此处不作限定。
该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,该媒体码率信息用于表示节目分段自身的码率,即对网络带宽的依赖程度,媒体质量信息用于表示节目分段在对应码率下的媒体质量。
该媒体质量信息可以为节目分段在对应码率下的媒体文件相对于原始媒体文件的峰值信噪比(PSNR,Peak Signal Noise Ratio),也可以为用户评分,或者为其他类型的,能够表示媒体质量的参数,具体此处不作限定。
需要说明的是,流媒体服务器中存储有若干个节目分段,每一个节目分段都是独立的,能够被流媒体客户端通过诸如HTTP等网络协议访问的媒体文件。
该媒体文件可以是完整节目文件或者节目流中的一个分片,在响应流媒体客户端访问请求后,从完整节目文件中分割出来实时生成的媒体文件,也可以是从一个完整节目文件或者节目流中分割出来的分片,非实时生成的,静态的媒体文件。
该媒体文件的具体文件格式可以是FLV格式,也可以是MP4格式,或者是其他类型的格式。
202、流媒体客户端获取带宽估计值、缓冲区中的数据量以及多个节目分段中每一个节目分段的时间长度;
流媒体客户端可以根据网络状况对未来的带宽进行估计得到带宽估计值,还可以对流媒体客户端的缓冲区中保存的数据量进行计算得到缓冲区中的数据量。
本实施例中,流媒体客户端获取带宽估计值以及缓冲区中的数据量的方式具体此处不作限定。
此外,假设流媒体客户端需要选择当前流媒体播放时刻之后的K个节目分段的码率组合,则流媒体客户端可以获取这K个节目分段中每一个节目分段的时间长度。
需要说明的是,该K的数值可以根据实际情况进行确定,例如可以为2,3,4或更多,具体此处不作限定。
203、流媒体客户端根据带宽估计值、缓冲区中的数据量以及多个节目分段中每一个节目分段的时间长度估算多个节目分段结束时从流媒体服务器得到的总数据量;
当流媒体客户端获取到的带宽估计值、缓冲区中的数据量以及K个节目分段中每一个节目分段的时间长度之后,可以根据这些信息估算当K个节目分段结束时,流媒体客户端将从流媒体服务器得到的总数据量。
204、流媒体客户端根据媒体码率信息以及媒体质量信息,计算当待下载数据量不超过总数据量时,使得节目质量最高的多个节目分段各自对应的码率;
流媒体客户端在确定K个节目分段各自对应的码率时,需要使得根据确定后的码率进行下载时的待下载数据量不超过步骤203中计算得到的总数据量。
流媒体客户端可以以此为基础,采用多种方式确定节目质量最高时,K个节目分段各自对应的码率。
需要说明的是,具体确定码率的方式可以采用循环迭代、穷举尝试等多种方式,此处不作限定。
本实施例中,节目质量最高可以是指K个节目分段的媒体质量之和最高,或者是K个节目分段的媒体质量平均值最高,或者是K个节目分段中满足某特定条件的一个或多个节目分段的媒体质量最高,该特定条件可以是媒体质量信息最大,或媒体质量信息最小等,具体此处不作限定。
可以理解的是,除上述对节目质量最高的定义标准之外,在实际应用中,节目质量最高还可以采用其他类似的定义标准,具体此处不作限定。
205、流媒体客户端按照多个节目分段各自对应的码率下载对应码率的节目分段。
流媒体客户端在步骤204中确定了当前流媒体播放时刻之后的K个节目分段各自对应的码率之后,则可以按照这些节目分段的码率组合下载对应码率的节目分段。
本实施例中,流媒体客户端从流媒体服务器获取到媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量,流媒体客户端可以根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,由于流媒体客户端选择的是多个节目分段的码率组合,所以流媒体客户端可以根据不同节目分段的媒体质量信息在多个节目分段间进行合理的带宽分配,使得媒体质量高的节目分段获得更多的资源,从而能够有效的提高流媒体的综合质量。
为便于理解,下面以一具体实例对本发明流媒体传输控制方法进行详细描述,请参阅图3,本发明流媒体传输控制方法另一实施例包括:
301、流媒体客户端从流媒体服务器获取媒体索引文件;
当用户请求进行流媒体业务时,流媒体客户端可以从流媒体服务器获取媒体索引文件。
该流媒体业务可以是视频业务,也可以是音频业务,或者是其他类似的业务,此处仅以视频业务为例进行说明。
该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,该媒体码率信息用于表示节目分段自身的码率,即对网络带宽的依赖程度,媒体质量信息用于表示节目分段在对应码率下的媒体质量。
该媒体质量信息可以为节目分段在对应码率下的媒体文件相对于原始媒体文件的PSNR,也可以为用户评分,或者为其他类型的,能够表示媒体质量的参数,具体此处不作限定,此处仅以PSNR为例进行说明。
本实施例中,假设流媒体客户端从流媒体服务器获取到的媒体索引文件如下表1所示:
表1
上述表1中,“名称”为节目分段的名称,“地址”为节目分段的下载地址,“文件大小”为该节目分段的体积,单位为兆字节(MB),“节目时长”为该节目分段的时长,单位为秒(s),“媒体码率信息”为该节目分段的码率,单位为千比特每秒(kbps),“媒体质量信息”为该节目分段的媒体质量,具体为PSNR。
根据表1的描述,媒体索引文件中共有4个节目分段,其中节目分段S1的节目时长为30秒,节目分段S1对应有3个不同的码率,分别为500kbps,1000kbps以及1500kbps,对应的文件体积分别为15MB,30MB以及45MB,对应的下载地址分别为A11,A12以及A13;
节目分段S2的节目时长为20秒,节目分段S2对应有4个不同的码率,分别为500kbps,800kbps,1200kbps以及1500kbps,对应的文件体积分别为10MB,16MB,24MB以及30MB,对应的下载地址分别为A21,A22,A23以及A24;
其余节目分段的内容以此类推。
本实施例中,各节目分段可以对应不同数目个码率,且各节目分段对应的码率可以不相同,可以理解的是,在实际应用中,各节目分段也可以对应相同数目个码率,且各节目分段对应的码率可以相同,例如全部的节目分段都对应3个码率,500kbps,1000kbps以及1500kbps,实际应用中具体采取的方式此处不作限定。
需要说明的是,上述表1中描述的全部内容仅仅为本实施例中的一个特例,在实际应用中,上述的媒体索引文件的格式,字段以及具体数值均可以有所变化,此处不作限定。
302、流媒体客户端获取带宽估计值、缓冲区中的数据量以及多个节目分段中每一个节目分段的时间长度;
流媒体客户端可以根据网络状况对未来的带宽进行估计得到带宽估计值Cwidth,还可以对自身的缓冲区中保存的数据量进行计算得到缓冲区中的数据量Buffer。
本实施例中,流媒体客户端获取带宽估计值Cwidth以及缓冲区中的数据量Buffer的方式具体此处不作限定,假设带宽估计值Cwidth为8000kbps,缓冲区中的数据量Buffer为10MB。
此外,假设流媒体客户端需要选择当前流媒体播放时刻之后的K个节目分段的码率组合,则流媒体客户端可以获取这K个节目分段中每一个节目分段的时间长度,即获取K个节目分段中节目分段i的节目时长ti,单位为秒,其中i=1,...,K。
需要说明的是,该K的数值可以根据实际情况进行确定,例如可以为2,3,4或更多,具体此处不作限定。
根据表1中的内容,假设本实施例中,当前流媒体正在播放节目分段S1,且K为3,则该K个节目分段为节目分段S2,节目分段S3以及节目分段S4。
其中,节目分段S2的节目时长ts2=20,节目分段S3的节目时长ts3=30,节目分段S4的节目时长ts4=40。
303、流媒体客户端根据带宽估计值、缓冲区中的数据量以及多个节目分段中每一个节目分段的时间长度估算多个节目分段结束时从流媒体服务器得到的总数据量;
当流媒体客户端获取到的带宽估计值Cwidth、缓冲区中的数据量Buffer以及K个节目分段中每一个节目分段的时间长度ti之后,可以根据这些信息估算当K个节目分段结束时,流媒体客户端将从流媒体服务器得到的总数据量。
本实施例中,流媒体客户端从流媒体服务器得到的总数据量包含如下几个部分的内容:缓冲区中的数据量Buffer,带宽估计值Cwidth与K个节目分段总时长的乘积,以及可选的带宽估计修正量。
流媒体客户端可以通过如下方式计算从流媒体服务器得到的总数据量F:
其中,F为K个节目分段结束时从流媒体服务器得到的总数据量,Buffer为缓冲区中的数据量,Cwidth为带宽估计值,τ为预置的带宽估计修正量,ti为节目分段i的节目时长,i=1,...,K。
需要说明的是,如果Cwidth与实际带宽比较,值偏低,则τ是一个正值;如果Cwidth与实际带宽比较,值偏高,τ是一个负值;否则,τ为0,具体的网络带宽估计方法,此处不作限定。
可以理解的是,在实际应用中,流媒体客户端还可以根据其他的方式或公式计算,具体此处不作限定。
本实施例中,假设带宽估计值Cwidth与实际带宽相同,则τ为0。
Cwidth为8000kbps,Buffer为10MB,K=3,ts2=20,ts3=30,ts4=40,则可以计算出:
F=10*1024+8000*(20+30+40)/8=100240字节,约等于100MB。
304、流媒体客户端将多个节目分段的码率设置为对应的初始值;
本实施例中,流媒体客户端采用循环迭代的方式计算当待下载数据量不超过总数据量时,使得节目质量最高的K个节目分段各自对应的码率,可以理解的是,在实际应用中,除了循环迭代的方式之外,还可以采用其他的方式,例如穷举尝试等,具体此处不作限定。
流媒体客户端将K个节目分段的码率设置为初始值,本实施例中的初始值可以为K个节目分段各自对应的码率中的最低值,或者是次低值,或者是任一值,具体此处不作限定。
本实施例中,可以定义H[i]为K个节目分段中的节目分段i最终将被确定使用的码率,节目分段i对应有J个码率,则H[i]=1,...,J。
对于i从1到K,流媒体客户端将H[i]设置为1。
根据表1中的内容,流媒体客户端可以将节目分段S2的码率设置为500kbps,将节目分段S3的码率设置为1000kbps,将节目分段S4的码率设置为300kbps。
305、流媒体客户端根据媒体码率信息以及媒体质量信息计算多个节目分段中每一个节目分段的平均带宽媒体质量;
流媒体客户端将K个节目分段的码率设置为初始值之后,可以根据媒体码率信息以及媒体质量信息计算K个节目分段中每一个节目分段的平均带宽媒体质量。
本实施例中,流媒体客户端可以获取以及
并将的比值作为节目分段i的平均带宽媒体质量。
其中,为节目分段i在码率为H[i]时的媒体质量信息,该为节目分段i在码率为H[i]时的数据量,即文件大小。
可以理解的是,在实际应用中,流媒体客户端还可以采用其他的方式,根据媒体码率信息以及媒体质量信息计算多个节目分段中每一个节目分段的平均带宽媒体质量,例如与分别进行加权后的差值等,具体此处不作限定。
306、流媒体客户端查询平均带宽媒体质量最大值对应的选定节目分段;
流媒体客户端执行步骤305之后可以得到K个节目分段的平均带宽媒体质量,则流媒体客户端可以从这K个数据中选择最大值,并查询该最大值对应的选定节目分段,在实际应用中,流媒体客户端可以通过一个新的参数M来记录该选定节目分段的名称。
307、流媒体客户端提高选定节目分段的码率,并计算待下载数据量;
流媒体客户端确定了选定节目分段之后,可以提高选定节目分段的码率,例如H[M]++,也就是将节目分段M的码率提高一级,此处仅以一级为例进行说明,可以理解的是,在实际应用中,还可以是提高多级,具体此处不作限定。
提高码率之后,流媒体客户端可以计算即待下载数据量。
308、判断待下载数据量与总数据量之间的关系,若待下载数据量小于总数据量,则执行步骤305,若待下载数据量等于总数据量,则执行步骤310,若待下载数据量大于总数据量,则执行步骤309;
流媒体客户端通过步骤307计算得到待下载数据量之后,可以判断待下载数据量是否超过了步骤303中计算得到的总数据量,若超过,则执行步骤309,若两者相等,则执行步骤310,若未超过,则重复执行步骤305,并进入下一轮循环。
309、流媒体客户端降低选定节目分段的码率,并执行步骤310;
如果待下载数据量超过了步骤303中计算得到的总数据量,则说明无法正常完成节目分段的下载,流媒体客户端可以降低选定节目分段的码率,例如H[M]--,也就是将节目分段M的码率降低一级,此处仅以一级为例进行说明,可以理解的是,在实际应用中,还可以是提高多级,具体此处不作限定。
需要说明的是,本实施例中,流媒体客户端对节目分段M的码率降低的程度应当与步骤307中流媒体客户端对节目分段M的码率提高的程度相同,例如,步骤307中流媒体客户端对节目分段M的码率提高两级,则此处流媒体客户端对节目分段M的码率也应当降低两级。
310、输出多个节目分段的码率;
如果待下载数据量等于步骤303中计算得到的总数据量,则说明刚好可以完成节目分段的下载,则流媒体客户端可以输出当前的K个节目分段的码率。
或者是,当流媒体客户端降低了选定节目分段的码率之后,流媒体客户端也可以输出当前的K个节目分段的码率H[i],i=1,...,K。
311、流媒体客户端按照多个节目分段的码率进行下载。
在确定了K个节目分段的码率H[i]之后,则流媒体客户端可以按照这K个节目分段的码率H[i]进行下载。
为便于举例说明,此处按照表1所示的数据对本实施例中的循环迭代过程进行描述:
当流媒体客户端将节目分段S2的码率设置为500kbps,将节目分段S3的码率设置为1000kbps,将节目分段S4的码率设置为300kbps之后,流媒体客户端可以计算节目分段S2,节目分段S3以及节目分段S4的平均带宽媒体质量:
节目分段S2的
节目分段S3的
节目分段S4的
由上可以看出,节目分段S2的平均带宽媒体质量最大,为3.8,则流媒体客户端将节目分段S2的码率提高一级,由原先的500kbps提高到800kbps,则节目分段S2的文件大小也由10MB增加到16MB。
流媒体客户端计算待下载数据量,即当前K个节目分段的文件大小之和,流媒体客户端可以计算得到待下载数据量为16+30+12=58MB。
由于步骤303中计算出的总数据量为100MB,所以流媒体客户端再重新计算节目分段S2,节目分段S3以及节目分段S4的平均带宽媒体质量,由于节目分段S2的码率和媒体质量信息已经发生变化,则计算结果如下:
节目分段S2的
节目分段S3的
节目分段S4的
由上可以看出,节目分段S2的平均带宽媒体质量仍然是最大,同理,节目分段S2的码率可以再提高一级,由原先的800kbps提高到1200kbps,则节目分段S2的文件大小也由16MB增加到24MB。
流媒体客户端再计算待下载数据量,可以计算得到待下载数据量为24+30+12=66MB。该待下载数据量仍小于总数据量,所以流媒体客户端再重新计算节目分段S2,节目分段S3以及节目分段S4的平均带宽媒体质量:
节目分段S2的
节目分段S3的
节目分段S4的
由上可以看出,节目分段S4的平均带宽媒体质量变为最大,同理,节目分段S4的码率可以提高一级,由原先的300kbps提高到600kbps,则节目分段S4的文件大小也由12MB增加到24MB。
流媒体客户端再计算待下载数据量,可以计算得到待下载数据量为24+30+24=78MB。该待下载数据量仍小于总数据量,所以流媒体客户端再重新计算节目分段S2,节目分段S3以及节目分段S4的平均带宽媒体质量:
节目分段S2的
节目分段S3的
节目分段S4的
由上可以看出,节目分段S3的平均带宽媒体质量变为最大,同理,节目分段S3的码率可以提高一级,由原先的1000kbps提高到2000kbps,则节目分段S3的文件大小也由30MB增加到60MB。
流媒体客户端再计算待下载数据量,可以计算得到待下载数据量为24+60+24=108MB。该待下载数据量超过了总数据量,可能无法正常完成下载,则流媒体客户端再将节目分段S3的码率降低一级,由2000kbps降低到1000kbps。
由于在提高节目分段S3的码率之前,待下载数据量小于总数据量,提高节目分段S3的码率之后,待下载数据量大于总数据量,所以将节目分段S3的码率降回原值则同样会使得待下载数据量小于总数据量。
流媒体客户端降低节目分段S3的码率之后,可以输出节目分段S2,节目分段S3以及节目分段S4的码率:
节目分段S2:1200kbps,节目分段S3:1000kbps,节目分段S4:600kbps。
确定了各节目分段的码率之后,流媒体客户端可以按照表1查询这些媒体文件的地址:1200kbps的节目分段S2的地址为A23,1000kbps的节目分段S3的地址为A31,600kbps的节目分段S4的地址为A42,则流媒体客户端可以从这些地址下载各节目分段。
下面介绍本发明媒体传输方法实施例,请参阅图4,本发明媒体传输控制方法一个实施例包括:
401、客户端获取媒体呈现描述;
本实施例中,客户端可以从第一服务器获取到媒体呈现描述(MPD,MediaPresentation Description),该媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息。
该分段(segment)可以为能够被统一资源定位符(URL,Uniform/UniversalResource Locator)唯一引用的数据单元。
在实际应用中,该媒体呈现描述可以采用媒体索引文件实现,或者采用其他类似的信息实现,具体此处不作限定。
在实际应用中,客户端也可以通过邮件等方式获取媒体呈现描述,获取方式此处不作限定。
402、客户端根据媒体呈现描述中的码率信息和/或质量信息选择分段;
客户端获取到媒体呈现描述之后,可以根据其中的码率信息和/或质量信息选择分段。
需要说明的是,本实施例中,客户端可以根据媒体呈现描述中的码率信息和/或质量信息选择一个分段,也可以选择多个分段。
403、客户端向服务器请求下载选择的分段。
客户端在步骤402中根据媒体呈现描述中的码率信息和/或质量信息选择分段之后,则可以向第二服务器请求下载选择的分段。
本实施例中,第一服务器和第二服务器可以是同一个物理实体,也可以是不同的两个物理实体。
本实施例中,客户端从服务器获取到媒体呈现描述,该媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息,客户端可以根据媒体呈现描述中的码率信息和/或质量信息可以选取媒体质量高而且满足带宽约束的分段,从而能够有效的提高的客户端的媒体质量,提升用户体验。
下面以一具体实例对本发明媒体传输控制方法进行详细描述,请参阅图5,本发明媒体传输控制方法另一实施例包括:
501、客户端从服务器获取媒体索引文件;
当用户请求进行媒体业务时,客户端可以从服务器获取媒体索引文件。
本实施例中,仅以从第一服务器获取媒体呈现描述的例子进行说明,可以理解的是,在实际应用中,还可以使用其他的方式获取媒体呈现描述的例子,具体此处不作限定。
本实施例中,仅以媒体索引文件作为媒体呈现描述的例子进行说明,可以理解的是,在实际应用中,还可以使用其他的信息作为媒体呈现描述的例子,具体此处不作限定。
该媒体索引文件用于对服务器中的分段,使用码率信息和质量信息进行描述,该码率信息用于表示分段自身的码率,即对网络带宽的依赖程度,该码率信息可以是单位时间内的比特(Bit)数,或者固定时间段内的数据量。
本实施例中,客户端可以获取到分段的码率信息,也可以从分段所在的表述(representation)中获取该表述的码率信息,并将该表述的码率信息作为该表述内各分段的码率信息。
质量信息用于表示分段在对应码率下的媒体质量。
该质量信息可以为主观质量信息,也可以为客观质量信息;
其中,客观质量信息可以包括分段在对应码率下的媒体文件相对于原始媒体文件的峰值信噪比(PSNR,Peak Signal Noise Ratio),也可以为均方差(MSE,Mean squared Error);
主观质量信息可以为分段的平均主观得分(MOS,Mean Opinion Score),或者可以为差异平均主观得分(DMOS,Difference Mean Opinion Score)。
本实施例中的质量信息还可以为其他类型的,能够表示媒体质量的参数,具体此处不作限定。
需要说明的是,本实施例中的分段(segment)可以为能够被统一资源定位符(URL,Uniform/Universal Resource Locator)唯一引用的数据单元。
502、客户端获取带宽值、缓冲区中的媒体量以及预置时刻分段的时间长度;
客户端可以根据网络状况对未来的带宽进行估计得到带宽值,还可以对客户端的缓冲区中保存的媒体进行计算得到缓冲区中的媒体量。
该缓冲区中的媒体量既可以是缓冲区中的媒体数据量,也可以是缓冲区中的媒体时间量。
本实施例中,客户端获取带宽值以及缓冲区中的媒体量的方式具体此处不作限定。
503、客户端根据带宽值、缓冲区中的媒体量以及预置时刻分段的时间长度确定预置时刻的分段结束时从服务器得到的总数据量;
当客户端获取到的带宽值、缓冲区中的媒体量以及预置时刻的分段的时间长度之后,可以根据这些信息确定预置时刻的分段结束时,客户端将从服务器得到的总数据量。
本实施例中,预置时刻的分段结束时从服务器得到的总数据量F通过如下方式获得:
F=Buffer+Cwidth*t;
其中,Buffer为缓冲区中的媒体数据量,Cwidth为带宽值,t为预置时刻的分段的时间长度。
或者,
预置时刻的分段结束时从服务器得到的总数据量F还可以通过如下方式获得:
F=Cwidth*(Buffer+t);
其中,Buffer为缓冲区中的媒体时间量,Cwidth为带宽值,t为预置时刻的分段的时间长度。
504、客户端根据码率信息以及质量信息,确定当待下载数据量不超过总数据量时质量最高的分段;
客户端需要保证待下载数据量不超过总数据量,这样才能够完成分段的下载。
客户端可以以此为基础,采用多种方式确定质量最高的分段,例如可以选择码率信息小于或等于总数据量与预置时刻的分段的时间长度的比值的质量最高的分段。
本实施例中,质量最高可以是PSNR最大,或是MSE最小,或是MOS最大,或是DMOS最大等。
可以理解的是,除上述对质量最高的定义标准之外,在实际应用中,质量最高还可以采用其他类似的定义标准,具体此处不作限定。
505、客户端向服务器请求确定得到的分段。
客户端在步骤504中确定了分段之后,则可以向服务器请求下载这些分段。
本实施例中,客户端从服务器获取到媒体索引文件,该媒体索引文件用于描述分段,以及分段的码率信息和/或质量信息,客户端可以根据码率信息和/或质量信息可以选取媒体质量高而且满足带宽约束的分段,从而能够有效的提高的客户端的媒体质量,提升用户体验。
上面从流媒体客户端的角度对本发明流媒体传输控制方法进行了描述,下面从流媒体服务器的角度对本发明流媒体控制方法进行描述,请参阅图6,本发明流媒体传输控制方法另一实施例包括:
601、流媒体服务器接收流媒体客户端发送的索引获取请求;
当用户请求进行流媒体业务时,流媒体客户端可以向流媒体服务器发送索引获取请求以请求获取媒体索引文件。
本实施例中的流媒体业务可以是视频业务,也可以是音频业务,或者是其他类似的业务,具体此处不作限定。
602、流媒体服务器向该流媒体客户端发送媒体索引文件。
本实施例中的媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,该媒体码率信息用于表示节目分段自身的码率,即对网络带宽的依赖程度,媒体质量信息用于表示节目分段在对应码率下的媒体质量。
该媒体质量信息可以为节目分段在对应码率下的媒体文件相对于原始媒体文件的PSNR,也可以为用户评分,或者为其他类型的,能够表示媒体质量的参数,具体此处不作限定。
需要说明的是,流媒体服务器中存储有若干个节目分段,每一个节目分段都是独立的,能够被流媒体客户端通过诸如HTTP等网络协议访问的媒体文件。
该媒体文件可以是完整节目文件或者节目流中的一个分片,在响应流媒体客户端访问请求后,从完整节目文件中分割出来实时生成的媒体文件,也可以是从一个完整节目文件或者节目流中分割出来的分片,非实时生成的,静态的媒体文件。
该媒体文件的具体文件格式可以是FLV格式,也可以是MP4格式,或者是其他类型的格式。
本实施例中,流媒体服务器可以向流媒体客户端发送媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量,则流媒体客户端可以根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,由于流媒体客户端选择的是多个节目分段的码率组合,所以流媒体客户端可以根据不同节目分段的媒体质量信息在多个节目分段间进行合理的带宽分配,使得媒体质量高的节目分段获得更多的资源,从而能够有效的提高流媒体的综合质量。
请参阅图7,本发明媒体传输控制方法另一实施例包括:
701、第一服务器接收客户端发送的获取请求;
当用户请求进行媒体业务时,客户端可以向第一服务器发送获取请求以请求获取媒体呈现描述。
702、第一服务器向该客户端发送媒体呈现描述。
本实施例中的该媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息。
该分段(segment)可以为能够被统一资源定位符(URL,Uniform/UniversalResource Locator)唯一引用的数据单元。
在实际应用中,该媒体呈现描述可以采用媒体索引文件实现,或者采用其他类似的信息实现,具体此处不作限定。
本实施例中的码率信息用于表示分段自身的码率,即对网络带宽的依赖程度,该码率信息可以是单位时间内的比特(Bit)数,或者固定时间段内的数据量。
本实施例中的质量信息用于表示分段在对应码率下的媒体质量。
该质量信息可以为分段在对应码率下的媒体文件相对于原始媒体文件的PSNR,也可以为MSE,或者可以为MOS,或者可以为DMOS,或者为其他类型的,能够表示媒体质量的参数,具体此处不作限定。
本实施例中,第一服务器可以向客户端发送媒体呈现描述,该媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息,客户端可以根据码率信息和/或质量信息可以选取媒体质量高而且满足带宽约束的分段,从而能够有效的提高的客户端的媒体质量,提升用户体验。
下面介绍本发明中的流媒体客户端,请参阅图8,本发明流媒体客户端实施例包括:
获取单元801,用于从流媒体服务器获取媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量;
选择单元802,用于根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合;
下载单元803,用于按照该多个节目分段的码率组合下载对应码率的节目分段。
本实施例中的选择单元802还可以进一步包括:
带宽估计模块8021,用于获取带宽估计值;
缓冲区计算模块8022,用于计算缓冲区中的数据量;
时长获取模块8023,用于获取该多个节目分段中每一个节目分段的时间长度;
估算模块8024,用于根据该带宽估计值,缓冲区中的数据量以及该多个节目分段中每一个节目分段的时间长度估算多个节目分段结束时从流媒体服务器得到的总数据量;
决策模块8025,用于根据该媒体码率信息以及媒体质量信息,计算当待下载数据量不超过该总数据量时,使得节目质量最高的该多个节目分段各自对应的码率。
为便于理解,下面以一具体应用场景对本实施例流媒体客户端中的各单元进行详细描述:
当用户请求进行流媒体业务时,获取单元801可以从流媒体服务器获取媒体索引文件。
本实施例中的流媒体业务可以是视频业务,也可以是音频业务,或者是其他类似的业务,具体此处不作限定。
该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,该媒体码率信息用于表示节目分段自身的码率,即对网络带宽的依赖程度,媒体质量信息用于表示节目分段在对应码率下的媒体质量。
该媒体质量信息可以为节目分段在对应码率下的媒体文件相对于原始媒体文件的PSNR,也可以为用户评分,或者为其他类型的,能够表示媒体质量的参数,具体此处不作限定。
需要说明的是,流媒体服务器中存储有若干个节目分段,每一个节目分段都是独立的,能够被流媒体客户端通过诸如HTTP等网络协议访问的媒体文件。
该媒体文件可以是完整节目文件或者节目流中的一个分片,在响应流媒体客户端访问请求后,从完整节目文件中分割出来实时生成的媒体文件,也可以是从一个完整节目文件或者节目流中分割出来的分片,非实时生成的,静态的媒体文件。
该媒体文件的具体文件格式可以是FLV格式,也可以是MP4格式,或者是其他类型的格式。
选择单元802中的带宽估计模块8021可以根据网络状况对未来的带宽进行估计得到带宽估计值,选择单元802中的缓冲区计算模块8022可以对流媒体客户端的缓冲区中保存的数据量进行计算得到缓冲区中的数据量。
本实施例中,选择单元802中的带宽估计模块8021获取带宽估计值的方式以及选择单元802中的缓冲区计算模块8022获取缓冲区中的数据量的方式具体此处不作限定。
此外,假设选择单元802需要选择当前流媒体播放时刻之后的K个节目分段的码率组合,则选择单元802中的时长获取模块8023可以获取这K个节目分段中每一个节目分段的时间长度。
需要说明的是,该K的数值可以根据实际情况进行确定,例如可以为2,3,4或更多,具体此处不作限定。
当端获取到的带宽估计值、缓冲区中的数据量以及K个节目分段中每一个节目分段的时间长度之后,选择单元802中的估算模块8024可以根据这些信息估算当K个节目分段结束时,流媒体客户端将从流媒体服务器得到的总数据量。
选择单元802在确定K个节目分段各自对应的码率时,需要使得根据确定后的码率进行下载时的待下载数据量不超过估算模块8024估算得到的总数据量。
选择单元802中的决策模块8025可以以此为基础,采用多种方式确定节目质量最高时,K个节目分段各自对应的码率。
需要说明的是,具体确定码率的方式可以采用循环迭代、穷举尝试等多种方式,此处不作限定。
本实施例中,节目质量最高可以是指K个节目分段的媒体质量之和最高,或者是K个节目分段的媒体质量平均值最高,或者是K个节目分段中满足某特定条件的一个或多个节目分段的媒体质量最高,该特定条件可以是媒体质量信息最大,或媒体质量信息最小等,具体此处不作限定。
可以理解的是,除上述对节目质量最高的定义标准之外,在实际应用中,节目质量最高还可以采用其他类似的定义标准,具体此处不作限定。
选择单元802中的决策模块8025确定了当前流媒体播放时刻之后的K个节目分段各自对应的码率之后,下载单元803则可以按照这些节目分段的码率组合下载对应码率的节目分段。
本实施例中,获取单元801从流媒体服务器获取到媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量,选择单元802可以根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,由于流媒体客户端选择的是多个节目分段的码率组合,所以流媒体客户端可以根据不同节目分段的媒体质量信息在多个节目分段间进行合理的带宽分配,使得媒体质量高的节目分段获得更多的资源,从而能够有效的提高流媒体的综合质量。
下面介绍本发明流媒体服务器,请参阅图9,本发明流媒体服务器实施例包括:
接收单元901,用于接收流媒体客户端发送的索引获取请求;
发送单元902,用于向该流媒体客户端发送媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量。
为便于理解,下面以一具体应用场景对本实施例流媒体服务器中的各单元进行详细描述:
当用户请求进行流媒体业务时,流媒体客户端可以向流媒体服务器发送索引获取请求以请求获取媒体索引文件,则接收单元901可以接收流媒体客户端发送的索引获取请求。
本实施例中的流媒体业务可以是视频业务,也可以是音频业务,或者是其他类似的业务,具体此处不作限定。
当接收单元901接收到流媒体客户端发送的索引获取请求之后,发送单元902可以向流媒体客户端发送媒体索引文件。
本实施例中的媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,该媒体码率信息用于表示节目分段自身的码率,即对网络带宽的依赖程度,媒体质量信息用于表示节目分段在对应码率下的媒体质量。
该媒体质量信息可以为节目分段在对应码率下的媒体文件相对于原始媒体文件的PSNR,也可以为用户评分,或者为其他类型的,能够表示媒体质量的参数,具体此处不作限定。
需要说明的是,流媒体服务器中存储有若干个节目分段,每一个节目分段都是独立的,能够被流媒体客户端通过诸如HTTP等网络协议访问的媒体文件。
该媒体文件可以是完整节目文件或者节目流中的一个分片,在响应流媒体客户端访问请求后,从完整节目文件中分割出来实时生成的媒体文件,也可以是从一个完整节目文件或者节目流中分割出来的分片,非实时生成的,静态的媒体文件。
该媒体文件的具体文件格式可以是FLV格式,也可以是MP4格式,或者是其他类型的格式。
本实施例中,发送单元902可以向流媒体客户端发送媒体索引文件,该媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,该媒体质量信息用于表示该节目分段在对应码率下的媒体质量,则流媒体客户端可以根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,由于流媒体客户端选择的是多个节目分段的码率组合,所以流媒体客户端可以根据不同节目分段的媒体质量信息在多个节目分段间进行合理的带宽分配,使得媒体质量高的节目分段获得更多的资源,从而能够有效的提高流媒体的综合质量。
下面介绍本发明中的客户端,请参阅图10,本发明客户端实施例包括:
描述获取单元1001,用于获取媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息;
分段选择单元1002,用于根据媒体呈现描述中的码率信息和/或质量信息选择分段。
本实施例中客户端还可以进一步包括:
分段下载单元1003,用于向服务器请求下载分段选择单元1002选择的分段。
本实施例中的分段选择单元1002还可以进一步包括:
估计模块10021,用于获取带宽值;
计算模块10022,用于计算缓冲区中的媒体量;
获取模块10023,用于获取预置时刻的分段的时间长度;
处理模块10024,用于根据所述带宽值,缓冲区中的媒体量以及预置时刻的分段的时间长度确定所述预置时刻的分段结束时从服务器得到的总数据量;
确定模块10025,用于根据码率信息以及质量信息,确定当待下载数据量不超过总数据量时质量最高的分段。
为便于理解,下面以一具体应用场景对本实施例客户端中的各单元进行详细描述:
当用户请求进行媒体业务时,描述获取单元1001可以从第一服务器获取媒体索引文件。
本实施例中,仅以媒体索引文件作为媒体呈现描述的例子进行说明,可以理解的是,在实际应用中,还可以使用其他的信息作为媒体呈现描述的例子,具体此处不作限定。
分段选择单元1002中的估计模块10021可以根据网络状况对未来的带宽进行估计得到带宽值,分段选择单元1002中的计算模块10022还可以对客户端的缓冲区中保存的媒体进行计算得到缓冲区中的媒体量。
该缓冲区中的媒体量既可以是缓冲区中的媒体数据量,也可以是缓冲区中的媒体时间量。
此外,分段选择单元1002中的获取模块10023还可以获取预置时刻的分段的时间长度。
当获取到的带宽值、缓冲区中的媒体量以及预置时刻的分段的时间长度之后,处理模块10024可以根据这些信息确定预置时刻的分段结束时,客户端将从服务器得到的总数据量。
本实施例中,预置时刻的分段结束时从服务器得到的总数据量F通过如下方式获得:
F=Buffer+Cwidth*t;
其中,Buffer为缓冲区中的媒体数据量,Cwidth为带宽值,t为预置时刻的分段的时间长度。
或者,
预置时刻的分段结束时从服务器得到的总数据量F还可以通过如下方式获得:
F=Cwidth*(Buffer+t);
其中,Buffer为缓冲区中的媒体时间量,Cwidth为带宽值,t为预置时刻的分段的时间长度。
客户端需要保证待下载数据量不超过总数据量,这样才能够完成分段的下载。
分段选择单元1002中的确定模块10025可以以此为基础,采用多种方式确定质量最高的分段,例如可以选择码率信息小于或等于总数据量与预置时刻的分段的时间长度的比值的质量最高的分段。
本实施例中,质量最高可以是PSNR最大,或是MSE最小,或是MOS最大,或是DMOS最大等。
可以理解的是,除上述对质量最高的定义标准之外,在实际应用中,质量最高还可以采用其他类似的定义标准,具体此处不作限定。
分段选择单元1002中的确定模块10025确定了分段之后,分段下载单元1003则可以向服务器请求下载这些分段。
本实施例中,描述获取单元1001从服务器获取到媒体索引文件,该媒体索引文件用于描述分段,以及分段的码率信息和/或质量信息,分段选择单元1002可以根据码率信息和/或质量信息可以选取媒体质量高而且满足带宽约束的分段,从而能够有效的提高的客户端的媒体质量,提升用户体验。
下面介绍本发明服务器,本实施例中的服务器可以为前述的第一服务器,请参阅图11,本发明服务器实施例包括:
请求接收单元1101,用于接收客户端发送的获取请求;
描述发送单元1102,用于向客户端发送媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息。
为便于理解,下面以一具体应用场景对本实施例服务器中的各单元进行详细描述:
当用户请求进行媒体业务时,客户端可以向第一服务器的请求接收单元1101发送获取请求以请求获取媒体呈现描述。
请求接收单元1101接收到客户端发送的获取请求之后,描述发送单元1102可以向客户端发送媒体呈现描述,媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息。
本实施例中的该媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息。
该分段(segment)可以为能够被统一资源定位符(URL,Uniform/UniversalResource Locator)唯一引用的数据单元。
在实际应用中,该媒体呈现描述可以采用媒体索引文件实现,或者采用其他类似的信息实现,具体此处不作限定。
本实施例中的码率信息用于表示分段自身的码率,即对网络带宽的依赖程度,该码率信息可以是单位时间内的比特(Bit)数,或者固定时间段内的数据量。
本实施例中的质量信息用于表示分段在对应码率下的媒体质量。
该质量信息可以为分段在对应码率下的媒体文件相对于原始媒体文件的PSNR,也可以为MSE,或者可以为MOS,或者可以为DMOS,或者为其他类型的,能够表示媒体质量的参数,具体此处不作限定。
本实施例中,描述发送单元1102可以向客户端发送媒体呈现描述,该媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息,客户端可以根据码率信息和/或质量信息可以选取媒体质量高而且满足带宽约束的分段,从而能够有效的提高的客户端的媒体质量,提升用户体验。
为更全面的说明本发明方案的效果,下面以一些实际应用中的实验数据和结果进行效果分析:
请参阅图12,图12为本发明实施例中一个质量-码率曲线图,本实施例中,媒体质量信息以PSNR为例进行说明。
图12所示的曲线图中包含了6个节目分段各自对应的曲线:节目分段1对应曲线1201,节目分段2对应曲线1202,节目分段3对应曲线1203,节目分段4对应曲线1204,节目分段5对应曲线1205,节目分段6对应曲线1206。
本实施例中,视频1(Video1)采用节目分段1,节目分段3以及节目分段5作为实验数据,视频2(Video2)采用节目分段2,节目分段4以及节目分段5作为实验数据。
图13所示的是采用本发明方案后,Video1以及Video2相对于传统方案的PSNR增益曲线,其中,Video1对应曲线1301,Video2对应曲线1302。
此处所指的传统方案是指“根据当前网络带宽,选择可以流畅播放的最大视频码率”的方案。
从实验结果可以看出,相对于传统方案,本发明方案在Video 1和Video 2上可以分别达到0.5dB和0.16dB的平均PSNR增益,明显的提高了流媒体业务的用户体验质量。
可以理解的是,在实际应用中,除了使用PSNR作为媒体质量信息之外,还可以采用其他的参数作为媒体质量信息,例如用户评分,下面请参阅图14,图14为本发明实施例中另一质量-码率曲线图,本实施例中,媒体质量信息以用户评分为例进行说明。
在本实施例的用户评分体系中,媒体质量越高,则分数越高,反之亦然,最高分为5分,最低分为1分。
图14所示的曲线图中包含了6个节目分段各自对应的曲线:节目分段1对应曲线1401,节目分段2对应曲线1402,节目分段3对应曲线1403,节目分段4对应曲线1404,节目分段5对应曲线1405,节目分段6对应曲线1406。
本实施例中,视频1(Video1)采用节目分段1,节目分段3以及节目分段5作为实验数据,视频2(Video2)采用节目分段2,节目分段4以及节目分段5作为实验数据。
图15所示的是采用本发明方案后,Video1以及Video2相对于传统方案的评分增益曲线,其中,Video1对应曲线15001,Video2对应曲线15002。
此处所指的传统方案是指“根据当前网络带宽,选择可以流畅播放的最大视频码率”的方案。
从实验结果可以看出,相对于传统方案,本发明方案在Video 1和Video 2上可以分别提高0.3分和0.16分,明显的提高了流媒体业务的用户体验质量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种流媒体传输控制方法、媒体传输控制方法、相关设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。
Claims (17)
1.一种流媒体传输控制方法,其特征在于,包括:
流媒体客户端从流媒体服务器获取媒体索引文件,所述媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体码率信息和媒体质量信息进行描述,所述媒体质量信息用于表示所述节目分段在对应码率下的媒体质量;
流媒体客户端根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合;
流媒体客户端按照所述多个节目分段的码率组合下载对应码率的节目分段。
2.根据权利要求1所述的方法,其特征在于:
所述媒体质量信息为所述节目分段在对应码率下的媒体文件相对于原始媒体文件的峰值信噪比PSNR。
3.根据权利要求1或2所述的方法,其特征在于,所述流媒体客户端根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合包括:
流媒体客户端获取带宽估计值,缓冲区中的数据量以及所述多个节目分段中每一个节目分段的时间长度;
流媒体客户端根据所述带宽估计值,缓冲区中的数据量以及所述多个节目分段中每一个节目分段的时间长度估算多个节目分段结束时从流媒体服务器得到的总数据量;
流媒体客户端根据所述媒体码率信息以及媒体质量信息,计算当待下载数据量不超过所述总数据量时,使得节目质量最高的所述多个节目分段各自对应的码率。
4.根据权利要求3所述的方法,其特征在于,所述多个节目分段结束时从流媒体服务器得到的总数据量通过如下方式估算获得:
所述F为K个节目分段结束时从流媒体服务器得到的总数据量,所述Buffer为缓冲区中的数据量,所述Cwidth为带宽估计值,所述τ为预置的带宽估计修正量,所述ti为节目分段i的时间长度,所述i为大于或等于1,且小于或等于K的整数。
5.根据权利要求3所述的方法,其特征在于,所述流媒体客户端根据所述媒体码率信息以及媒体质量信息,计算当待下载数据量不超过所述总数据量时,使得节目质量最高的所述多个节目分段各自对应的码率包括:
1)流媒体客户端将所述多个节目分段的码率设置为对应的初始值;
2)流媒体客户端根据媒体码率信息以及媒体质量信息计算所述多个节目分段中每一个节目分段的平均带宽媒体质量;
3)流媒体客户端查询平均带宽媒体质量最大值对应的选定节目分段;
4)流媒体客户端提高所述选定节目分段的码率,并计算待下载数据量;
5)若所述下载数据量等于所述总数据量,流媒体客户端输出所述多个节目分段的码率;若所述下载数据量大于所述总数据量,流媒体客户端降低所述选定节目分段的码率,并输出所述多个节目分段的码率;若所述下载数据量小于所述总数据量,则重复执行步骤2)至步骤5)。
6.根据权利要求5所述的方法,其特征在于,所述流媒体客户端根据媒体码率信息以及媒体质量信息计算所述多个节目分段中每一个节目分段的平均带宽媒体质量包括:
流媒体客户端获取以及
流媒体客户端将与的比值作为节目分段i的平均带宽媒体质量;
所述为节目分段i在码率为H[i]时的媒体质量信息,所述为节目分段i在码率为H[i]时的数据量。
7.一种媒体传输控制方法,其特征在于,包括:
客户端获取媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息;
客户端根据所述媒体呈现描述中的码率信息和/或质量信息选择分段;
所述客户端根据所述媒体呈现描述中的码率信息和/或质量信息选择分段包括:
客户端获取带宽值,缓冲区中的媒体量以及预置时刻的分段的时间长度;
客户端根据所述带宽值,缓冲区中的媒体量以及预置时刻的分段的时间长度确定所述预置时刻的分段结束时从服务器得到的总数据量;
客户端根据所述码率信息以及所述质量信息,确定当待下载数据量不超过所述总数据量时质量最高的分段。
8.根据权利要求7所述的方法,其特征在于:
所述质量信息包括主观质量信息或客观质量信息;
所述客观质量信息包括所述分段在对应码率下的媒体文件相对于原始媒体文件的峰值信噪比PSNR,或均方误差MSE;
所述主观质量信息包括所述分段的平均主观得分MOS,或差异平均主观得分DMOS。
9.根据权利要求7所述的方法,其特征在于,所述预置时刻的分段结束时从服务器得到的总数据量F通过如下方式获得:
F=Buffer+Cwidth*t;
所述Buffer为缓冲区中的媒体数据量,所述Cwidth为带宽值,所述t为预置时刻的分段的时间长度。
10.根据权利要求7所述的方法,其特征在于,所述预置时刻的分段结束时从服务器得到的总数据量F通过如下方式获得:
F=Cwidth*(Buffer+t);
所述Buffer为缓冲区中的媒体时间量,所述Cwidth为带宽值,所述t为预置时刻的分段的时间长度。
11.根据权利要求7至10中任意一项所述的方法,其特征在于,所述客户端根据所述码率信息以及所述质量信息,确定当待下载数据量不超过所述总数据量时质量最高的分段包括:
客户端选择码率信息小于或等于所述总数据量与所述预置时刻的分段的时间长度的比值的质量最高的分段;
所述质量最高为PSNR最大,或MSE最小,或MOS最大,或DMOS最大。
12.一种流媒体传输控制处理方法,其特征在于,包括:
流媒体服务器接收流媒体客户端发送的索引获取请求;
流媒体服务器向所述流媒体客户端发送媒体索引文件,所述媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,以使得流媒体客户端根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,所述媒体质量信息用于表示所述节目分段在对应码率下的媒体质量。
13.根据权利要求12所述的方法,其特征在于:
所述媒体质量信息为所述节目分段在对应码率下的媒体文件相对于原始媒体文件的峰值信噪比PSNR。
14.一种流媒体客户端,其特征在于,包括:
获取单元,用于从流媒体服务器获取媒体索引文件,所述媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,所述媒体质量信息用于表示所述节目分段在对应码率下的媒体质量;
选择单元,用于根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合;
下载单元,用于按照所述多个节目分段的码率组合下载对应码率的节目分段。
15.根据权利要求14所述的流媒体客户端,其特征在于,所述选择单元包括:
带宽估计模块,用于获取带宽估计值;
缓冲区计算模块,用于计算缓冲区中的数据量;
时长获取模块,用于获取所述多个节目分段中每一个节目分段的时间长度;
估算模块,用于根据所述带宽估计值,缓冲区中的数据量以及所述多个节目分段中每一个节目分段的时间长度估算多个节目分段结束时从流媒体服务器得到的总数据量;
决策模块,用于根据所述媒体码率信息以及媒体质量信息,计算当待下载数据量不超过所述总数据量时,使得节目质量最高的所述多个节目分段各自对应的码率。
16.一种客户端,其特征在于,包括:
描述获取单元,用于获取媒体呈现描述,所述媒体呈现描述用于描述分段,以及分段的码率信息和/或质量信息;
分段选择单元,用于根据所述媒体呈现描述中的码率信息和/或质量信息选择分段;
所述分段选择单元包括:
估计模块,用于获取带宽值;
计算模块,用于计算缓冲区中的媒体量;
获取模块,用于获取预置时刻的分段的时间长度;
处理模块,用于根据所述带宽值,缓冲区中的媒体量以及预置时刻的分段的时间长度确定所述预置时刻的分段结束时从服务器得到的总数据量;
确定模块,用于根据所述码率信息以及所述质量信息,确定当待下载数据量不超过所述总数据量时质量最高的分段。
17.一种流媒体服务器,其特征在于,包括:
接收单元,用于接收流媒体客户端发送的索引获取请求;
发送单元,用于向所述流媒体客户端发送媒体索引文件,所述媒体索引文件用于对流媒体服务器中每一个节目分段,使用媒体质量信息和媒体码率信息进行描述,以使得流媒体客户端根据网络状况、媒体码率信息以及媒体质量信息选择当前流媒体播放时刻之后的多个节目分段的码率组合,所述媒体质量信息用于表示所述节目分段在对应码率下的媒体质量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110083963.9A CN102710586B (zh) | 2011-03-28 | 2011-04-02 | 流媒体传输控制方法、媒体传输控制方法、相关设备 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110075542 | 2011-03-28 | ||
CN201110075542.1 | 2011-03-28 | ||
CN201110083963.9A CN102710586B (zh) | 2011-03-28 | 2011-04-02 | 流媒体传输控制方法、媒体传输控制方法、相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102710586A CN102710586A (zh) | 2012-10-03 |
CN102710586B true CN102710586B (zh) | 2014-10-08 |
Family
ID=46903148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110083963.9A Active CN102710586B (zh) | 2011-03-28 | 2011-04-02 | 流媒体传输控制方法、媒体传输控制方法、相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102710586B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924580B2 (en) * | 2011-08-12 | 2014-12-30 | Cisco Technology, Inc. | Constant-quality rate-adaptive streaming |
KR20170083641A (ko) | 2012-07-10 | 2017-07-18 | 브이아이디 스케일, 인크. | 품질 주도형 스트리밍 |
CN103905924B (zh) * | 2012-12-28 | 2018-06-08 | 联芯科技有限公司 | 终端侧的视频自适应接收方法和装置 |
CN103929684B (zh) * | 2013-01-14 | 2018-06-15 | 华为技术有限公司 | 一种基于流媒体选择码流分段的方法、播放器和终端 |
CN103973662B (zh) * | 2013-02-06 | 2017-06-20 | 华为技术有限公司 | 流媒体请求方法及控制器 |
HUE043713T2 (hu) * | 2013-03-29 | 2019-09-30 | Intel Ip Corp | Minõségtudatos sebességillesztési technikák DASH streameléshez |
CN104105012B (zh) | 2013-04-03 | 2018-04-20 | 华为技术有限公司 | 流媒体的片段准备方法和装置 |
CN104113766B (zh) * | 2013-04-16 | 2018-01-02 | 华为技术有限公司 | 一种媒体流的传输带宽的调整方法及相关装置 |
CN103248962B (zh) * | 2013-04-23 | 2016-12-28 | 华为技术有限公司 | 获取流媒体数据的方法、设备及系统 |
US8850055B1 (en) * | 2013-09-17 | 2014-09-30 | Google Inc. | Intelligently streaming portions of media at higher quality over a limited bandwidth connection |
CN104956673B (zh) * | 2013-12-19 | 2017-02-22 | 华为技术有限公司 | 移动视频业务的体验质量测量方法及装置 |
CN104780124B (zh) * | 2014-01-09 | 2018-08-07 | 中国科学院声学研究所 | 一种按时间段动态调整预留带宽的资源管理方法 |
CN105027530B (zh) * | 2014-01-23 | 2018-09-07 | 华为技术有限公司 | 移动终端、第一基站及流媒体分段获取方法 |
WO2016000211A1 (zh) * | 2014-07-01 | 2016-01-07 | 华为技术有限公司 | 视频数据传输装置、方法、服务器、基站和客户端 |
CN105376176B (zh) * | 2014-08-21 | 2019-03-19 | 中国电信股份有限公司 | 保障移动互联网视频业务服务质量的方法、装置和系统 |
CN104618743B (zh) * | 2014-12-30 | 2018-05-18 | 北京国双科技有限公司 | 码率资源分配方法、装置及系统 |
CN110198495B (zh) * | 2019-06-28 | 2022-03-22 | 广州市百果园信息技术有限公司 | 一种视频下载和播放的方法、装置、设备和存储介质 |
CN112135173B (zh) * | 2020-10-10 | 2023-03-21 | Vidaa美国公司 | 一种改善流媒体起播码率的方法及显示设备 |
CN117560525B (zh) * | 2024-01-11 | 2024-04-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备以及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101677325A (zh) * | 2008-09-16 | 2010-03-24 | 华为技术有限公司 | 发布媒体描述信息和获取媒体的方法、装置、系统 |
CN101795264A (zh) * | 2009-12-30 | 2010-08-04 | 北京新岸线网络技术有限公司 | 一种视频数据传送方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783773B2 (en) * | 2006-07-24 | 2010-08-24 | Microsoft Corporation | Glitch-free media streaming |
-
2011
- 2011-04-02 CN CN201110083963.9A patent/CN102710586B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101677325A (zh) * | 2008-09-16 | 2010-03-24 | 华为技术有限公司 | 发布媒体描述信息和获取媒体的方法、装置、系统 |
CN101795264A (zh) * | 2009-12-30 | 2010-08-04 | 北京新岸线网络技术有限公司 | 一种视频数据传送方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102710586A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102710586B (zh) | 流媒体传输控制方法、媒体传输控制方法、相关设备 | |
US11076187B2 (en) | Systems and methods for performing quality based streaming | |
US10298985B2 (en) | Systems and methods for performing quality based streaming | |
US10911506B2 (en) | Methods for quality-aware adaptive streaming over hypertext transfer protocol and reporting quality of experience | |
US8255559B2 (en) | Data streaming through time-varying transport media | |
US9462021B2 (en) | Methods and devices for efficient adaptive bitrate streaming | |
US9112947B2 (en) | Flow-rate adaptation for a connection of time-varying capacity | |
US9473406B2 (en) | On-demand adaptive bitrate management for streaming media over packet networks | |
US10320869B2 (en) | Network-capacity optimized adaptive HTTP streaming | |
US11765400B2 (en) | Systems and methods for selecting an initial streaming bitrate | |
KR101904053B1 (ko) | 단말장치의 멀티미디어 처리장치 및 방법 | |
CA2723788C (en) | Data streaming through time-varying transport media | |
CN104125429A (zh) | 视频数据传输的调节方法及装置 | |
CN103338393A (zh) | 一种hspa系统下用户体验驱动的视频码率选择方法 | |
US10015225B2 (en) | Method for dynamic adaptation of the reception bitrate and associated receiver | |
Dubin et al. | The effect of client buffer and MBR consideration on DASH Adaptation Logic | |
US20210127146A1 (en) | Method and apparatus for automatic hls bitrate adaptation | |
US9131251B2 (en) | Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server | |
KR102304476B1 (ko) | 적응적 스트리밍 서비스를 위한 다중 경로 기반 블록 전송 시스템 및 스트리밍 방법 | |
EP2704443A2 (en) | Device for controlling streaming of media, server, receiver and method of controlling thereof | |
US20080080379A1 (en) | Network device and frame processing method thereof | |
SG190978A1 (en) | Method and system for controlling data packet transmissions over lossy protocols | |
JP2022039452A (ja) | 受信端末、配信サーバ、受信方法及び受信プログラム | |
US20220408135A1 (en) | Server-Side Adaptive Media Streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |