CN102752665B - 一种流媒体数据获取方法、装置及流媒体播放终端 - Google Patents
一种流媒体数据获取方法、装置及流媒体播放终端 Download PDFInfo
- Publication number
- CN102752665B CN102752665B CN201210217638.1A CN201210217638A CN102752665B CN 102752665 B CN102752665 B CN 102752665B CN 201210217638 A CN201210217638 A CN 201210217638A CN 102752665 B CN102752665 B CN 102752665B
- Authority
- CN
- China
- Prior art keywords
- bit rate
- data
- played
- stream medium
- play
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明适用于流媒体播放技术领域,提供了一种流媒体数据获取方法、装置及流媒体播放终端,所述方法包括:根据一段或连续多段已播放流媒体数据的总大小和获取该一段或连续多段已播放流媒体数据所需总时间,获取下一段待播放流媒体数据的待播放比特率;根据待播放比特率与预设K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与该实际播放比特率对应的数据段大小;获取与该实际播放比特率对应的数据段大小相同的该下一段待播放流媒体数据。通过根据已播放的流媒体数据大小和时间,自适应获取下一段待播放的流媒体数据的播放比特率及数据大小,使得网络带宽被充分利用,流媒体数据获取过程更流畅,节目播放质量提高。
Description
技术领域
本发明属于流媒体播放技术领域,尤其涉及一种流媒体数据获取方法、装置及流媒体播放终端。
背景技术
现有的流媒体播放方法都是以恒定的比特率播放流媒体数据,或者播放的时候需要手动选择标清、高清或者超高清播放模式来改变播放的比特率,从而,由于使用固定比特率播放,而不能够充分利用网络带宽,或者由于需要用户手动选择标清、高清或者超高清模式等播放模式改变播放的比特率,播放过程中会打断播放节奏,也即使得流媒体数据获取过程不够流畅,使用户观看节目的质量降低,用户的视觉体验较差。
发明内容
本发明实施例的目的在于提供一种流媒体数据获取方法、装置及流媒体播放终端,旨在解决利用现有技术获取流媒体数据进行播放时,播放比特率固定,导致网络带宽不被充分利用,流媒体数据获取过程不够流畅,节目播放质量降低的问题。
本发明实施例是这样实现的,一种流媒体数据获取方法,所述方法包括下述步骤:
根据一段或连续多段已播放流媒体数据的总大小和获取所述一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率;
根据所述待播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与所述实际播放比特率对应的数据段大小;
获取与所述实际播放比特率对应的数据段大小相同的所述下一段待播放流媒体数据。
本发明实施例的另一目的在于提供一种流媒体数据获取装置,所述装置包括:
比特率获取单元,用于根据一段或连续多段已播放流媒体数据的总大小和获取所述一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率;
比特率及数据大小获取单元,用于根据所述待播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与所述实际播放比特率对应的数据段大小;以及
流媒体数据单元,用于获取与所述实际播放比特率对应的数据段大小相同的所述下一段待播放流媒体数据。
本发明实施例的另一目的在于提供一种包括上述流媒体数据获取装置的流媒体播放终端。
本发明实施例通过根据一段或连续多段已播放流媒体数据的总大小及总获取时间,获取下一段待播放流媒体数据的待播放比特率,根据所该播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与对应的数据段大小,进而获取与该实际播放比特率对应的数据段大小相同的该下一段待播放流媒体数据,解决了利用现有技术获取流媒体数据进行播放时,播放比特率固定,导致网络带宽不被充分利用,流媒体数据获取过程不够流畅,节目播放质量降低的问题,实现了自适应获取播放比特率及待播放数据的大小,充分利用网络带宽,也提高节目播放质量等目的。
附图说明
图1是本发明第一实施例提供的流媒体数据获取方法的实现流程图;
图2是本发明第二实施例提供的流媒体数据获取方法的实现流程图;
图3是本发明实施例提供的预设初始数据段及n段流媒体数据的示意图;
图4是本发明实施例提供的滑动窗口包含初始数据段的示意图;
图5是本发明实施例提供的滑动窗口进行移动后的示意图;
图6是本发明第三实施例提供的流媒体数据获取方法的实现流程图;
图7是本发明第四实施例提供的流媒体数据获取装置的结构图;
图8是本发明第五实施例提供的流媒体数据获取装置的结构图;
图9是本发明第五实施例提供的比特率及数据大小获取单元的具体结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过根据已播放流媒体数据的总大小及总获取时间,以及根据所该播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与对应的数据段大小,进而获取与该数据段大小相同的该下一段待播放流媒体数据,则在获取流媒体数据进行播放时,能够自适应获取播放比特率及待播放数据的大小等,使得网络带宽被充分利用,流媒体数据获取过程也更加流畅,节目播放质量得到提高。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明第一实施例提供的流媒体数据获取方法的实现流程,详述如下:
在步骤S101中,根据一段或连续多段已播放流媒体数据的总大小和获取该一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率。
在具体实施过程中,用户经常观看点播或者直播的流媒体节目,而对于点播的流媒体节目,由于可以预先获知该点播的节目数据,则可以将该点播节目数据按播放顺序分成n段数据,n为有限的整数值;而对于直播的流媒体节目,则也可以将该直播节目数据按播放顺序分成n段数据,n为正无穷。根据用户所使用网络带宽的稳定性等情况,可以预先设置K种不同的比特率,则对于上述n段数据中的每一段数据都会对应着K种不同的比特率,从而每一段数据都会对应着K种大小,且根据该K种比特率,可以将0到正无穷的数值分成(K+1)种连续且不重叠的比特率区间,且设置每一种区间都对应着一种实际播放比特率及待播放数据段大小。
在步骤S102中,根据该待播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与该实际播放比特率对应的数据段大小。
在步骤S103中,获取与该实际播放比特率对应的数据段大小相同的该下一段待播放流媒体数据。
在具体实施过程中,根据预设的初始数据段大小和获取该初始数据段所用的时间,能够获取该待播放流媒体节目的第一段待播放流媒体数据的待播放比特率。判断该待播放比特率落在(K+1)种比特率区间中的哪一个比特率区间范围内,也即获取该待播放比特率所属的比特率区间,从而能够获取与该待播放比特率所属的比特率区间对应的际播放比特率及与该实际播放比特率对应的待播放流媒体数据大小,则获取与该实际播放比特率对应的待播放流媒体数据大小相同的待播放流媒体数据的第一段数据,并按该实际播放比特率播放第一段流媒体数据。进一步,根据该预设的初始数据段、该第一段流媒体数据段大小,以及获取该预设的初始数据段、该第一段流媒体数据段所用时间,获取第二段待播放流媒体数据的待播放比特率,进而根据步骤S102继续获取该第二段待播放流媒体数据的实际播放比特率以及第二段待播放流媒体数据。进一步,根据该预设的初始数据段大小、该第一段流媒体数据段大小、该第二段流媒体数据段大小,获取该预设的初始数据段、该第一段流媒体数据段及该第二段流媒体数据段用的总时间,获取第三段待播放流媒体数据的待播放比特率,进而根据步骤S102、步骤S103继续获取该第三段待播放流媒体数据的实际播放比特率以及第三段待播放流媒体数据。以此类推,可以依次获取待播放流媒体数据的每一段数据进行播放,另外还可以结合预设的滑动窗口,获取每一段待播放的流媒体数据等,具体见下述实施例二所述,在此不再赘述。
在本发明实施例中,根据一段或连续多段已播放流媒体数据的总大小和获取该一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率,根据该待播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与该实际播放比特率对应的数据段大小,获取并播放具有相同数据段大小的下一段待播放流媒体数据,从而能够自适应获取下次播放的比特率,以及下次播放的流媒体数据大小,使得网络带宽得到充分利用,宽带数据尽可能地接近真实的带宽,且用户在观看节目过程中,不需要手动切换标清、高清或者超高清模式等,尽可能地使用户观看高质量的节目,提高用户视觉体验等。
实施例二:
图2示出了本发明第二实施例提供的流媒体数据获取方法的实现流程,详述如下:
在步骤S201中,预先设置K种不同的比特率,根据该K种不同的比特率,将0到正无穷的数值分成(K+1)种连续且不重叠的比特率区间,且设置与每一种比特率区间对应的实际播放比特率、数据段大小。
具体地,根据当前宽度网络的网速、稳定性等方面,可以设置K种不同的比特率,并根据该K种不同的比特率,将0到正无穷的数值分成(K+1)种连续且不重叠的比特率区间,以及设置与每一种比特率区间对应的实际播放比特率、数据段大小,比如,如下表一但不限于下表一所示使用b1,b2,...,bK来表示该K种不同的比特率,且0<b1<b2<...<bK,与每一比特率区间对应的实际播放比特率、数据段大小等。
表一
比特率区间 | 实际播放比特率 | 数据段大小 |
[0,b1) | b1 | d1 |
[b1,b2) | b1 | d1 |
[b2,b3) | b2 | d2 |
[b3,b4) | b3 | d3 |
...... | ...... | ...... |
[bK,...) | bK | dK |
进一步地,还可以将一段待播放流媒体节目顺序分成n(n>1)段数据,比如,如图3所示为使用F1,F2,F3,...,Fn来表示n段数据,其中p段数据表示在获取第一段数据F1之前,与流媒体服务器进行交互取得的数据,也即根据前期与流媒体服务器的交互设置的一初始比特率t0以及初始数据段大小s0,该s0、t0表示了在播放待播放流媒体节目前,网络带宽的速度等情况,从而根据该初始数据段、初始比特率最大限度地利用网络带宽。另外,由于设置了K种不同的比特率,则该n段数据中的每一段都对应着K种不同大小的数据段,也即由于网络带宽随时可能发生变化,因此在实际获取每一段数据Fi(i=1,2,...,n)时,需要根据网络情况来选择其中某一种速率下相应的第i种大小的数据。
在步骤S202中,预设滑动窗口包含数据的段数为M,且该滑动窗口按照N段数据的滑动区间移动,其中N为不大于M的整数。
其中,滑动窗口的大小M以及滑动间隔N是可调的,然而,M和N的大小并不是越大越好,这个要根据实际的情况而定。M的值越大,计算得到的平均带宽w越平均,但是时长也越长,这样计算得到的平均带宽就不够实时。N的值越大,也就是N越靠近M,这样有很多平均带宽是根据上一次计算所得,不能真实反映当前网络带宽,所以M和N的取值需要在实际项目中不断尝试而定。
在步骤S203中,判断该滑动窗口中的第一段数据是否为预设初始数据段对应的数据,是,则执行步骤S204,否,则直接执行步骤S205。
在步骤S204中根据该滑动窗口内的已播放流媒体数据的总大小及获取该已播放流媒体数据所需要的时间,获取该滑动窗口内的下一段待播放流媒体数据的待播放比特率,并执行步骤S205。
在步骤S205中,判断N是否大于1,是,则执行步骤S206,否,则直接执行步骤S207。在步骤S206中,设置该滑动窗口内倒数(N-1)段待播放流媒体数据的待播放比特率均等于该滑动窗口内倒数第N段已播放流媒体数据的待播放比特率,并执行步骤S207。
在步骤S207中,根据该滑动窗口内的M段数据的总大小及获取该M段数据所需要的时间,获取与该滑动窗口尾部相邻的下一段待播放流媒体数据的待播放比特率。
在步骤S208中,根据该(K+1)种比特率区间,获取该待播放比特率所属的比特率区间。
在步骤S209中,根据该所属的比特率区间,获取与该所属的比特率区间对应的实际播放比特率及数据段大小。
在步骤S210中,将下一段待播放流媒体数据的实际播放比特率及该下一段待播放流媒体数据大小分别设置为与该所属的比特率区间对应的实际播放比特率及该数据段大小。
在步骤S211中,按照N段数据的滑动区间移动所述滑动窗口。
在步骤S212中,根据该实际播放比特率播放该下一段待播放流媒体数据,并判断该下一段待播放流媒体数据是否为最后一段数据,是,则执行步骤S213,结束本次操作,否,则返回步骤S205。
作为本发明一实施例,以K取5,M取4,N取2为例,但不限于该例,则以滑动窗口的思想来获取每一段数据对应的合适的播放比特率,并以此播放比特率来获取每一段数据。
如图4所示,当该滑动窗口放在数据段F的开始部分时,包含有预设初始数据段p、数据段F1、F2及F3四段数据,其中t0,t1,...,t9等分别表示获取p,F1,F2,...,F9时的当前时间,该当前时间容易获取,比如可以根据计时器等方法获取,则按照下述方法分别来获取数据段F1、F2及F3的实际播放比特率r1、r2及r3及对应的数据段大小s1、s2及s3:
(1)获取数据段F1的实际播放比特率r1及对应的数据段大小s1:
根据初始数据段p的大小s0和获取该初始数据段p所用的时间(t1-t0),获取F1的待播放比特率w1或称当前带宽的平均值,w1=s0/(t1-t0),则若根据上述表一获知,该w1落入比特率区间[b1,b2)内,则此时对应的实际播放比特率r1为b1,且对应的数据段大小s1为d1,从而,选取待播放流媒体节目开始的s1大小的数据进行播放。
(2)获取数据段F2的实际播放比特率r2及对应的数据段大小s2:
根据p与F1的数据段总大小(s0+s1)和获取该初始数据段p与F1所用的总时间(t2-t0),获取F2的待播放比特率w2,w2=(s0+s1)/(t2-t0),则若根据上述表一获知,该w2落入比特率区间[b1,b2)内,则此时对应的实际播放比特率r2仍然为b1,且对应的数据段大小s2仍然为d1,从而,选取待播放流媒体节目中从s1结尾处作为开始的s2大小的数据进行播放。此时,由于r1等于r2,可以说明当前网络处于稳定状态。
(3)获取数据段F3的实际播放比特率r3及对应的数据段大小s3:
根据p、F1及F2的数据段总大小(s0+s1+s2)和获取该初始数据段p、F1及F2所用的总时间(t3-t0),获取F3的待播放比特率w3,w3=(s0+s1+s2)/(t3-t0),则若根据上述表一获知,该w3落入比特率区间[b3,b4)内,则此时对应的实际播放比特率r3为b3,且对应的数据段大小s3仍然为d3,从而,选取待播放流媒体节目中从s2结尾处作为开始的s3大小的数据进行播放。此时,由于r3相对于r2变大,可以说明当前网络状态变的较好,具有较高的网络播放速度,而不用用户手动选择高清等播放模式。
(4)获取数据段F4的实际播放比特率r4及对应的数据段大小s4:
根据p、F1、F2及F3的数据段总大小(s0+s1+s2+s3)和获取该初始数据段p、F1、F2及F3所用的总时间(t4-t0),获取F4的待播放比特率w4,w4=(s0+s1+s2+s3)/(t4-t0),则若根据上述表一获知,该w4落入比特率区间[b1,b2)内,则此时对应的实际播放比特率r4为b1,且对应的数据段大小s4仍然为d1,从而,选取待播放流媒体节目中从s3结尾处作为开始的s4大小的数据进行播放。此时,网络播放速度相对于r3减慢。从该步骤过程中可以看出,本发明实施例实现了根据滑动窗口内的4段数据的总大小及获取该4段数据所需要的时间,获取与该滑动窗口尾部相邻的下一段待播放流媒体数据F4的待播放比特率r4,也获取了F4的数据段大小s4的目的。
进一步地,需要对该滑动窗口按照滑动间隔(2段数据大小)进行移动,此时,滑动窗口的位置如图5所示,则滑动窗口中包含F2、F3、F4及F5四段数据,该滑动窗口中不再包含初始数据段p,则可以按照步骤S205中,设置该滑动窗口内的倒数(N-1)段待播放流媒体数据F5的待播放比特率w5均等于该滑动窗口内的第(M-N+1)段已播放流媒体数据F4的待播放比特率w4,从而,F5的实际播放比特率r5也等于r4,F5的数据段大小s5也等于s4。而对于此时该窗口尾部相邻的数据段F6,则可以利用步骤S206,根据滑动窗口内所包含的F2、F3、F4及F5的数据总大小(s2+s3+s3+s4)及获取该s2、s3、s4及s5所用的总时间(t6-t2),计算出待播放比特率w6,w6为(s2+s3+s3+s4)/(t6-t2),进而根据步骤S208、步骤S209、步骤S210获取F6的实际播放比特率r6及数据段大小s6,播放从s5结尾处开始的s6大小的流媒体数据。
进一步地,继续按照滑动间隔N移动该滑动窗口,重复上述步骤,当判断该下一段待播放流媒体数据不是该待播放流媒体节目的最后一段数据时,返回步骤S205,继续下一段流媒体数据的获取,否则退出。而该判断该下一段待播放流媒体数据是否为该待播放流媒体节目的最后一段数据的方法可以为根据是否接收到的结束播放标识来判断,在此不做限定。另外,在取N值为1时,由于每次该滑动窗口只移动一个数据段区间,则移动一次之后,每一次滑动窗口内的数据段大小都可以提前获取,则则可以跳过上述步骤S206,直接执行步骤S207,从而相当于每次取预设固定个数的已播放或者称已获取的数据段,根据该数据段的总大小或者总时间等属性信息来获取下一段待播放流媒体数据的待播放比特流。
在本发明实施例中,该流媒体数据获取方法能够根据上一段或者多段已播放的流媒体数据信息获取下一段待播放流媒体数据的播放大小等,使用滑动窗口来计算流媒体播放终端的平均可用带宽或称播放比特率,使网络带宽数据尽可能地接近真实值,还可以消除网络抖动的影响,另外该滑动窗口所包含的数据段个数可调,滑动间隔也可以调节,自由度大,可以在不同的网络环境中设置不同的值,极大地提高了网络流媒体节目的观看质量等。
实施例三:
图6示出了本发明第三实施例提供的流媒体数据获取方法的实现流程,在基于上述实施例一该步骤S102中获取下一段待播放流媒体数据的实际播放比特率之后,获取与该实际播放比特率对应的数据段大小之前,或者基于上述实施例二该步骤S209中获取与该所属的比特率区间对应的实际播放比特率之后,在获取与该所属的比特率区间对应的数据段大小之前,该流媒体数据获取方法还包括下述步骤,详述如下:
在步骤S601中,判断上一段已播放流媒体数据的实际播放比特率是否大于该下一段待播放流媒体数据的实际播放比特率,是,则执行步骤S602,否,则执行步骤S605。
在步骤S602中,判断预置缓冲池中数据可播放时长是否大于预设时长,是,则执行步骤S603,更新该下一段待播放流媒体数据的实际播放比特率为该上一段已播放流媒体数据的实际播放比特率,否,则执行步骤S604,维持该下一段待播放流媒体数据的实际播放比特率值不变。
在步骤S605中,判断预置缓冲池中数据可播放时长是否小于预设时长,是则,执行步骤S603,则更新该下一段待播放流媒体数据的实际播放比特率为该上一段已播放流媒体数据的实际播放比特率,否,则执行步骤S604,维持该下一段待播放流媒体数据的实际播放比特率值不变。
通过上述实施例二计算当前带宽的平均值w,选取适合的比特率r,能够根据当前网络状况时时的切换比特率,最大化的利用网络带宽,然而这种方式可能会造成如下问题,如果当前网络不稳定,波动很大且很频繁,会导致比特率随之切换也很频繁,影响用户体验,比如w对应的实际播放比特率值在b3周围两边波动,会导致播放比特率按照b2、b3、b2、b3、......进行频繁切换,用户体验会受到影响。
为了避免上述影响,本发明实施例进一步利用流媒体播放器的缓冲池,判断缓冲池中数据是否能够提供预设时长的数据,以延缓速率的切换,使得速率在充分利用网络带宽的条件下尽量保持在一个相对稳定的速率上。具体地,流媒体播放器在播放流媒体数据的时候都有缓冲池机制,当缓冲池数据可播放的时长小于预设时长T时会引起暂停事件,然后继续缓冲,直到缓冲数据可播放时长大于T1(T1>T)时开始播放,这里的T就是一个的数据时长,该T按照经验值设置。本发明实施例选取T1为2T作为预设时长,比如4s为例。
结合实例来说明,比如,此时获取到的下一段待播放流媒体数据F4的待播放比特率w4,该w4落入比特率区间[b1,b2)内,则此时对应的实际播放比特率r4为b1,而上一段已播放流媒体数据F3的实际播放比特率为b3,则由于b3>b2,则可知F4的实际播放比特率较F3的实际播放比特率下降,则继续判断如果缓冲池数据可播放时长大于4s,则更新r4为r3,也即维持播放比特率r3不变;如果判断如果缓冲池数据可播放时长小于或者等于4s,则继续使用播放比特率r4作为下一段待播放流媒体数据F4的实际播放比特率。同样可以判断其他情况,并做相应的处理操作。
本发明实施例实现了当获取即将播放的流媒体数据的播放比特率或者可用带宽改变时,并不是立即改变获取数据的播放比特率,有可能维持上一次的播放比特率不变,使播放比特率切换不过于频繁,提高用户体验。根据比特率变大变小等情况,并且参考缓冲池中的已有的数据可播放时长,确定下次获取的媒体数据的比特率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
实施例四:
图7示出了本发明第四实施例提供的流媒体数据获取装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该流媒体数据获取装置可以用于流媒体播放终端中,可以是运行于这些流媒体播放终端内的软件单元,也可以作为独立的挂件集成到这些流媒体播放终端中或者运行于这些流媒体播放终端的应用系统中,该流媒体数据获取装置包括比特率获取单元71、比特率及数据大小获取单元72及流媒体数据获取单元73,其中:
比特率获取单元71,用于根据一段或连续多段已播放流媒体数据的总大小和获取该一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率。
比特率及数据大小获取单元72,用于根据该待播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与该实际播放比特率对应的数据段大小。
流媒体数据获取单元73,用于获取与该实际播放比特率对应的数据段大小相同的该下一段待播放流媒体数据。
在本发明实施例中,用户经常观看点播或者直播的流媒体节目,而对于点播的流媒体节目,由于可以预先获知该点播的节目数据,则可以将该点播节目数据按播放顺序分成n段数据,n为有限的整数值;而对于直播的流媒体节目,则也可以将该直播节目数据按播放顺序分成n段数据,n为正无穷。根据用户所使用网络带宽的稳定性等情况,可以预先设置K种不同的比特率,则对于上述n段数据中的每一段数据都会对应着K种不同的比特率,从而每一段数据都会对应着K种大小,且根据该K种比特率,可以将0到正无穷的数值分成(K+1)种连续且不重叠的比特率区间,且还可以设置每一种区间都对应着一种实际播放比特率及待播放数据段大小。
利用比特率及数据大小获取单元72根据预设的初始数据段大小和获取该初始数据段所用的时间,能够获取该待播放流媒体节目的第一段待播放流媒体数据的待播放比特率。进一步根据该待播放比特率与预设的K种不同的比特率之间的大小关系,判断该待播放比特率落在(K+1)种比特率区间中的哪一个比特率区间范围内,也即获取该待播放比特率所属的比特率区间,从而能够获取与该待播放比特率所属的比特率区间对应的际播放比特率及与该实际播放比特率对应的待播放流媒体数据大小,则流媒体数据获取单元73能够获取与该实际播放比特率对应的待播放流媒体数据大小相同的待播放流媒体数据的第一段数据,最终可以按该实际播放比特率播放第一段流媒体数据。而获取每一段待播放的流媒体数据对应的具体步骤已在上述实施例一、二中详述,在此不再赘述。
在本发明实施例中,比特率获取单元71根据一段或连续多段已播放流媒体数据的总大小和获取该一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率;比特率及数据大小获取单元72根据该待播放比特率与预设的K种不同的比特率之间的大小关系,能够获取下一段待播放流媒体数据的实际播放比特率及与该实际播放比特率对应的数据段大小;流媒体数据获取单元获取与该实际播放比特率对应的数据段大小相同的该下一段待播放流媒体数据,从而,在获取流媒体数据进行播放时,能够自适应获取播放比特率及待播放数据的大小等,使得网络带宽被充分利用,流媒体数据获取过程也更加流畅,节目播放质量得到提高。
实施例五:
图8示出了本发明第五实施例提供的流媒体数据获取装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该流媒体数据获取装置包括滑动窗口设置单元80、比特率获取单元81、比特率及数据大小获取单元82及流媒体数据获取单元83,而该比特率获取单元81、比特率及数据大小获取单元82及流媒体数据获取单元83分别与上述实施例四中的比特率获取单元71、比特率及数据大小获取单元72及流媒体数据获取单元73一一对应,功能及作用等完全相同,在此不再赘述。
进一步,滑动窗口设置单元80,用于预设滑动窗口包含数据的段数为M,且该滑动窗口按照N段数据的滑动区间移动,其中N为不大于M的整数。
该比特率获取单元81具体包括:
比特率获取第一单元811,用于当该滑动窗口中的第一段数据为预设初始数据段对应的数据时,根据该滑动窗口内的已播放流媒体数据的总大小及获取该已播放流媒体数据所需要的时间,获取该滑动窗口内的下一段待播放流媒体数据的待播放比特率;
判断单元812,用于判断N是否大于1;
比特率获取第二单元813,用于当判断单元812输出结果为是时,设置该滑动窗口内倒数(N-1)段待播放流媒体数据的待播放比特率均等于该滑动窗口内倒数第N段已播放流媒体数据的待播放比特率,并触发比特率获取第三单元814;以及
比特率获取第三单元814,用于当判断单元812输出结果为否时或者在触发比特率获取第二单元813之后,根据该滑动窗口内的M段数据的总大小及获取该M段数据所需要的时间,获取与该滑动窗口尾部相邻的下一段待播放流媒体数据的待播放比特率。
在本发明实施例中,根据当前宽度网络的网速、稳定性等方面,可以设置K种不同的比特率,并根据该K种不同的比特率,将0到正无穷的数值分成(K+1)种连续且不重叠的比特率区间,以及设置与每一种比特率区间对应的实际播放比特率、数据段大小,比如,如上表一所示使用b1,b2,...,bK来表示该K种不同的比特率,且0<b1<b2<...<bK,与每一比特率区间对应的实际播放比特率、数据段大小d等。由于设置了K种不同的比特率,则该n段数据中的每一段都对应着K种不同大小的数据段,也即由于网络带宽随时可能发生变化,因此在实际获取每一段数据Fi(i=1,2,...,n)时,需要根据网络情况来选择其中某一种速率下相应的第i种大小的数据。
其中,该滑动窗口设置单元80中预设滑动窗口的大小M以及滑动间隔N是可调的,然而,M和N的大小并不是越大越好,这个要根据实际的情况而定。M的值越大,计算得到的平均带宽w越平均,但是时长也越长,这样计算得到的平均带宽就不够实时。N的值越大,也就是N越靠近M,这样有很多平均带宽是根据上一次计算所得,不能真实反映当前网络带宽,所以M和N的取值需要在实际项目中不断尝试而定,则以滑动窗口的思想来获取每一段数据对应的合适的播放比特率,并以此播放比特率来获取每一段数据。
在本发明实施例中,当该滑动窗口包含预设初始数据段或者称该滑动窗口中的第一段数据为预设初始数据段对应的数据时,通过比特率获取第一单元811获取该滑动窗口内的下一段待播放流媒体数据的待播放比特率,判断单元812判断N是否大于1,当判断单元812输出结果为是时,由比特率获取第二单元813设置该滑动窗口内倒数(N-1)段待播放流媒体数据的待播放比特率均等于该滑动窗口内倒数第N段已播放流媒体数据的待播放比特率,之后,或者在判断单元812输出结果为否时,通过该比特率获取第三单元814根据该滑动窗口内的M段数据的总大小及获取该M段数据所需要的时间,获取与该滑动窗口尾部相邻的下一段待播放流媒体数据的待播放比特率。从而使用滑动窗口来计算流媒体播放终端的平均可用带宽或称播放比特率,使网络带宽数据尽可能地接近真实值,还可以消除网络抖动的影响,另外该滑动窗口所包含的数据段个数可调,滑动间隔也可以调节,自由度大,可以在不同的网络环境中设置不同的值,极大地提高了网络流媒体节目的观看质量等。
如图9所示,在比特率及数据大小获取单元82中该获取下一段待播放流媒体数据的实际播放比特率之后,获取与该实际播放比特率对应的数据段大小之前,该比特率及数据大小获取单元82还包括:
判断单元91,用于判断上一段已播放流媒体数据的实际播放比特率是否大于该下一段待播放流媒体数据的实际播放比特率;
比特率第一处理单元92,用于当该判断单元输出结果为是时,若预置缓冲池中数据可播放时长大于预设时长,则更新该下一段待播放流媒体数据的实际播放比特率为该上一段已播放流媒体数据的实际播放比特率,否则,维持该下一段已播放流媒体数据的实际播放比特率值不变;以及
比特率第二处理单元93,用于当该判断单元输出结果为否时,则更新该下一段已播放流媒体数据的实际播放比特率为该上一段已播放流媒体数据的实际播放比特率,否则,维持该下一段已播放流媒体数据的实际播放比特率值不变。
在本发明实施例中,进一步利用流媒体播放器的缓冲池,判断缓冲池中数据是否能够提供预设时长的数据,以延缓速率的切换,使得速率在充分利用网络带宽的条件下尽量保持在一个相对稳定的速率上。具体地,流媒体播放器在播放流媒体数据的时候都有缓冲池机制,当缓冲池数据可播放的时长小于预设时长T时会引起暂停事件,然后继续缓冲,直到缓冲数据可播放时长大于T1(T1>T)时开始播放,这里的T就是一个的数据时长,该T按照经验值设置。本发明实施例选取T1为2T作为预设时长,比如5s为例。
结合实例来说明,比如,此时获取到的下一段待播放流媒体数据F4的待播放比特率w4,该w4落入比特率区间[b1,b2)内,则此时对应的实际播放比特率r4为b1,而上一段已播放流媒体数据F3的实际播放比特率为b3,则由于根据判断单元91获知b3>b2,则可知F4的实际播放比特率较F3的实际播放比特率下降,则比特率第一处理单元92继续判断如果缓冲池数据可播放时长大于4s,则更新r4为r3,也即维持播放比特率r3不变;如果判断如果缓冲池数据可播放时长小于或者等于4s,则继续使用播放比特率r4作为下一段待播放流媒体数据F4的实际播放比特率。同样可以由比特率第二处理单元93判断其他情况,并做相应的处理操作。
本发明实施例实现了当获取即将播放的流媒体数据的播放比特率或者可用带宽改变时,并不是立即改变获取数据的播放比特率,有可能维持上一次的播放比特率不变,使播放比特率切换不过于频繁,提高用户体验。根据比特率变大变小等情况,并且参考缓冲池中的已有的数据可播放时长,确定下次获取的媒体数据的比特率。
本发明实施例提供了一种流媒体数据获取方法,通过根据一段或连续多段已播放流媒体数据的总大小和获取该一段或连续多段已播放流媒体数据所需总时间,获取下一段待播放流媒体数据的待播放比特率,根据待播放比特率与预设K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与该实际播放比特率对应的数据段大小,获取与该实际播放比特率对应的数据段大小相同的该下一段待播放流媒体数据。通过根据已播放的流媒体数据大小和时间等,自适应获取下一段待播放的流媒体数据的播放比特率及数据大小,使得网络带宽被充分利用,流媒体数据获取过程更流畅,节目播放质量提高。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种流媒体数据获取方法,其特征在于,所述方法包括下述步骤:
根据一段或连续多段已播放流媒体数据的总大小和获取所述一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率;
根据所述待播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与所述实际播放比特率对应的数据段大小;
获取与所述实际播放比特率对应的数据段大小相同的所述下一段待播放流媒体数据;
其中,在所述获取下一段待播放流媒体数据的待播放比特率的步骤之前,所述方法还包括:
预设滑动窗口包含数据的段数为M,且所述滑动窗口按照N段数据的滑动区间移动,其中N为不大于M的整数;
所述当所述滑动窗口中的第一段数据为预设初始数据段对应的数据时,所述根据一段或连续多段已播放流媒体数据的总大小和获取所述一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率的步骤具体为:
根据所述滑动窗口内的已播放流媒体数据的总大小及获取所述已播放流媒体数据所需要的时间,获取所述滑动窗口内的下一段待播放流媒体数据的待播放比特率。
2.如权利要求1所述的方法,其特征在于,当所述N等于1时,在所述获取所述滑动窗口内的下一段待播放流媒体数据的待播放比特率步骤之后,所述方法还包括:
根据所述滑动窗口内的M段数据的总大小及获取所述M段数据所需要的总时间,获取与所述滑动窗口尾部相邻的下一段待播放流媒体数据的待播放比特率;
在所述获取与所述实际播放比特率对应的数据段大小相同的所述下一段待播放流媒体数据步骤之后,所述方法还包括:
按照N段数据的滑动区间移动所述滑动窗口。
3.如权利要求2所述的方法,其特征在于,当所述N大于1时,在所述按照N段数据的滑动区间移动所述滑动窗口步骤之后,所述方法还包括:
设置所述滑动窗口内的倒数(N-1)段待播放流媒体数据的待播放比特率均等于所述滑动窗口内的倒数第N段待播放流媒体数据的待播放比特率。
4.如权利要求1所述的方法,其特征在于,在所述获取下一段待播放流媒体数据的实际播放比特率之后,获取与所述实际播放比特率对应的数据段大小之前,所述方法还包括:
判断上一段已播放流媒体数据的实际播放比特率是否大于所述下一段待播放流媒体数据的实际播放比特率;
当判断结果为是时,若预置缓冲池中数据可播放时长大于预设时长,则更新所述下一段待播放流媒体数据的实际播放比特率为所述上一段已播放流媒体数据的实际播放比特率,否则,维持所述下一段待播放流媒体数据的实际播放比特率值不变;
当判断结果为否时,若预置缓冲池中数据可播放时长小于预设时长,则更新所述下一段待播放流媒体数据的实际播放比特率为所述上一段已播放流媒体数据的实际播放比特率,否则,维持所述下一段待播放流媒体数据的实际播放比特率值不变。
5.一种流媒体数据获取装置,其特征在于,所述装置包括:
比特率获取单元,用于根据一段或连续多段已播放流媒体数据的总大小和获取所述一段或连续多段已播放流媒体数据所需要的总时间,获取下一段待播放流媒体数据的待播放比特率;
比特率及数据大小获取单元,用于根据所述待播放比特率与预设的K种不同的比特率之间的大小关系,获取下一段待播放流媒体数据的实际播放比特率及与所述实际播放比特率对应的数据段大小;以及
流媒体数据获取单元,用于获取与所述实际播放比特率对应的数据段大小相同的所述下一段待播放流媒体数据;
其中,所述装置还包括:
滑动窗口设置单元,用于预设滑动窗口包含数据的段数为M,且所述滑动窗口按照N段数据的滑动区间移动,其中N为不大于M的整数;
所述比特率获取单元具体用于:根据所述滑动窗口内的已播放流媒体数据的总大小及获取所述已播放流媒体数据所需要的时间,获取所述滑动窗口内的下一段待播放流媒体数据的待播放比特率。
6.如权利要求5所述的装置,其特征在于,所述比特率及数据大小获取单元还包括:
判断单元,用于判断上一段已播放流媒体数据的实际播放比特率是否大于所述下一段待播放流媒体数据的实际播放比特率;
比特率第一处理单元,用于当所述判断单元输出结果为是时,若预置缓冲池中数据可播放时长大于预设时长,则更新所述下一段待播放流媒体数据的实际播放比特率为所述上一段已播放流媒体数据的实际播放比特率,否则,维持所述下一段待播放流媒体数据的实际播放比特率值不变;以及
比特率第二处理单元,用于当所述判断单元输出结果为否时,则更新所述下一段待播放流媒体数据的实际播放比特率为所述上一段已播放流媒体数据的实际播放比特率,否则,维持所述下一段待播放流媒体数据的实际播放比特率值不变。
7.一种流媒体播放终端,其特征在于,所述系统包括权利要求5或6所述的流媒体数据获取装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210217638.1A CN102752665B (zh) | 2012-06-28 | 2012-06-28 | 一种流媒体数据获取方法、装置及流媒体播放终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210217638.1A CN102752665B (zh) | 2012-06-28 | 2012-06-28 | 一种流媒体数据获取方法、装置及流媒体播放终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102752665A CN102752665A (zh) | 2012-10-24 |
CN102752665B true CN102752665B (zh) | 2014-12-17 |
Family
ID=47032526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210217638.1A Expired - Fee Related CN102752665B (zh) | 2012-06-28 | 2012-06-28 | 一种流媒体数据获取方法、装置及流媒体播放终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102752665B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938908A (zh) * | 2012-10-30 | 2013-02-20 | 深圳市路友网络科技有限公司 | 一种移动设备网络流量优化方法、装置及设备 |
CN104125482B (zh) * | 2013-04-23 | 2018-01-30 | 深圳中兴网信科技有限公司 | 一种流媒体播放方法及装置 |
CN103440138B (zh) * | 2013-09-06 | 2018-05-22 | 杭州网易云音乐科技有限公司 | 一种行为引导方法及装置 |
CN103745737B (zh) * | 2013-12-23 | 2017-12-08 | 乐视致新电子科技(天津)有限公司 | 一种获取媒体文件总时长的方法和设备 |
CN104066000A (zh) * | 2014-06-10 | 2014-09-24 | 百度在线网络技术(北京)有限公司 | 流媒体文件播放质量的监测方法及装置 |
CN106658133B (zh) * | 2016-10-26 | 2020-04-14 | 广州市百果园网络科技有限公司 | 一种音视频同步播放的方法及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583025A (zh) * | 2009-06-11 | 2009-11-18 | 中兴通讯股份有限公司 | 一种流媒体播放方法及装置 |
CN101841691A (zh) * | 2010-03-04 | 2010-09-22 | 中国科学院计算技术研究所 | 一种流媒体数据交换方法与装置 |
CN102111422A (zh) * | 2009-12-25 | 2011-06-29 | 中兴通讯股份有限公司 | 下载时间的估计方法及设备端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100641159B1 (ko) * | 2004-07-23 | 2006-11-02 | 엘지전자 주식회사 | Rtcp패킷 기반의 적응적 멀티미디어 데이터 전송률추정방법 |
-
2012
- 2012-06-28 CN CN201210217638.1A patent/CN102752665B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583025A (zh) * | 2009-06-11 | 2009-11-18 | 中兴通讯股份有限公司 | 一种流媒体播放方法及装置 |
CN102111422A (zh) * | 2009-12-25 | 2011-06-29 | 中兴通讯股份有限公司 | 下载时间的估计方法及设备端 |
CN101841691A (zh) * | 2010-03-04 | 2010-09-22 | 中国科学院计算技术研究所 | 一种流媒体数据交换方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102752665A (zh) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102752665B (zh) | 一种流媒体数据获取方法、装置及流媒体播放终端 | |
CN102664032B (zh) | 一种直播时移的播放进度调节条及其控制方法 | |
CN102035827B (zh) | 信息处理装置及信息处理方法 | |
CN1791939A (zh) | 记录和重放的方法以及视频记录和重放系统 | |
CN103024561A (zh) | 一种拖拽进度条的显示方法及装置 | |
CN103024603B (zh) | 一种用于解决播放网络视频时短时停顿的装置及方法 | |
JP2003114845A (ja) | メディア変換方法およびメディア変換装置 | |
US8340509B2 (en) | Method and device for controlling playing speed of a compressed digital video sequence (trickmode) | |
CN104853239B (zh) | 音视频同步播放控制方法和系统 | |
CN110999294B (zh) | 交错式关键帧视频编码 | |
WO2006006685A1 (ja) | コンテンツ配信システム、クライアント、サーバ、コンテンツ配信方法およびコンテンツ再生方法 | |
CN104918101B (zh) | 一种自动录制节目的方法、播放终端及系统 | |
CN106791994A (zh) | 一种低延时快速开播方法及装置 | |
CN110198494A (zh) | 一种视频播放方法、装置、设备和存储介质 | |
CN100339906C (zh) | 控制音频流缓冲的方法和装置 | |
CN106470350B (zh) | 基于动态比特率的码率自适应方法及装置 | |
CN1902935B (zh) | 用于搜索视频剪辑的设备和方法 | |
CN105185399A (zh) | 一种播放列表展示方法及终端 | |
CN102811380A (zh) | 多媒体文件中音视频数据的解复用方法及装置 | |
US20090307185A1 (en) | Method for seamless playback of multiple multimedia files | |
CN103165157A (zh) | 定位无索引avi 文件播放位置的方法、装置及播放器 | |
CN102647622A (zh) | 流媒体剪辑播放进度管理方法及系统 | |
CN105323653B (zh) | 一种播放片段视频的方法及设备 | |
JP6626696B2 (ja) | 受信装置、マニフェスト更新方法、及びプログラム | |
CN102447868A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141217 Termination date: 20190628 |