CN111083094B - 一种流媒体的码流切换方法及装置、计算机存储介质 - Google Patents
一种流媒体的码流切换方法及装置、计算机存储介质 Download PDFInfo
- Publication number
- CN111083094B CN111083094B CN201811232566.1A CN201811232566A CN111083094B CN 111083094 B CN111083094 B CN 111083094B CN 201811232566 A CN201811232566 A CN 201811232566A CN 111083094 B CN111083094 B CN 111083094B
- Authority
- CN
- China
- Prior art keywords
- code stream
- data
- stream
- data buffer
- transmission bandwidth
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流媒体的码流切换方法,该方法包括:检测数据缓冲区中数据的变化状态;若所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流;其中,所述第一码流的码率低于所述当前码流的码率;若所述数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流;其中,所述第二码流的码率高于所述当前码流的码率。本发明的实施例同时公开了一种流媒体的码流切换装置和计算机存储介质。
Description
技术领域
本发明涉及流媒体数据处理技术领域,尤其涉及一种流媒体的码流切换方法及装置、计算机存储介质。
背景技术
随着互联网网络基础设施的逐渐完善与智能终端的快速普及,流媒体直播技术在移动端的应用也更加广泛。为了能够针对网络环境的变化为用户提供流畅的流媒体播放体验,同时在当前网络带宽条件下最大化流媒体的播放质量,需要流媒体服务器能够在流媒体数据传输过程中动态切换码流的码率,完成码流的自适应调整。
现有技术中,可以根据检测到的可用的网络带宽来对码流的码率进行切换,但是带宽测量的精确性很难保证,尤其是在网络环境变化较大的情况下容易造成过多不必要的码流切换,导致网络资源的浪费和网络堵塞等问题;另外,现有技术中还提供了根据客户端的缓冲区大小变化对码流进行切换的方法,该方法严重依赖于阈值的设置和码流切换层级的划分,灵活性较差;同时该方法在缓冲区数据处于稳定不变的情况下,无法探测出此时网络带宽的进一步改善,也就无法在能够切换到更高码率码流的情况下做出响应。
发明内容
有鉴于此,本发明实施例提供一种流媒体的码流切换方法及装置、计算机存储介质,解决了现有技术中码流切换不灵活,并且容易造成网络资源浪费和网络拥塞的问题。
本发明的技术方案是这样实现的:
第一方面,提供一种流媒体的码流切换方法,所述方法包括:
检测数据缓冲区中数据的变化状态;
若所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流;其中,所述第一码流的码率低于所述当前码流的码率;
若所述数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流;其中,所述第二码流的码率高于所述当前码流的码率。
第二方面,提供一种流媒体的码流切换装置,所述装置包括:
通信接口,用于检测数据缓冲区中数据的变化状态;
处理器,用于判断所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流;其中,所述第一码流的码率低于所述当前码流的码率;判断所述数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流;其中,所述第二码流的码率高于所述当前码流的码率。
第三方面,提供一种流媒体的码流切换装置,所述装置包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行第一方面所述方法的步骤。
第四方面,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面所述的流媒体的码流切换方法的步骤。
本发明的实施例所提供的流媒体的码流切换方法及装置、计算机存储介质,首先,检测数据缓冲区中数据的变化状态,当数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为码率较低的第一码流;当数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为码率较高的第二码流;这样,在数据缓冲区中数据的大小出现震荡时,根据缓冲区数据大小的变化决策是否需要切换到更低码率的码流;当缓冲区大小相对稳定时,通过检测当前可用带宽判断是否能够切换到更高码率的码流。如此,能够灵活对码流进行切换,同时仅在缓冲区数据大小稳定时,检测带宽,能够降低带宽检测的次数,减少因为带宽检测而造成的资源消耗或不必要的网络拥塞。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例提供的一种流媒体的码流切换方法的流程示意图;
图2为本发明实施例提供的另一种流媒体的码流切换方法的流程示意图;
图3(a)为本发明实施例提供的一种数据缓冲区结构示意图;
图3(b)为本发明实施例提供的另一种数据缓冲区结构示意图;
图4为本发明实施例提供的一种应用场景的系统架构示意图;
图5为本发明实施例提供的再一种流媒体的码流切换方法的流程示意图;
图6为本发明实施例提供的一种检测传输带宽方法的流程示意图;
图7为本发明实施例提供的一种码流切换示意图;
图8为本发明实施例提供的流媒体的码流切换装置的结构组成示意图;
图9为本发明实施例提供的流媒体的码流切换置的硬件结构组成示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
在实际应用中,为了决策何时对流媒体进行码流切换,最常采用的方法是客户端定时检测其与流媒体服务器之间的传输带宽,进而判断该可用传输带宽是否与当前所请求码流的码率相匹配。当客户端认为传输带宽不足以支持当前码流的稳定传输时,则向流媒体服务器请求切换到较低码率的码流;反之,当客户端认为传输带宽足够好,能够支持更高码率的码流时,则向流媒体服务器请求切换到更高码率的码流。然而,该方法中带宽测量的精确性很难保证,尤其是在网络环境变化较大的情况下容易造成过多不必要的码流切换。
另一种流媒体的码流切换方法是客户端通过设置缓冲区大小的上阈值和下阈值,在缓冲区大小低于下阈值时切换到低码率的码流,在缓冲区大小高于上阈值时切换到高码率的码流。或客户端将缓冲区划分为不同的层级,并映射到不同码率的码流。当缓冲区的大小发生变化时,客户端通过映射关系匹配缓冲区大小所对应的码流,并判断当前码流是否需要进行切换。基于缓冲区大小的码流自适应切换算法虽然简单,但是依赖于阈值的设置与层级的划分,灵活性较差;上阈值过高则易于错失切换到更好码流的机会,下阈值过低则容易出现缓冲区枯竭造成播放卡顿。
为解决上述问题,本发明实施例提供一种流媒体的码流切换方法,参照图1所示,该方法包括以下步骤:
步骤101、检测数据缓冲区中数据的变化状态。
其中,步骤101检测数据缓冲区中数据的变化状态可以由电子设备来实现;在实际应用中,上述电子设备可以是任意类型的能够播放流媒体数据的设备;例如,该电子设备可以包括智能手机、平板电脑、笔记本电脑、掌上电脑、可穿戴设备等。所述流媒体是指采用流式传输方式在网络中播放的媒体格式,可以理解为,流媒体是边传输边播放的媒体。在本实施例中,上述电子设备中可以安装用于流媒体播放的客户端,例如,所述客户端可以为视频或音频直播程序等;需要说明的是,流媒体数据在上述客户端中进行播放。
一般情况下,客户端可以通过在数据缓冲区中缓存一定时长的流媒体数据以弥补传输带宽变化、网络抖动等因素的影响。当流媒体服务器的数据因上述因素无法及时传输到电子设备时,客户端能够继续播放数据缓冲区中缓存的数据,同时等待流媒体数据的到达,使得用户在变化的网络中依然能够体验流畅的直播。在实际应用中,在可用传输带宽下降时,客户端的数据缓冲区单位时间内接收到的数据逐渐减少,导致缓冲区中数据大小也相应下降;或者当电子设备的解码能力不足或者CPU占用率过高时,即使有充足的传输带宽能够以正常的速率接收服务器传输的流媒体数据,但是因为无法以正常的速率进行解码播放,所以播放的速率会低于接收数据的速率,造成数据缓冲区中数据大小持续上涨。从以上描述中可以看出,数据缓冲区数据大小变化能够客观反映出当前传输带宽的变化、电子设备的解码能力以及CPU当前负载情况。基于此,电子设备可以根据数据缓冲区中数据的变化状态,来决策是否对当前的码流进行切换。
步骤102、若数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流。
其中,所述第一码流的码率低于所述当前码流的码率。
在本发明的其他实施例中,步骤102若数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流可以由电子设备来实现。这里,所述震荡状态可以指数据缓冲区中的数据处于不断变化之中。在本实施例中,可以为数据缓冲区设置预设阈值范围,当在第一预设时间内,数据缓冲区中的数据的大小并不维持在预设阈值范围内时,可以认为当前数据缓冲区中的数据处于震荡状态。其中,预设阈值范围可以根据电子设备当前的状态进行动态调整,例如,电子设备的CPU负载较低,可以设置较高的预设阈值范围,若电子设备CPU的负载较高,则可以设置较低的预设阈值范围。
在本发明的其他实施例中,当数据缓冲区中的数据处于震荡状态时,可以认为当前流媒体数据在网络中的传输是不稳定的。此时,电子设备可以在第一预设时间内,当检测到所述数据缓冲区中数据的大小不维持在预设阈值范围内时,将当前的码流切换为第一码流。
具体地,若当前码流的码率高于可用带宽,客户端解码播放的速率大于接收数据的速率,缓冲区数据在一段时间内持续下降,最终可能会造成数据缓冲区中的数据枯竭。一般情况下,当预测会出现数据枯竭现象时,客户端需要停止播放流媒体数据,以缓冲新的数据,用户的播放体验会因为出现中断而严重下降。在本实施例中,当检测出数据缓冲区可能出现数据枯竭现象时,客户端将当前的码流切换至低码率的第一码流;这样,可以防止缓冲区大小进一步降低,尽量保持播放过程的流畅性。
另外,若检测到数据缓冲区中数据的大小持续上升,或缓冲区数据输出的速率持续低于正常速率,则可以判断电子设备此时的解码速率低于数据的接收速率;造成上述现象的原因可能是因为电子设备的解码能力不足,或是CPU负载过高等导致无法及时对数据缓冲区的数据进行解码播放。在本实施例中,当检测到数据缓冲区中数据持续上升的现象时,客户端将当前的码流切换到更低码率的第一码流以匹配用户的解码能力。
步骤103、若数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流。
其中,所述第二码流的码率高于所述当前码流的码率。
在本发明的其他实施例中,步骤103若数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流可以由电子设备来实现。这里,所述稳定状态可以是指数据缓冲区中的数据大小维持在一个固定的范围内。在本实施例中,在第一预设时间内,所述数据缓冲区中数据的大小维持在预设阈值范围内时,可以认为数据缓冲区中数据的变化状态为稳定状态。
在本发明的其他实施例中,在数据缓冲区中数据稳定的状态下,可以认为传输带宽能够满足当前码流的稳定传输,并且电子设备解码播放速率与接收流媒体数据的速率匹配。此时即使网络环境进一步改善,但数据缓冲区中的数据大小仍然保持相对稳定,因此,无法通过监测缓冲区中数据的变化来感知可用带宽的提升。
在本实施例中,为了能够在上述情况下检测到传输带宽的进一步提升从而切换到高码率的码流,客户端需要在缓冲区数据稳定的情况下触发带宽检测事件,通过传输带宽的检测结果进行码流的自适应决策。因为带宽检测是在数据稳定传输的稳定状态下触发的,所以能够降低网络波动造成的测量不精确产生的影响。进一步,电子设备可以根据带宽检测结果,确定是否将当前的码流切换为码率更高的码流,来提高流媒体播放的质量。
在本发明的其他实施例中,所述基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流,包括:
当所述传输带宽的检测结果满足预设条件时,将当前的码流切换为第二码流。
这里,所述预设条件为所述传输带宽支持的码流的码率高于当前码流的码率。
具体地,当数据缓冲区处于稳定状态时,电子设备可以按照一定的时间间隔对传输带宽进行检测,当检测到可用的传输带宽后,电子设备可以判断该传输带宽是否能够支持更高码率的码流,若支持,则电子设备将当前码流切换为更高码率的第二码流。
本发明的实施例所提供的流媒体的码流切换方法,首先,检测数据缓冲区中数据的变化状态,当数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为码率较低的第一码流;当数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为码率较高的第二码流;这样,在数据缓冲区中数据的大小出现震荡时,根据缓冲区数据大小的变化决策是否需要切换到更低码率的码流;当缓冲区大小相对稳定时,通过检测当前可用带宽判断是否能够切换到更高码率的码流。如此,能够灵活对码流进行切换,同时仅在缓冲区数据大小稳定时,检测带宽,能够降低带宽检测的次数,减少因为带宽检测而造成的资源消耗或不必要的网络拥塞。
基于前述实施例,本发明实施例还提供了一种流媒体的码流切换方法,参照图2所示,该方法包括以下步骤:
步骤201、电子设备检测数据缓冲区中数据的变化状态。
具体地,电子设备可以通过一定的时间间隔检测数据缓冲区中数据的变化状态。这里的时间间隔可以根据数据缓冲区的状态进行动态调整,例如,当数据缓冲区中数据变化较大,可以将时间间隔调整为较短的时间间隔,当数据缓冲区中数据变化比较小,或者趋于稳定,可以适当加大检测的时间间隔。
在本实施例中,数据缓冲区大小的变化能够作为判断当前数据传输与解码稳定性的依据;因此,可以通过监测缓冲区大小的变化判断当前网络传输是否稳定以及码流是否与电子设备的解码能力相适应。
在实际应用中,流媒体服务器能够提供多路不同码率的码流,并生成码流索引文件对码流进行描述;对应的,客户端可以通过该描述文件获取当前流媒体服务器所含码流的详细信息。假设流媒体服务器获取流媒体数据后通过转码生成了n路不同码率的码流,n路码流共同组成了集合L,其中,L={l1,l2,…ln-1,ln}。这样,在电子设备的客户端启动时可以从流媒体服务器获取索引文件并进行解析,从中获取n路可用码流的集合L,其之后请求的码流只能从L中进行选择。
进一步,客户端在启动后从流媒体服务器下载并解析上述码流索引文件可以得到流媒体数据块的时间长度seg_dur以及流媒体服务器当前可提供码流的集合L。如图3(a)所示,电子设备可以将数据缓冲区的预设阈值范围使用Ll~Lt表示,其中,预设阈值范围的上阈值为Lt,下阈值为Ll。将当前数据缓冲区大小用Lc表示。在实际应用中,若检测到数据缓冲区中的数据时发现Lc<Ll,则向下切换到最低码率的码流。为了保障流畅的播放体验,客户端的数据缓冲区控制模块尽可能将缓冲区大小维持在Lt。因为要达到Lt可能需要客户端缓冲多个数据块,如果用户等待数据缓冲区中数据大小达到Lt再进行解码播放,则会增加不必要的启动延时,延长用户等待的时间。因此,为了降低启动延时,客户端在启动后,缓冲第一个数据块之后立刻进行解码播放,并开始请求下一个数据块,以贪婪的方式填充数据缓冲区至Lt。在客户端缓冲区达到Lt之后,则不再采用贪婪的方式请求流媒体数据,而是通过一定的调度策略,使得客户端获取流媒体数据的速率与消耗流媒体数据的速率相适应,保持数据缓冲区大小相对稳定在Lt水平。
在本发明的其他实施例中,在第一预设时间内,所述数据缓冲区中数据的大小维持在预设阈值范围内,即数据缓冲区中数据的大小维持在Ll~Lt时,确定所述数据缓冲区中的数据的变化状态为稳定状态。当检测到数据缓冲区中数据的变化状态为稳定状态时,执行步骤202。
另外,在第一预设时间内,若检测到所述数据缓冲区中数据的大小不维持在预设阈值范围内,即数据缓冲区中数据的大小的变化在超出了Ll~Lt的范围时,确定所述数据缓冲区中的数据的变化状态为震荡状态。当检测到数据缓冲区中数据的变化状态为震荡状态时,执行步骤203。
步骤202、若数据缓冲区中数据的变化状态为震荡状态时,电子设备确定是否将当前码流切换为第一码流。
其中,所述第一码流的码率低于所述当前码流的码率。
在本发明的其他实施例中,若在第一预设时间内检测到流媒体数据插入数据缓冲区的速率大于或小于流出数据缓冲区的速率时,确定将当前的码流切换为第二第一码流。
具体地,如图3(b)所示,客户端从流媒体服务器接收码流并存入数据缓冲区中,当前数据缓存区中共有n个数据块,包括数据块1,数据块2,…,数据块n;同时,电子设备对缓冲区中的数据进行解码播放;其中,Rin表示流媒体数据存储进入数据缓冲区的速率,Rout表示流媒体数据流出缓冲区数据进行解码播放的速率。
正常流媒体播放时,Rin=Rout。当Rin<Rout,则认为数据缓冲区中数据大小持续下降,当前网络带宽不足以支持当前码流的稳定传输,用户需要切换到较低码率的第一码流以避免缓冲区枯竭。
当Rin>Rout,则认为数据缓冲区大小持续上升,或者客户端通过调度策略维持缓冲区在Lt,但是检测出Rin>Rout,此时可以确定电子设备当前解码能力不足或负载过高,无法以正常速率进行解码播放,因此,客户端需要切换到较低码率的第一码流,保证流媒体播放的流畅性,同时降低码率减轻CPU的负载。
步骤203、若所述数据缓冲区中数据的变化状态为稳定状态时,当所述传输带宽的检测结果满足预设条件时,将当前的码流切换为第二码流。
其中,所述预设条件为所述传输带宽支持的码流的码率高于当前码流的码率,所述第二码流的码率高于所述当前码流的码率。
在本发明的其他实施例中,在数据缓冲区中数据的变化状态为稳定状态时,需要检测当前的可用传输带宽,并根据传输带宽的检测结果进行码流切换的决策。
具体地,电子设备可以按照第一时间间隔检测当前可用的传输带宽,得到所述传输带宽的检测结果,并基于传输带宽的检测结果,判断其是否满足预设条件。若满足预设条件,则将当前的码流切换为第二码流。这里,客户端可以将检测到的传输带宽的结果与码流集合L进行比较,判断当前的传输带宽是否能够支持切换到更高码率的码流。若能切换到更高的码率,则将当前的码流切换为第二码流。
当所述传输带宽的检测结果不满足预设条件时,按照第二时间间隔检测当前可用的传输带宽;其中,所述第二时间间隔大于所述第一时间间隔且小于等于最大时间间隔。这里,当所述传输带宽的检测结果不满足预设条件时,可以认为是当前的码流不能够切换为码率更高的码流;这时,流媒体继续以当前的码流进行传输,同时,电子设备仍然对传输带宽进行检测,但是在这种数据缓冲区稳定的情况下,可以延长带宽测量的时间间隔,以第二时间间隔进行检测。
在本发明的其他实施例中,可以设置第一时间间隔为ts。当数据缓冲区中数据进入稳定状态之后,电子设备可以每隔ts进行一次传输带宽的检测。若传输带宽的检测结果满足预设条件,也就是说电子设备够切换到更高码率的码流,则客户端发起码流切换请求进行码流切换,同时重置带宽检测时间间隔为第一时间间隔ts;若是传输带宽的检测结果不满足预设条件,即带宽检测之后无法向更高码率的码流切换,考虑到稳定状态下网络环境较少出现变化,则增加检测时间间隔以第二时间间隔对传输带宽进行检测,降低带宽测量的频率;这里,第二时间间隔可以为min(2*第一时间间隔,Tmax),其中,Tmax为最大检测时间间隔。
需要说明的是,因为检测传输带宽需要消耗较多的网络资源,通过上市方式可以减少带宽测量的次数,能够有效降低资源消耗。
在动态码率自适应(HTTP Live Streaming,HLS)系统中,客户端触发带宽测量事件后,流媒体服务器发送缓存的冗余数据或加快发送速率,使得一段时间内网络中的数据占用更多带宽;这时客户端记录这一段时间内的数据吞吐量,将吞吐量作为检测得到的可用传输带宽。
步骤204、将当前的码流切换之后的第二预设时间段内,电子设备拒绝码流切换请求。
具体地,客户端在触发将当前码流切换为第一码流或第二码流的码流切换事件后,向流媒体服务器发送码流切换请求,由流媒体服务器决定何时进行切换。在网络环境变化较为剧烈的情况下,网络中的可用传输带宽会发生多次变化,因此,客户端可能会在短时间内触发多次码流切换事件。
考虑到过度频繁的码流切换会降低流媒体播放时的用户体验,在本实施例中,客户端在当前码流切换之后的第二预设时间内,拒绝电子设备的码流切换请求,从而避免过度切换。
需要说明的是,本实施例中与其它实施例中相同步骤或概念的解释可以参考其它实施例中的描述,此处不再赘述。
本发明的实施例所提供的流媒体的码流切换方法,首先,检测数据缓冲区中数据的变化状态,当数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为码率较低的第一码流;当数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为码率较高的第二码流;这样,在数据缓冲区中数据的大小出现震荡时,根据缓冲区数据大小的变化决策是否需要切换到更低码率的码流;当缓冲区大小相对稳定时,通过检测当前可用带宽判断是否能够切换到更高码率的码流。如此,能够灵活对码流进行切换,同时仅在缓冲区数据大小稳定时,检测带宽,能够降低带宽检测的次数,减少因为带宽检测而造成的资源消耗或不必要的网络拥塞。
本发明实施例提供流媒体的码流切换方法,可以应用于图4所示的系统架构中,该系统架构包括三种模式:调整模式、稳定模式和切换模式。客户端可以在这三种模式之间相互切换。
具体地,所述调整模式,是指流媒体数据在网络中的传输不稳定,同时客户端的数据缓冲区中数据大小变化较大;在此模式下,根据数据缓冲区中数据的大小变化,确定是否将当前码流切换为较低码率的第一码流。所述稳定模式,是指网络带宽能够满足当前流媒体数据的稳定传输,电子设备的解码播放速率与接收流媒体数据的速率匹配,电子设备解码能力充足;此时客户端缓冲区大小维持在相对稳定的水平;在此模式下,通过传输带宽的检测结果,确定是否将当前的码流切换为码率较高的第二码流。切换模式,在此模式下,客户端接收到调整状态或稳定状态下触发的码流切换指令,并切换到相应的第一码流或者第二码流。
基于前述实施例,本发明的实施例提供的流媒体的码流切换方法可以应用于如图4所示的系统架构中,如图5所示该方法包括以下步骤:
步骤501、初始化。
具体地,在客户端启动时,首先从服务器端获取码流索引文件进行解析,获取可用码流集合L,然后从最低码流开始请求流媒体数据,并进入调整模式。
步骤502、进入调整模式。
具体地,在该模式中,电子设备通过检测数据缓冲区中数据的变化状态,来决策是否将当前的码流切换为第一码流。
步骤503、检测数据缓冲区中数据大小是否稳定。
具体地,电子设备在第一预设时间内,若检测到所述数据缓冲区中数据的大小不维持在预设阈值范围内时,确定所述数据缓冲区中的数据的变化状态为震荡状态,执行步骤504。
电子设备在第一预设时间内,若检测到数据缓冲区中数据的大小维持在预设阈值范围内时,确定所述数据缓冲区中的数据的变化状态为稳定状态,执行步骤505。
步骤504、确定是否切换为第一码流。
具体地,电子设备在第一预设时间内检测到流媒体数据插入数据缓冲区的速率大于或小于流出数据缓冲区的速率时,确定将当前的码流切换为第一码流;执行步骤508。否则,重新进入调整模式,执行步骤502。
步骤505、进入稳定模式。
具体地,在稳定模式中电子设备需要定时检测传输带宽,并根据得到的带宽检测结果进行码流切换的决策。同时,数据缓冲区控制模块将继续监测缓冲区中数据大小的变化,当缓冲区中的数据出现波动时,客户端将重新返回调整模式。
步骤506、检测传输带宽。
具体地,电子设备可以按照时间间隔ΔT检测当前可用的传输带宽,得到所述传输带宽的检测结果。
步骤507、确定是否切换为第二码流。
具体地,电子设备可以基于步骤506中得到的传输带宽的检测结果,判断传输带宽是否满足预设条件。若满足预设条件,则确定将当前的码流切换为第二码流,执行步骤508。若不满足预设条件,继续处于稳定模式,同时延长检测带宽的间间隔;其中,另ΔT=min(2*ΔT,Tmax)。
需要说明的是,步骤508执行之后,电子设备可以将检测传输带宽的时间ΔT进行重置。这里,检测传输带宽的具体流程图如图6所示。
步骤508、进入切换模式。
具体地,码流的切换发生在切换状态。在调整模式中,若电子设备检测到缓冲区大小持续下降或持续上升,则进入切换状态,切换到低码率的码流,以避免缓冲区枯竭或溢出。在稳定模式中,电子设备检测得到传输带宽的结果后,将可用带宽Bestimated与码流集合L中的码率进行对比。若能够从当前码流li切换到更高码率的码流li+1,则进入切换模式并进行切换。
在本发明的其他实施例中,确认能够切换到更高码率的码流li+1后,客户端在向流媒体服务器请求下一个流媒体数据块时,即以li+1为请求的对象。但是码流的切换并不会立即体现在流媒体播放的界面上,这是因为通常在切换时,客户端的缓冲区还缓冲了一定时长的码流li的数据,切换之后的数据将会在缓冲区中li的数据播放之后才会播放。如图7所示,码流切换在切换点进行切换,播放点仍然播放的是li的数据,li+1码流的效果将在缓冲区中原有的内容即li码流的数据播放完才能够得到体现。
需要说明的是,考虑到过度频繁的码流切换会降低流媒体播放时的用户体验,在本实施例中,客户端在当前码流切换之后的第二预设时间内,拒绝电子设备的码流切换请求,从而避免过度切换。
需要说明的是,本实施例中与其它实施例中相同步骤或概念的解释可以参考其它实施例中的描述,此处不再赘述。
为实现本发明实施例的方法,本发明实施例还提供了一种流媒体的码流切换装置,可以应用于上述方法实施例中的电子设备中,如图8所示,所述流媒体的码流切换装置包括:
通信接口81,用于检测数据缓冲区中数据的变化状态;
处理器82,用于判断所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流;其中,所述第一码流的码率低于所述当前码流的码率;判断所述数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流;其中,所述第二码流的码率高于所述当前码流的码率。
在本发明的其他实施例中,所述处理器82,具体用于在第一预设时间内,若检测到所述数据缓冲区中数据的大小不维持在预设阈值范围内时,将当前的码流切换为第一码流。
在本发明的其他实施例中,所述处理器82,还用于若在第一预设时间内检测到流媒体数据插入数据缓冲区的速率大于或小于流出数据缓冲区的速率时,确定将当前的码流切换为第一码流。
在本发明的其他实施例中,所述处理器82,用于判断在第一预设时间内,所述数据缓冲区中数据的大小维持在预设阈值范围内时,确定所述数据缓冲区中的数据的变化状态为稳定状态。
在本发明的其他实施例中,所述处理器82,还用于当所述传输带宽的检测结果满足预设条件时,将当前的码流切换为第二码流;
其中,所述预设条件为所述传输带宽支持的码流的码率高于当前码流的码率。
在本发明的其他实施例中,所述处理器82,还用于将当前的码流切换之后的第二预设时间段内,拒绝码流切换请求。
在本发明的其他实施例中,所述通信接口81,用于按照第一时间间隔检测当前可用的传输带宽,得到所述传输带宽的检测结果。
在本发明的其他实施例中,所述通信接口81,还用于当所述传输带宽的检测结果不满足预设条件时,按照第二时间间隔检测当前可用的传输带宽;其中,所述第二时间间隔大于所述第一时间间隔且小于等于最大时间间隔。
基于上述流媒体的码流切换装置中各单元的硬件实现,为了实现本发明实施例提供的流媒体的码流切换方法,本发明实施例还提供了一种流媒体的码流切换装置,如图9所示,所述流媒体的码流切换装置90包括:处理器91和配置为存储能够在处理器上运行的计算机程序的存储器92,
其中,所述处理器91配置为运行所述计算机程序时,执行前述实施例中的方法步骤。
当然,实际应用时,如图9所示,该装置90中的各个组件通过总线系统93耦合在一起。可理解,总线系统93用于实现这些组件之间的连接通信。总线系统93除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统93。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器92,上述计算机程序可由车牌精确定位装置90的处理器91执行,以完成前述方法所述步骤。计算机可读存储介质可以是磁性随机存取存储器(FRAM,ferromagnetic random access memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(FlashMemory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (16)
1.一种流媒体的码流切换方法,其特征在于,所述方法包括:
检测数据缓冲区中数据的变化状态;
若所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流;其中,所述第一码流的码率低于所述当前码流的码率;
若所述数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流;其中,所述第二码流的码率高于所述当前码流的码率;所述稳定状态是指在第一预设时间内,所述数据缓冲区中数据的大小维持在预设阈值范围内。
2.根据权利要求1所述的方法,其特征在于,所述若所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流,包括:
在第一预设时间内,若检测到所述数据缓冲区中数据的大小不维持在预设阈值范围内时,将当前的码流切换为第一码流。
3.根据权利要求1所述的方法,其特征在于,所述若所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流,还包括:
若在第一预设时间内检测到流媒体数据插入数据缓冲区的速率大于或小于流出数据缓冲区的速率时,确定将当前的码流切换为第一码流。
4.根据权利要求1所述的方法,其特征在于,所述基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流,包括:
当所述传输带宽的检测结果满足预设条件时,将当前的码流切换为第二码流;
其中,所述预设条件为所述传输带宽支持的码流的码率高于当前码流的码率。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将当前的码流切换之后的第二预设时间段内,拒绝码流切换请求。
6.根据权利要求1所述的方法,其特征在于,所述基于传输带宽的检测结果之前,所述方法还包括:
按照第一时间间隔检测当前可用的传输带宽,得到所述传输带宽的检测结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述传输带宽的检测结果不满足预设条件时,按照第二时间间隔检测当前可用的传输带宽;其中,所述第二时间间隔大于所述第一时间间隔且小于等于最大时间间隔。
8.一种流媒体的码流切换装置,其特征在于,所述流媒体的码流切换装置包括:
通信接口,用于检测数据缓冲区中数据的变化状态;
处理器,用于若所述数据缓冲区中数据的变化状态为震荡状态时,确定是否将当前码流切换为第一码流;其中,所述第一码流的码率低于所述当前码流的码率;若所述数据缓冲区中数据的变化状态为稳定状态时,基于传输带宽的检测结果,确定是否将当前的码流切换为第二码流;其中,所述第二码流的码率高于所述当前码流的码率;所述稳定状态是指在第一预设时间内,所述数据缓冲区中数据的大小维持在预设阈值范围内。
9.根据权利要求8所述的流媒体的码流切换装置,其特征在于,所述处理器,用于在第一预设时间内,若检测到所述数据缓冲区中数据的大小不维持在预设阈值范围内时,将当前的码流切换为第一码流。
10.根据权利要求8所述的流媒体的码流切换装置,其特征在于,所述处理器用于,若在第一预设时间内检测到流媒体数据插入数据缓冲区的速率大于或小于流出数据缓冲区的速率时,确定将当前的码流切换为第一码流。
11.根据权利要求8所述的流媒体的码流切换装置,其特征在于,所述处理器,用于当所述传输带宽的检测结果满足预设条件时,将当前的码流切换为第二码流;
其中,所述预设条件为所述传输带宽支持的码流的码率高于当前码流的码率。
12.根据权利要求8所述的流媒体的码流切换装置,其特征在于,所述处理器,用于将当前的码流切换之后的第二预设时间段内,拒绝码流切换请求。
13.根据权利要求8所述的流媒体的码流切换装置,其特征在于,所述通信接口,用于按照第一时间间隔检测当前可用的传输带宽,得到所述传输带宽的检测结果。
14.根据权利要求13所述的流媒体的码流切换装置,其特征在于,所述通信接口,用于当所述传输带宽的检测结果不满足预设条件时,按照第二时间间隔检测当前可用的传输带宽;其中,所述第二时间间隔大于所述第一时间间隔且小于等于最大时间间隔。
15.一种流媒体的码流切换装置,所述装置包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的流媒体的码流切换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811232566.1A CN111083094B (zh) | 2018-10-22 | 2018-10-22 | 一种流媒体的码流切换方法及装置、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811232566.1A CN111083094B (zh) | 2018-10-22 | 2018-10-22 | 一种流媒体的码流切换方法及装置、计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111083094A CN111083094A (zh) | 2020-04-28 |
CN111083094B true CN111083094B (zh) | 2022-06-07 |
Family
ID=70309988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811232566.1A Active CN111083094B (zh) | 2018-10-22 | 2018-10-22 | 一种流媒体的码流切换方法及装置、计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111083094B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100469072C (zh) * | 2005-09-29 | 2009-03-11 | 西安交通大学 | 多源流媒体传输QoS控制方法 |
CN100544437C (zh) * | 2005-12-28 | 2009-09-23 | 中兴通讯股份有限公司 | 一种流媒体带宽适配系统 |
CN101588468B (zh) * | 2008-05-20 | 2013-08-07 | 华为技术有限公司 | 一种基于p2p的媒体播放方法、装置和系统 |
CN102378065A (zh) * | 2011-10-19 | 2012-03-14 | 江西省南城县网信电子有限公司 | 基于mpeg-4的流媒体服务器端配置缓冲区的方法及系统 |
CN105263037B (zh) * | 2014-07-18 | 2018-07-03 | 中国科学院声学研究所 | 一种基于客户端缓存的自适应流化方法 |
CN104581229B (zh) * | 2015-01-16 | 2018-08-03 | 京东方科技集团股份有限公司 | 一种流媒体数据传输装置、方法和系统 |
CN106488265A (zh) * | 2016-10-12 | 2017-03-08 | 广州酷狗计算机科技有限公司 | 一种发送媒体流的方法和装置 |
CN108184152B (zh) * | 2018-01-03 | 2020-01-24 | 湖北大学 | 一种dash传输系统两阶段客户端码率选择方法 |
-
2018
- 2018-10-22 CN CN201811232566.1A patent/CN111083094B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111083094A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10271112B2 (en) | System and method for dynamic adaptive video streaming using model predictive control | |
CN108833996B (zh) | 分布式dash系统中服务节点选择、更新和码率自适应方法 | |
CN108184152B (zh) | 一种dash传输系统两阶段客户端码率选择方法 | |
CN109982159B (zh) | 在线播放流媒体的方法和终端 | |
KR101982290B1 (ko) | 적응적 스트리밍 서비스의 체감 품질 향상을 위한 콘텐츠 특성 기반 스트리밍 시스템 및 방법 | |
JP2015133701A (ja) | クライアント端末においてマルチメディアコンテンツのセグメントの来るシーケンスをダウンロードする方法、及び対応する端末 | |
KR20130093675A (ko) | 적응 스트리밍을 위한 가변 비트 비디오 스트림들 | |
CN111083536B (zh) | 调节视频码率的方法和装置 | |
CN105263037A (zh) | 一种基于客户端缓存的自适应流化方法 | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
US9167256B2 (en) | Method and apparatus for encoding | |
EP2993911A1 (en) | Method and client terminal for receiving a multimedia content split into at least two successive segments, and corresponding computer program product and computer-readable medium | |
WO2021030294A1 (en) | Prediction-based dropped frame handling logic in video playback | |
CN114040245B (zh) | 视频播放方法、装置、计算机存储介质和电子设备 | |
CN105791987A (zh) | 媒体数据播放的方法及终端 | |
EP3895352B1 (en) | Method and system for reducing drop-outs during video stream playback | |
CN111083094B (zh) | 一种流媒体的码流切换方法及装置、计算机存储介质 | |
US20240119578A1 (en) | Dynamic image-quality video playing method, apparatus, electronic device, and storage medium | |
US20160309210A1 (en) | Video playback method, apparatus and intelligent terminal | |
EP4013060A1 (en) | Multiple protocol prediction and in-session adaptation in video streaming | |
US20220286721A1 (en) | A media client with adaptive buffer size and the related method | |
US20150350037A1 (en) | Communication device and data processing method | |
Younus et al. | A model for a practical evaluation of a DASH-based rate adaptive algorithm over HTTP | |
CN115278308B (zh) | 媒体流处理方法、装置、设备及存储介质 | |
JP2019134379A (ja) | 品質予測装置、品質予測方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |