CN105791987B - 媒体数据播放的方法及终端 - Google Patents
媒体数据播放的方法及终端 Download PDFInfo
- Publication number
- CN105791987B CN105791987B CN201410812144.7A CN201410812144A CN105791987B CN 105791987 B CN105791987 B CN 105791987B CN 201410812144 A CN201410812144 A CN 201410812144A CN 105791987 B CN105791987 B CN 105791987B
- Authority
- CN
- China
- Prior art keywords
- cache
- media data
- code check
- client
- current
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/437—Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
Abstract
本发明公开了一种媒体数据播放的方法及终端,所述媒体数据播放的方法包括以下步骤:当终端的客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求;获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt;接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值;若当前数据量缓存率Rs达到1或者平均码率下缓存时间比率Rt达到1,则将所缓存的新媒体数据发送至所述播放器进行播放。本发明能够在码率切换时快速重新启动播放。
Description
技术领域
本发明涉及媒体播放技术领域,尤其涉及一种媒体数据播放的方法及终端。
背景技术
目前,终端的播放系统支持进行高低码率的切换,例如,一个同时带视频、音频和字幕的聊天系统,在带宽不足的情况下,可直接舍弃视频部分,甚至同时去掉视频和音频部分,只留下字幕的显示。
当进行码率切换时,不论是舍弃部分的资源或者切换播放源,都可能导致另一个问题:切换码率后重新启动播放的速度变慢。例如,一个带视频、音频和字幕的播放源,由于带宽不足,则此时单位时间内从服务器获取的数据量就会减少,播放系统从服务器获取播放源,然后去掉视频部分,按照现有的缓存策略来启动播放,则要缓存原来预定的数据量就需要等待较长的时间,导致码率切换后,重新启动播放的速度较慢。另外,即使在相同的网络环境下,不同的终端的CPU或者解码器等的性能存在差异,特别是终端上述的这些性能较差时,根据带宽来确定播放系统的码率,同样也会导致重新启动播放的速度较慢的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种,旨在解决切换码率后重新启动播放的速度变慢的技术问题。
为实现上述目的,本发明提供一种媒体数据播放的方法,所述媒体数据播放的方法包括以下步骤:
在客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求;
获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt;
接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值;
若当前数据量缓存率Rs达到1或者平均码率下缓存时间比率Rt达到1,则将所缓存的新媒体数据发送至所述播放器进行播放。
优选地,所述获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt的步骤包括:
获取当前的码率、设定的缓存数据量最大值Ms及设定的缓存最大时间Mt;
根据所述码率及设定的缓存数据量最大值Ms计算当前数据量缓存率Rs:RS=S/MS,根据所述码率及设定的缓存最大时间Mt计算平均码率下缓存时间比率Rt:Rt=T/Mt,其中,所述S为当前缓存的数据量,Ms为设定的缓存数据量最大值,T为缓存数据平均码率时间,Mt为设定的缓存最大时间。
优选地,所述接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值的步骤包括:
比较所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt的大小,获取所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt中的较大者;
当所述较大者的值到达1时,获取所述较大者的值到达1对应的时间值;
判断所述客户端缓存的新媒体数据的时间是否达到所述时间值,以判断所述客户端缓存的新媒体数据是否达到预设值。
优选地,所述在客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求的步骤之前还包括:
在所述播放器播放媒体数据的过程中,所述客户端检测带宽是否发生变化或者检测是否接收到所述播放器发送的码率切换指令。
优选地,所述播放器为gstreamer播放器。
此外,为实现上述目的,本发明还提供一种媒体数据播放的终端,所述媒体数据播放的终端包括:
清空模块,用于在客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求;
计算模块,用于获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt;
判断模块,用于接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值;
发送模块,用于若当前数据量缓存率Rs达到1或者平均码率下缓存时间比率Rt达到1,则将所缓存的新媒体数据发送至所述播放器进行播放。
优选地,所述计算模块包括:
第一获取单元,用于获取当前的码率、设定的缓存数据量最大值Ms及设定的缓存最大时间Mt;
计算单元,用于根据所述码率及设定的缓存数据量最大值Ms计算当前数据量缓存率Rs:RS=S/MS,根据所述码率及设定的缓存最大时间Mt计算平均码率下缓存时间比率Rt:Rt=T/Mt,其中,所述S为当前缓存的数据量,Ms为设定的缓存数据量最大值,T为缓存数据平均码率时间,Mt为设定的缓存最大时间。
优选地,所述判断模块包括:
比较单元,用于比较所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt的大小,获取所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt中的较大者;
第二获取单元,用于当所述较大者的值到达1时,获取所述较大者的值到达1对应的时间值;
判断单元,用于判断所述客户端缓存的新媒体数据的时间是否达到所述时间值,以判断所述客户端缓存的新媒体数据是否达到预设值。
优选地,所述媒体数据播放的终端还包括:
检测模块,用于在所述播放器播放媒体数据的过程中,客户端检测带宽是否发生变化或者检测是否接收到所述播放器发送的码率切换指令。
优选地,所述播放器为gstreamer播放器。
本发明一种媒体数据播放的方法及终端,当客户端检测到需要进行码率切换时,确认是由高码率切换为低码率还是由低码率切换为高码率,然后根据当前的码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt,即以缓存量或缓存时间来对客户端缓存的新媒体数据的量是否达到预设值进行判断,只要其中一个达到预设值,则认为客户端缓存完成,播放器可以重新启动播放,本发明根据客户端的缓存量或缓存时间为缓存策略的依据,无论是带宽不足或终端的播放性能不足,均能够快速重新启动播放,使播放的效果更佳。
附图说明
图1为本发明媒体数据播放的方法第一实施例的流程示意图;
图2为图1中步骤S102的细化流程示意图;
图3为图1中步骤S103的细化流程示意图;
图4为本发明媒体数据播放的方法第二实施例的流程示意图;
图5为本发明媒体数据播放的终端第一实施例的功能模块示意图;
图6为图5中计算模块的细化功能模块示意图;
图7为图5中判断模块的细化功能模块示意图;
图8为本发明媒体数据播放的终端第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种媒体数据播放的方法,参照图1,在一实施例中,该媒体数据播放的方法包括:
步骤S101,在客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求;
本实施例中,终端可以是电视、电脑、平板电脑或者手机等等。
本实施例中,终端的客户端从服务器上获取媒体数据并进行缓存,然后将缓存的媒体数据发送给播放器进行播放。
本实施例中,客户端响应用户的操作,创建播放实例并向服务器请求媒体数据,服务器端响应客户端的请求,将媒体数据以基本码流(Elementary Streams,ES)的形式发送给客户端,基本码流可能包含视频、音频、字幕等的其中一个或多个。
本实施例中,当客户端检测到需要进行码率切换时,例如,当前的带宽不足或者终端的播放性能不足时,需要进行码率切换。客户端将自身当前缓存的媒体数据清空,以重新接收服务器发送的媒体数据。
本实施例中,客户端在检测是否需要进行码率切换时,能够检测到是由高码率切换为低码率还是由低码率切换为高码率。然后向服务器发送获取对应的媒体数据的请求。
步骤S102,获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt;
本实施例中,当前数据缓存量率Rs是指当前缓存的数据量S和设定的缓存数据量最大值Ms的比值:
RS=S/MS,
如果当前的网速越快,累积的当前缓存的数据量S越大,当前数据缓存量率Rs就越大,而当前缓存的数据量S与当前的码率成正比关系,因此,可以根据当前的码率计算得到当前缓存的数据量S。
本实施例中,平均码率下缓存时间比率Rt是指缓存数据平均码率时间T和设定的缓存最大时间Mt的比值:
Rt=T/Mt,
如果当前的网速越快,累积一定的缓存数据量越快,而缓存数据平均码率时间T与当前的码率成反比关系,即缓存数据平均码率时间T越小,从而平均码率下缓存时间比率Rt越小。
本实施例的缓存策略以当前数据量缓存率Rs及平均码率下缓存时间比率Rt这两个比值为依据。
步骤S103,接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值;
本实施例中,客户端接收服务器端的发送的新媒体数据并进行缓存,客户端以特定的样本形式缓存新媒体数据,每个样本都是独立的,包括新媒体数据及新媒体数据的说明如dts、duration等信息。
本实施例中,在当前的码率下,客户端接收服务器发送的新媒体数据,然后根据上述计算得到的当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断客户端缓存的新媒体数据是否达到预设值。
本实施例中,如果当前数据量缓存率Rs达到100%或者平均码率下缓存时间比率Rt达到100%均认为客户端缓存的新媒体数据已经达到预设值,可以重新启动播放。
步骤S104,若当前数据量缓存率Rs达到1或者平均码率下缓存时间比率Rt达到1,则将所缓存的新媒体数据发送至所述播放器进行播放。
本实施例中,播放器优选地为gstreamer播放器,gstreamer是一个用于创建流媒体应用程序的多媒体框架库,其可以提供构建各种媒体功能组件的功能,包括简单的音频回放、音频和视频播放、录音、流媒体和音频编辑等,还可以创建诸如视频编辑器、流媒体广播和媒体播放器等等的很多多媒体应用等。
本实施例中,当前数据量缓存率Rs或平均码率下缓存时间比率Rt两者中的一个先达到100%,则客户端缓存完成,客户端发送播放信息给播放器,通知播放器重新启动播放,播放器创建管道并开始启动播放,并从客户端请求新媒体数据。
本实施例中,对不同源的媒体数据进行划分。播放器以特殊的请求格式向客户端请求媒体数据,请求格式说明部分包含需要请求哪一路媒体数据及请求的媒体数据的个数。无论是客户端还是播放器,对不同源的媒体数据都是独立请求和独立保存的,这样就可以做到对不同源的媒体数据有分别的进行处理。播放器端将不同源的媒体数据以特定的格式保存在不同的队列中,按媒体数据请求的先后顺序,从这些数据队列中有序获取媒体数据进行播放,保持数据的同步并且不造成某一路媒体数据的堆积。
与现有技术相比,本实施例当客户端检测到需要进行码率切换时,确认是由高码率切换为低码率还是由低码率切换为高码率,然后根据当前的码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt,即以缓存量或缓存时间来对客户端缓存的新媒体数据的量是否达到预设值进行判断,只要其中一个达到预设值,则认为客户端缓存完成,播放器可以重新启动播放,本实施例根据客户端的缓存量或缓存时间为缓存策略的依据,无论是带宽不足或终端的播放性能不足,均能够快速重新启动播放,使播放的效果更佳。
在一优选的实施例中,如图2所示,在上述图1的实施例的基础上,上述步骤S102包括:
步骤S1021,获取当前的码率、设定的缓存数据量最大值Ms及设定的缓存最大时间Mt;
步骤S1022,根据所述码率及设定的缓存数据量最大值Ms计算当前数据量缓存率Rs:RS=S/MS,根据所述码率及设定的缓存最大时间Mt计算平均码率下缓存时间比率Rt:Rt=T/Mt。
本实施例中,当前数据缓存量率Rs:RS=S/MS;S为当前缓存的数据量,Ms为设定的缓存数据量最大值,其中,当前缓存的数据量S为当前的码率A与缓存时间x的乘积:S=A*x。
本实施例中,设定的缓存最大时间Mt:Rt=T/Mt;T为缓存数据平均码率时间,Mt为设定的缓存最大时间。
优选地,缓存数据平均码率时间T是当前缓存的数据量S和平均码率A的比值:T=S/A。
其中,平均码率A是单位时间的码率与旧平均码率v的均值,其中单位时间的码率是指设定的单位时间内接收媒体数据与接收时间的比值:
旧平均码率v是指之前的一段时间计算的平均码率值,这一段时间定为N个当缓存时间超过N个时的平均码率A公式为:
在一优选的实施例中,如图3所示,在上述图1的实施例的基础上,上述步骤S103包括:
步骤S1031,比较所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt的大小,获取所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt中的较大者;
步骤S1032,当所述较大者的值到达1时,获取所述较大者的值到达1对应的时间值;
步骤S1033,判断所述客户端缓存的新媒体数据的时间是否达到所述时间值,以判断所述客户端缓存的新媒体数据是否达到预设值。
本实施例中,预设一缓存时间x,然后计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt,当当前数据量缓存率Rs及平均码率下缓存时间比率Rt这两个比值中的一个先达到100%时,则认为客户端缓存的新媒体数据达到重新启动播放的条件。
例如,假设是一个音视频混合播放的场景,客户端设定的缓存数据量最大值Ms为2M,缓存时间为x(以客户端清空缓存并向服务器发送获取新媒体数据的请求为缓存时间的起点),当前的码率为1.5M(为计算方便,假设码率没有波动),则码率发生切换后的缓存时间x内当前数据量缓存率Rs及平均码率下缓存时间比率Rt分别为:
Rs=S/Ms=(1.5*x)/2=0.75x;
Rt=S/(A*Mt)=[(1.5*x)/1.5]/2=0.5x;
此时如果当前的码率降为0.2M(假设码率没有波动),此时两者为:
Rs=(0.2*x)/2=0.1x
Rt=[(0.2*x)/0.2]/2=0.5x
以上数据可以看出,码率变化前当前数据量缓存率Rs会率先缓存达到100%,则以当前数据量缓存率Rs达到100%时的时间为客户端缓存的新媒体数据的时间,当达到该时间时,重新启动播放,可以在码率切换后快速启动播放;
码率下降后平均码率下缓存时间比率Rt则首先达到100%,则以平均码率下缓存时间比率Rt达到100%时的时间为客户端缓存的新媒体数据的时间,当达到该时间时,重新启动播放,可以在码率切换后快速启动播放。
在一优选的实施例中,如图4所示,在上述图1的实施例的基础上,在上述步骤S101之前包括:
步骤S100,在所述播放器播放媒体数据的过程中,所述客户端检测带宽是否发生变化或者检测是否接收到所述播放器发送的码率切换指令。
本实施例中,对于终端的播放性能足够,由客户端检测带宽是否发生变化,即带宽由大变小还是由小变大,对于带宽发生变化而进行码率切换的情况,由客户端发起码率切换。在码率切换时,客户端清空缓存并向服务器请求新媒体数据,同时向播放器发送暂停播放指令。
当网络的带宽充足,但是终端的播放性能不足时,例如手机客户端,可能cpu的性能足够但是解码器的性能不足,导致的高码率的视频无法播放时,对于这种情况,由播放器发送码率切换指令,通知客户端播放器的播放性能不足,客户端收到码率切换指令后,判断码率切换是因为码率过高但是终端的播放性能不足而导致播放失败,然后还是由客户端发起整个码率切换。
本实施例中,考虑到发生码率切换的情况较多,终端不可能为每一种情况均定义一种缓存策略,这样将变得复杂。本实施例以当前数据量缓存率Rs及平均码率下缓存时间比率Rt为客户端缓存策略的依据,能够简单并合理地解决该问题。
本发明还提供一种媒体数据播放的终端,如图5所示,在一实施例中,媒体数据播放的终端包括:
清空模块101,用于当终端的客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求;
本实施例中,终端可以是电视、电脑、平板电脑或者手机等等。
本实施例中,终端的客户端从服务器上获取媒体数据并进行缓存,然后将缓存的媒体数据发送给播放器进行播放。
本实施例中,客户端响应用户的操作,创建播放实例并向服务器请求媒体数据,服务器端响应客户端的请求,将媒体数据以基本码流(Elementary Streams,ES)的形式发送给客户端,基本码流可能包含视频、音频、字幕等的其中一个或多个。
本实施例中,当客户端检测到需要进行码率切换时,例如,当前的带宽不足或者终端的播放性能不足时,需要进行码率切换。客户端将自身当前缓存的媒体数据清空,以重新接收服务器发送的媒体数据。
本实施例中,客户端在检测是否需要进行码率切换时,能够检测到是由高码率切换为低码率还是由低码率切换为高码率。然后向服务器发送获取对应的媒体数据的请求。
计算模块102,用于获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt;
本实施例中,当前数据缓存量率Rs是指当前缓存的数据量S和设定的缓存数据量最大值Ms的比值:
RS=S/MS,
如果当前的网速越快,累积的当前缓存的数据量S越大,当前数据缓存量率Rs就越大,而当前缓存的数据量S与当前的码率成正比关系,因此,可以根据当前的码率计算得到当前缓存的数据量S。
本实施例中,平均码率下缓存时间比率Rt是指缓存数据平均码率时间T和设定的缓存最大时间Mt的比值:
Rt=T/Mt,
如果当前的网速越快,累积一定的缓存数据量越快,而缓存数据平均码率时间T与当前的码率成反比关系,即缓存数据平均码率时间T越小,从而平均码率下缓存时间比率Rt越小。
本实施例的缓存策略以当前数据量缓存率Rs及平均码率下缓存时间比率Rt这两个比值为依据。
判断模块103,用于接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值;
本实施例中,客户端接收服务器端的发送的新媒体数据并进行缓存,客户端以特定的样本形式缓存新媒体数据,每个样本都是独立的,包括新媒体数据及新媒体数据的说明如dts、duration等信息。
本实施例中,在当前的码率下,客户端接收服务器发送的新媒体数据,然后根据上述计算得到的当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断客户端缓存的新媒体数据是否达到预设值。
本实施例中,如果当前数据量缓存率Rs达到100%或者平均码率下缓存时间比率Rt达到100%均认为客户端缓存的新媒体数据已经达到预设值,可以重新启动播放。
发送模块104,用于若当前数据量缓存率Rs达到1或者平均码率下缓存时间比率Rt达到1,则将所缓存的新媒体数据发送至所述播放器进行播放。
本实施例中,播放器优选地为gstreamer播放器,gstreamer是一个用于创建流媒体应用程序的多媒体框架库,其可以提供构建各种媒体功能组件的功能,包括简单的音频回放、音频和视频播放、录音、流媒体和音频编辑等,还可以创建诸如视频编辑器、流媒体广播和媒体播放器等等的很多多媒体应用等。
本实施例中,当前数据量缓存率Rs或平均码率下缓存时间比率Rt两者中的一个先达到100%,则客户端缓存完成,客户端发送播放信息给播放器,通知播放器重新启动播放,播放器创建管道并开始启动播放,并从客户端请求新媒体数据。
本实施例中,对不同源的媒体数据进行划分。播放器以特殊的请求格式向客户端请求媒体数据,请求格式说明部分包含需要请求哪一路媒体数据及请求的媒体数据的个数。无论是客户端还是播放器,对不同源的媒体数据都是独立请求和独立保存的,这样就可以做到对不同源的媒体数据有分别的进行处理。播放器端将不同源的媒体数据以特定的格式保存在不同的队列中,按媒体数据请求的先后顺序,从这些数据队列中有序获取媒体数据进行播放,保持数据的同步并且不造成某一路媒体数据的堆积。
在一优选的实施例中,如图6所示,在上述图5的实施例的基础上,所述计算模块102包括:
第一获取单元1021,用于获取当前的码率、设定的缓存数据量最大值Ms及设定的缓存最大时间Mt;
计算单元1022,用于根据所述码率及设定的缓存数据量最大值Ms计算当前数据量缓存率Rs:RS=S/MS,根据所述码率及设定的缓存最大时间Mt计算平均码率下缓存时间比率Rt:Rt=T/Mt。
本实施例中,当前数据缓存量率Rs:RS=S/MS;S为当前缓存的数据量,Ms为设定的缓存数据量最大值,其中,当前缓存的数据量S为当前的码率A与缓存时间x的乘积:S=A*x。
本实施例中,设定的缓存最大时间Mt:Rt=T/Mt;T为缓存数据平均码率时间,Mt为设定的缓存最大时间。
优选地,缓存数据平均码率时间T是当前缓存的数据量S和平均码率A的比值:T=S/A。
其中,平均码率A是单位时间的码率与旧平均码率v的均值,其中单位时间的码率是指设定的单位时间内接收媒体数据与接收时间的比值:
旧平均码率v是指之前的一段时间计算的平均码率值,这一段时间定为N个当缓存时间超过N个时的平均码率A公式为:
在一优选的实施例中,如图7所示,在上述图5的实施例的基础上,所述判断模块103包括:
比较单元1031,用于比较所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt的大小,获取所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt中的较大者;
第二获取单元1032,用于当所述较大者的值到达1时,获取所述较大者的值到达1对应的时间值;
判断单元1033,用于判断所述客户端缓存的新媒体数据的时间是否达到所述时间值,以判断所述客户端缓存的新媒体数据是否达到预设值。
本实施例中,预设一缓存时间x,然后计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt,当当前数据量缓存率Rs及平均码率下缓存时间比率Rt这两个比值中的一个先达到100%时,则认为客户端缓存的新媒体数据达到重新启动播放的条件。
例如,假设是一个音视频混合播放的场景,客户端设定的缓存数据量最大值Ms为2M,缓存时间为x(以客户端清空缓存并向服务器发送获取新媒体数据的请求为缓存时间的起点),当前的码率为1.5M(为计算方便,假设码率没有波动),则码率发生切换后的缓存时间x内当前数据量缓存率Rs及平均码率下缓存时间比率Rt分别为:
Rs=S/Ms=(1.5*x)/2=0.75x;
Rt=S/(A*Mt)=[(1.5*x)/1.5]/2=0.5x;
此时如果当前的码率降为0.2M(假设码率没有波动),此时两者为:
Rs=(0.2*x)/2=0.1x
Rt=[(0.2*x)/0.2]/2=0.5x
以上数据可以看出,码率变化前当前数据量缓存率Rs会率先缓存达到100%,则以当前数据量缓存率Rs达到100%时的时间为客户端缓存的新媒体数据的时间,当达到该时间时,重新启动播放,可以在码率切换后快速启动播放;
码率下降后平均码率下缓存时间比率Rt则首先达到100%,则以平均码率下缓存时间比率Rt达到100%时的时间为客户端缓存的新媒体数据的时间,当达到该时间时,重新启动播放,可以在码率切换后快速启动播放。
在一优选的实施例中,如图8所示,在上述图5的实施例的基础上,所述媒体数据播放的终端还包括:
检测模块100,用于在所述播放器播放媒体数据的过程中,客户端检测带宽是否发生变化或者检测是否接收到所述播放器发送的码率切换指令。
本实施例中,对于终端的播放性能足够,由客户端检测带宽是否发生变化,即带宽由大变小还是由小变大,对于带宽发生变化而进行码率切换的情况,由客户端发起码率切换。在码率切换时,客户端清空缓存并向服务器请求新媒体数据,同时向播放器发送暂停播放指令。
当网络的带宽充足,但是终端的播放性能不足时,例如手机客户端,可能cpu的性能足够但是解码器的性能不足,导致的高码率的视频无法播放时,对于这种情况,由播放器发送码率切换指令,通知客户端播放器的播放性能不足,客户端收到码率切换指令后,判断码率切换是因为码率过高但是终端的播放性能不足而导致播放失败,然后还是由客户端发起整个码率切换。
本实施例中,考虑到发生码率切换的情况较多,终端不可能为每一种情况均定义一种缓存策略,这样将变得复杂。本实施例以当前数据量缓存率Rs及平均码率下缓存时间比率Rt为客户端缓存策略的依据,能够简单并合理地解决该问题。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种媒体数据播放的方法,其特征在于,所述媒体数据播放的方法包括以下步骤:
在客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求;
获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt;
接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值;
若当前数据量缓存率Rs达到1或者平均码率下缓存时间比率Rt达到1,则将所缓存的新媒体数据发送至播放器进行播放。
2.如权利要求1所述的媒体数据播放的方法,其特征在于,所述获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt的步骤包括:
获取当前的码率、设定的缓存数据量最大值Ms及设定的缓存最大时间Mt;
根据所述码率及设定的缓存数据量最大值Ms计算当前数据量缓存率Rs:RS=S/MS,根据所述码率及设定的缓存最大时间Mt计算平均码率下缓存时间比率Rt:Rt=T/Mt,其中,所述S为当前缓存的数据量,Ms为设定的缓存数据量最大值,T为缓存数据平均码率时间,Mt为设定的缓存最大时间。
3.如权利要求1或2所述的媒体数据播放的方法,其特征在于,所述接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值的步骤包括:
比较所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt的大小,获取所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt中的较大者;
当所述较大者的值到达1时,获取所述较大者的值到达1对应的时间值;
判断所述客户端缓存的新媒体数据的时间是否达到所述时间值,以判断所述客户端缓存的新媒体数据是否达到预设值。
4.如权利要求1所述的媒体数据播放的方法,其特征在于,所述在客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求的步骤之前还包括:
在所述播放器播放媒体数据的过程中,所述客户端检测带宽是否发生变化或者检测是否接收到所述播放器发送的码率切换指令。
5.如权利要求1所述的媒体数据播放的方法,其特征在于,所述播放器为gstreamer播放器。
6.一种媒体数据播放的终端,其特征在于,所述媒体数据播放的终端包括:
清空模块,用于在客户端检测到需要进行码率切换时,清空所述客户端缓存的媒体数据并向服务器发送获取新媒体数据的请求;
计算模块,用于获取当前的码率,根据所述码率计算当前数据量缓存率Rs及平均码率下缓存时间比率Rt;
判断模块,用于接收并缓存所述服务器发送的新媒体数据,根据所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt判断所述客户端缓存的新媒体数据是否达到预设值;
发送模块,用于若当前数据量缓存率Rs达到1或者平均码率下缓存时间比率Rt达到1,则将所缓存的新媒体数据发送至播放器进行播放。
7.如权利要求6所述的媒体数据播放的终端,其特征在于,所述计算模块包括:
第一获取单元,用于获取当前的码率、设定的缓存数据量最大值Ms及设定的缓存最大时间Mt;
计算单元,用于根据所述码率及设定的缓存数据量最大值Ms计算当前数据量缓存率Rs:RS=S/MS,根据所述码率及设定的缓存最大时间Mt计算平均码率下缓存时间比率Rt:Rt=T/Mt,其中,所述S为当前缓存的数据量,Ms为设定的缓存数据量最大值,T为缓存数据平均码率时间,Mt为设定的缓存最大时间。
8.如权利要求6或7所述的媒体数据播放的终端,其特征在于,所述判断模块包括:
比较单元,用于比较所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt的大小,获取所述当前数据量缓存率Rs及平均码率下缓存时间比率Rt中的较大者;
第二获取单元,用于当所述较大者的值到达1时,获取所述较大者的值到达1对应的时间值;
判断单元,用于判断所述客户端缓存的新媒体数据的时间是否达到所述时间值,以判断所述客户端缓存的新媒体数据是否达到预设值。
9.如权利要求6所述的媒体数据播放的终端,其特征在于,所述媒体数据播放的终端还包括:检测模块,用于在所述播放器播放媒体数据的过程中,客户端检测带宽是否发生变化或者检测是否接收到所述播放器发送的码率切换指令。
10.如权利要求6所述的媒体数据播放的终端,其特征在于,所述播放器为gstreamer播放器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410812144.7A CN105791987B (zh) | 2014-12-23 | 2014-12-23 | 媒体数据播放的方法及终端 |
PCT/CN2014/095063 WO2016101240A1 (zh) | 2014-12-23 | 2014-12-26 | 媒体数据播放的方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410812144.7A CN105791987B (zh) | 2014-12-23 | 2014-12-23 | 媒体数据播放的方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791987A CN105791987A (zh) | 2016-07-20 |
CN105791987B true CN105791987B (zh) | 2018-11-02 |
Family
ID=56148969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410812144.7A Active CN105791987B (zh) | 2014-12-23 | 2014-12-23 | 媒体数据播放的方法及终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105791987B (zh) |
WO (1) | WO2016101240A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111479171B (zh) * | 2019-01-23 | 2022-05-20 | 上海哔哩哔哩科技有限公司 | Web播放不同视频源间的伪无缝切换方法、装置及介质 |
CN109547846B (zh) * | 2019-01-31 | 2021-08-24 | 海信视像科技股份有限公司 | 一种hls码流切换方法、装置以及设备 |
CN110460875A (zh) * | 2019-08-05 | 2019-11-15 | 北京达佳互联信息技术有限公司 | 一种视频码率的切换方法、装置、电子设备及存储介质 |
CN112702620A (zh) * | 2020-12-29 | 2021-04-23 | 四川长虹电器股份有限公司 | 一种基于gstreamer的播放器实现多屏同步播放的方法 |
CN114640886B (zh) * | 2022-02-28 | 2023-09-15 | 深圳市宏电技术股份有限公司 | 自适应带宽的音视频传输方法、装置、计算机设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110459A (zh) * | 2009-12-24 | 2011-06-29 | Tcl集团股份有限公司 | 一种播放终端及其多媒体文件的播放方法和装置 |
CN103260053A (zh) * | 2013-04-15 | 2013-08-21 | 威盛电子股份有限公司 | 动态调整多媒体数据码率的系统、媒体播放装置及方法 |
US8566879B2 (en) * | 2004-09-28 | 2013-10-22 | Sony Corporation | Method and apparatus for navigating video content |
CN103841456A (zh) * | 2013-12-10 | 2014-06-04 | 珠海全志科技股份有限公司 | 一种网络播放数据缓冲方法 |
CN104038846A (zh) * | 2013-03-05 | 2014-09-10 | 华为技术有限公司 | 缓存状态估计方法及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242359B (zh) * | 2008-02-27 | 2010-08-18 | 华为技术有限公司 | 动态码率分配方法、分组域流媒体服务器 |
WO2011153194A1 (en) * | 2010-06-02 | 2011-12-08 | Onmobile Global Limited | Method and apparatus for adapting media |
CN103442293B (zh) * | 2013-08-30 | 2016-10-05 | 武汉眸博科技有限公司 | 网络多媒体文件快速启动播放方法及系统 |
-
2014
- 2014-12-23 CN CN201410812144.7A patent/CN105791987B/zh active Active
- 2014-12-26 WO PCT/CN2014/095063 patent/WO2016101240A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566879B2 (en) * | 2004-09-28 | 2013-10-22 | Sony Corporation | Method and apparatus for navigating video content |
CN102110459A (zh) * | 2009-12-24 | 2011-06-29 | Tcl集团股份有限公司 | 一种播放终端及其多媒体文件的播放方法和装置 |
CN104038846A (zh) * | 2013-03-05 | 2014-09-10 | 华为技术有限公司 | 缓存状态估计方法及设备 |
CN103260053A (zh) * | 2013-04-15 | 2013-08-21 | 威盛电子股份有限公司 | 动态调整多媒体数据码率的系统、媒体播放装置及方法 |
CN103841456A (zh) * | 2013-12-10 | 2014-06-04 | 珠海全志科技股份有限公司 | 一种网络播放数据缓冲方法 |
Non-Patent Citations (1)
Title |
---|
视频编码中码率控制的算法及实现;李婉怡;《中国优秀硕士学位论文全文数据库 信息科技辑》;20080815;I136-139 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016101240A1 (zh) | 2016-06-30 |
CN105791987A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791987B (zh) | 媒体数据播放的方法及终端 | |
CN109565620B (zh) | 计算设备、用于生成和接收低延迟视频流的方法 | |
CN107566918B (zh) | 一种视频分发场景下的低延时取流秒开方法 | |
CN108174280B (zh) | 一种音视频在线播放方法及系统 | |
EP2974207B1 (en) | Playback stall avoidance in adaptive media streaming | |
WO2013044705A1 (zh) | 一种在线视频播放方法及视频播放服务器 | |
CN110198495B (zh) | 一种视频下载和播放的方法、装置、设备和存储介质 | |
CN109218847B (zh) | 一种下载控制方法、装置以及多媒体终端 | |
CN104202684A (zh) | 一种分段网络视频无缝播放方法和装置 | |
US11863841B2 (en) | Video playing control method and system | |
CN106210929B (zh) | 基于hls客户端的网络流下载终端及优化方法 | |
CN107071549A (zh) | 单解码器下多播放器快速切换方法、装置及存储介质 | |
CN109803169B (zh) | 基于网络带宽实现多路组播的方法及系统 | |
JP5140952B2 (ja) | コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ再生端末、プログラム、コンテンツ配信方法 | |
CN111510755A (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
CN104581340A (zh) | 客户端、流媒体数据接收方法和流媒体数据传输系统 | |
CN107959659B (zh) | 一种流媒体播放控制方法、装置及电子设备 | |
CN111556344A (zh) | 一种视频流的下载方法、装置、设备及系统 | |
CN103607638A (zh) | 网络媒体播放方法、智能显示终端及系统 | |
CN105933797B (zh) | 基于网络协议电视的直播节目启播方法及装置 | |
CN103826158A (zh) | 一种网络直播装置和方法 | |
CN109218809B (zh) | 一种流媒体的播放方法和装置 | |
US11870831B2 (en) | Method and apparatus for playing multimedia streaming data | |
CN110366047A (zh) | 一种视频共享方法和装置及计算机可读存储介质 | |
CN105357568A (zh) | 一种播放源切换的控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |