CN112822502A - 直播去抖动的智能缓存与直播方法、设备及存储介质 - Google Patents
直播去抖动的智能缓存与直播方法、设备及存储介质 Download PDFInfo
- Publication number
- CN112822502A CN112822502A CN202011597185.0A CN202011597185A CN112822502A CN 112822502 A CN112822502 A CN 112822502A CN 202011597185 A CN202011597185 A CN 202011597185A CN 112822502 A CN112822502 A CN 112822502A
- Authority
- CN
- China
- Prior art keywords
- jitter
- jitter buffer
- live
- delay
- playing
- 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.)
- Granted
Links
Images
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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
- H04N21/2335—Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2401—Monitoring of the client buffer
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- 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/439—Processing of audio elementary streams
- H04N21/4392—Processing of audio elementary streams involving audio buffer management
-
- 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/439—Processing of audio elementary streams
- H04N21/4398—Processing of audio elementary streams involving reformatting operations of audio signals
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
-
- 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
- H04N21/44227—Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
-
- 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
- H04N21/44245—Monitoring the upstream path of the transmission network, e.g. its availability, bandwidth
Abstract
本申请实施例提供一种直播去抖动的智能缓存与直播方法、设备及存储介质。在本申请实施例中,在直播场景中,播放端利用去抖动缓冲区解决延时抖动问题,在直播起始阶段,结合源端的抖动延时初始化去抖动缓冲区的缓冲时长,在直播过程中,至少结合播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,让缓冲时长能够维持在合理水平上,使得去抖动缓冲区能够更好地抵抗较差网络和源端抖动,确保在播放流畅的情况下,让缓冲时长尽量小,降低观看延时。
Description
技术领域
本申请涉及网络直播技术领域,尤其涉及一种直播去抖动的智能缓存与直播方法、设备及存储介质。
背景技术
随着互联网技术的不断发展,网络带宽的不断提升,各类在线直播平台大量涌现。在线直播过程包括:直播端采集直播内容并上传至服务端,服务端对直播内容进行转码等处理,并将处理后的直播内容通过互联网络分发至用户端,用户端对直播内容解码后实时播放。但是,由于网络传输环境比较复杂,到达用户端的直播内容存在延时、丢包或乱序等现象,这些会引起延时抖动,导致直播画面卡顿,影响观看体验。
为了弥补延时抖动,在播放端通常会采用抖动缓冲技术,即设置去抖动缓冲区,直播内容先到达该缓冲区暂存,随后以平滑的速率将直播内容从缓冲区中取出,经解码后播放给用户,从而解决延时抖动问题。但是,去抖动缓冲区的缓冲时长会影响播放流畅度和观看延时。如果缓冲时长较长,缓存数据过多,会增大观看延时大;如果缓冲时长较短,缓存数据过少,画面容易卡顿。因此,如何合理设置去抖动缓冲区的缓冲时长是直播场景中面临的重要技术问题。
发明内容
本申请的多个方面提供一种直播去抖动的智能缓存与直播方法、设备及存储介质,用以合理设置直播场景中去抖动缓冲区的缓冲时长,在保证播放流畅度的同时,尽量降低观看延时。
本申请实施例提供一种直播去抖动的智能缓存方法,包括:在直播起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的直播内容以等待播放;在播放所述直播内容的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
本申请实施例还提供一种直播方法,包括:响应于观看直播的触发操作,根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,并显示直播界面;接收所述源端发送的直播内容,将所述直播内容暂存于所述去抖动缓冲区中等待播放;以及在播放所述直播内容的过程中,若所述缓冲时长发生调整,则以变速方式将所述去抖动缓冲区中的直播内容渲染至所述直播界面上;其中,所述缓冲时长是根据播放端的抖动延时和当前网络质量参数进行调整的。
本申请实施例还提供一种音视频播放方法,包括:在播放起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的音视频数据以等待播放;在播放所述音视频数据的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
本申请实施例还提供一种终端设备,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:在直播起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的直播内容以等待播放;在播放所述直播内容的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
本申请实施例还提供一种终端设备,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:响应于观看直播的触发操作,根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,并显示直播界面;接收所述源端发送的直播内容,将所述直播内容暂存于所述去抖动缓冲区中等待播放;以及在播放所述直播内容的过程中,若所述缓冲时长发生调整,则以变速方式将所述去抖动缓冲区中的直播内容渲染至所述直播界面上;其中,所述缓冲时长是根据播放端的抖动延时和当前网络质量参数进行调整的。
在本申请实施例中,在直播或音视频播放场景中,播放端利用去抖动缓冲区解决延时抖动问题,在直播或音视频播放起始阶段,结合源端的抖动延时初始化去抖动缓冲区的缓冲时长,在直播或音视频播放过程中,至少结合播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,让缓冲时长能够维持在合理水平上,使得去抖动缓冲区能够更好地抵抗较差网络和源端抖动,确保在播放流畅的情况下,让缓冲时长尽量小,降低观看延时。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种基于CDN网络的直播系统的结构示意图;
图1b为本申请示例性实施例提供的用户端播放直播内容的过程示意图;
图1c为本申请示例性实施例提供的对去抖动缓冲区进行处理的原理架构图;
图2a为本申请示例性实施例提供的一种直播去抖动的智能缓方法的流程示意图;
图2b为本申请示例性实施例提供的一种音视频播放方法的流程示意图;
图3为本申请示例性实施例提供的一种直播方法的流程示意图;
图4a为本申请示例性实施例提供的一种播放器装置的结构示意图;
图4b为本申请示例性实施例提供的一种终端设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请示例性实施例提供的一种基于CDN网络的直播系统的结构示意图。如图1a所示,该直播系统100包括:直播端101、服务端102、CDN网络103以及用户端104。其中,直播端101与服务端102通信连接,服务端102经CDN网络103与用户端104网络连接。
在本实施例中,并不对直播端101的实现形态进行限定。例如,直播端101可以采用但不限于:智能手机、平板电脑,台式电脑、触控屏幕、DV、摄像机等各种终端设备,负责直播,录制直播内容并经服务端102向用户端104发送直播内容。在本实施例中,并不对直播内容进行限定,例如可以是远程教育类内容、直播购物类内容、直播视频会议或者直播娱乐类内容等,对此不做限定。不论直播内容是什么,在线直播内容属于流式媒体,即直播端101在线实时采集直播内容并上传直播内容,用户端104可以不断地接收并观看直播内容。
在本实施例中,并不对服务端102的实现形态进行限定。例如,服务端102可以是常规服务器、云服务器或服务器阵列等服务端设备。直播内容在上传到服务端102后,为适应不同的网络环境和播放终端,服务端102通常会对直播内容进行转码处理,另外,服务端102也会提供包括数据统计、内容审核、鉴权、直播录制、直播截图以及持久化存储等在内的个性化增值服务,如图1a中所示。之后,服务端102经由CDN网络103将直播内容加速分发至各用户端104。
在本实施例中,并不对用户端104的实现形态进行限定。例如,用户端104可以采用但不限于:智能手机、平板电脑,台式电脑、智能电视等各种终端设备,接收并播放直播内容。用户端104使用的终端设上安装有直播软件,该直播软件可以是具有直播功能的客户端、APP、插件、SDK或小程序等,可响应用户通过终端设备发起的观看直播的触发操作,展示直播界面,以及接收经CDN网络103传输来的直播内容,在直播界面上播放该直播内容。在这些直播软件中带有播放器,播放器负责对接收到的直播内容进行以下处理:解协议、解封装、音视频分离、音视频分别解码、音视频同步以及输出视频和播放音频。其中,输出视频是指根据视频数据渲染播放画面的过程。
在直播播放过程中,可能存在延时抖动,即相邻两帧直播内容从发送到接收经过的延迟时间不一样,这会影响直播画面的质量,例如出现卡顿,影响直播观看体验。为了解决延时抖动问题,保证直播质量,在用户端104(播放端)会设置去抖动缓冲区,这样CDN网络103推流过来的直播内容会先被送入去抖动缓冲区进行暂存,然后再以平滑的速率将直播内容从去抖动缓冲区中取出进行播放。可选地,如图1b所示,用户端104对接收到的直播内容进行播放处理的过程包括:先对接收到的直播内容进行解协议、解封装、音视频分离等处理,将处理后的音视频数据送入去抖动缓冲区中进行暂存,再以平滑的速率从去抖动缓冲区中读取音视频数据,并经解码、同步后进行渲染输出至直播界面。在本实施例中,去抖动缓冲区包括音频缓冲区和视频缓冲区,分别用于存储分离出的音频数据和视频数据。由于音频缓冲区和视频缓冲区是对齐的,故在本申请实施例中,并不对两者做区分,统一以去抖动缓冲区进行描述。
其中,去抖动缓冲区的缓冲时长表示去抖动缓冲区的暂存能力,即决定了去抖动缓冲区最多可暂存的直播内容的多少,该暂存能力也决定了观看延时。其中,可以通过去抖动缓冲区中最早缓存的直播内容中携带的显示时间戳(Presentation Time Stamp,PTS)和最晚缓存的直播内容中携带的PTS,来判断去抖动缓冲区是否达到了缓冲时长对应的最大暂存能力。由此可知,缓冲时长越长,表示暂存能力越大,缓存的直播内容越多,抗抖动能力越强,与此同时,相应的播放延迟也就越大;反之,缓冲时长越短,表示暂存能力越小,缓存的直播内容越少,抗抖动能力越差,与此同时,播放延迟就越小,但在网络质量不好或网络质量从好变差的情况下,由于缓存的直播内容有限,新的直播内容无法及时传输过来,容易造成画面卡顿。因此,在本申请实施例中,去抖动缓冲区使用动态的缓冲时长,而不是采用静态的缓冲时长,这样是为了适应网络质量的变化。例如,在网络质量较好的情况下,去抖动缓冲区可以采用较短的缓冲时长;在网络质量较差的情况下,去抖动缓冲区可以采用较长的缓冲时长。
其中,设置去抖动缓冲区的主要目的是为了解决延时抖动问题,而播放端的抖动延时在一定程度上可以反映网络质量情况,故在本申请实施例中,在直播过程中,关注播放端的抖动延时,根据播放端的抖动延时动态调整去抖动缓冲区的缓冲时长。例如,当播放端的抖动延时较大时,一定程度上说明网络质量较差,则可以增大去抖动缓冲区的缓冲时长,优先保证观看流畅度;当播放端的抖动延时较小时,一定程度上说明网络质量较好,则可以减小去抖动缓冲区的缓冲时长,以降低观看时延。
可选地,播放端的抖动时延可以根据已接收的直播内容进行分析得到。例如,在每次动态调整缓冲时长时,可以使用在一段时间内已接收到的直播内容,根据这些直播内容的接收时间和发送时间(或称采集时间)来计算播放端的抖动延时。为了便于描述和区分,将用于限定所使用的已接收直播内容的时间段称为第一时间段,本申请实施例并不对第一时间段进行限定,例如可以是最近5s、7s或10s的时间。以第一时间段是最近5s为例,则在每次动态调整缓冲时长时,可以获取在最近5s内接收到的直播内容,根据这些直播内容的接收时间和发送时间,计算两两相邻直播内容的抖动延时;之后,取这些抖动延时中最大的抖动延时,或者取这些抖动延时的均值,或者取这些抖动延时的加权求和结果,作为此次调整缓冲时长所使用的播放端的抖动延时。其中,在上述抖动时延进行加权求和的过程中,可以根据直播内容的接收时间距离当前时间的远近配置加权求和时的权重,若直播内容的接收时间距离当前时间越近,对应的权重越大,反之,若直播内容的接收时间距离当前时间越远,对应的权重越小。
在本申请实施例中,希望去抖动缓冲区的缓冲时长能够更加合理,尽量能够做到在网络质量好的情况下,不仅能保证用户具有较好的观看流畅度,而且还具有较低的观看时延,而在网络质量变差的情况下,至少要保证用户能流畅观看。为了实现该目的,在本申请实施例中,在动态调整去抖动缓冲区的缓冲时长的过程中,除了考虑播放端的抖动延时之外,还可以综合考虑至少一个不同于播放端的抖动延时的参数。这些参数可以从其它视角体现传输网络的服务质量。下面进行示例性说明:
在实施例A1中,用户端104在直播过程中,除了获取播放端的抖动延时之外,还获取当前网络质量参数,即本次直播过程中的网络质量参数。这里的传输网络是指传输直播内容的网络,主要是指CDN网络103。其中,当前网络质量参数可以是但不限于:网络往返时间(Round-Trip Time,RTT)和网络丢包率中的至少一种。之后,结合播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,如图1c所示。其中,如果去抖动缓冲区的暂存能力较小,可能会导致网络丢包率较大;反之,如果去抖动缓冲区的暂存能力较大,网络丢包率会降低;当然,网络质量较好,网络抖动会较轻,直播流畅,会降低对去抖动缓冲区的暂存能力的要求。由此可见,网络质量与去抖动缓冲区的暂存能力之间会相互影响,因此结合网络质量参数对去抖动缓冲区的缓冲时长进行调整,有利于让缓冲时长更加切合网络质量。其中,随着缓冲时长的动态调整,去抖动缓冲区的暂存能力也会动态变化,去抖动缓冲区中所缓存的直播内容的数量也会动态变化,这种变化与网络质量相匹配,在解决延时抖动问题的同时,可以尽量降低网络丢包的数量,保证观看流畅度,减低观看延时。
在本实施例中,并不限定直播系统100所采用的网络传输协议,例如可以采用面向连接的传输控制协议(Transmission Control Protocol,TCP),也可以采用无连接的用户数据报协议(User Datagram Protocol,UDP)。在一些应用场景中,考虑到UDP的传输时延低于TCP,能与视频和音频很好地匹配,故采用UDP协议;进一步,还可以在UDP协议上运行实时传输协议(Real-timeTransport Protocol,RTP)以及与其配套的实时传输控制协议(Real-time Transport ControlProtocol,RTCP),即同时配合RTP/RTCP进行直播内容的传输。在该可选实施例中,直播内容可通过RTP数据包进行传输,而一些能够反映网络质量状况的信息,例如已发送的RTP数据包的数目、丢失的数据包数目和数据包的抖动等信息可通过RTCP信息包在直播内容提供端与用户端104之间进行反馈。基于此,一种获取当前网络质量参数的方式包括:获取在一定时间段内接收到的RTCP信息包,根据在该时间段内接收到的RTCP信息包中携带的反馈信息,生成当前网络质量参数。例如,根据已发送的RTP数据包的数目和丢失的RTP数据包的数目可以计算出网络丢包率。为了便于区分和描述,将用于限定所使用的RTCP信息包的时间段记为第二时间段,第二时间段可以是最近20s、30s或1分钟,甚至更长时间,对此不做限定。
在获取播放端的抖动延时和当前网络质量参数之后,可以根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长。其中,根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长的一种实施方式包括:根据播放端的抖动延时和当前网络质量参数,确定出目标缓冲时长;然后,以目标缓冲时长为依据,动态调整去抖动缓冲区的缓冲时长。
进一步可选地,可以根据播放端的抖动延时计算出第一缓冲时长,表示jitter_delay;可选地,可以在播放端的抖动延时上增加一定比例,作为第一缓冲时长,或者,也可以直接将播放端的抖动延时,作为第一缓冲时长。另外,根据当前网络质量参数计算出第二缓冲时长,表示为net_delay。例如,可在当前缓冲时长的情况下,获取传输网络的RTT、丢包率等质量参数;根据这些质量参数,计算第二缓冲时长。第一缓冲时长和第二缓冲时长是从不同角度计算出的,可综合考虑第一缓冲时长和第二缓冲时长得到目标缓冲时长;根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整。可选地,可以选择第一缓冲时长和第二缓冲时长中较大的一个,作为目标缓冲时长,这样可以优先解决延时抖动问题。或者,对第一缓冲时长和第二缓冲时长进行加权求和,将加权求和结果作为目标缓冲时长,该方式可以兼顾延时抖动和网络质量的影响。
进一步,在根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整时,可以采用“快增长慢减小”的调整控制策略,使得去抖动缓冲区的暂存能力能够更好地抵抗网络质量变差的情况(即弱网情况),让用户能够观看流畅的直播画面。其中,“快增长慢减小”的调整控制策略是指:在目标缓冲时长大于去抖动缓冲区的缓冲时长的情况下,以增大至目标缓冲时长为目标,快速增大去抖动缓冲区当前的缓冲时长,一种快速增大的具体方式为:直接将去抖动缓冲区的缓冲时长调整为目标缓冲时长;在目标缓冲时长小于去抖动缓冲区的缓冲时长的情况下,以减小至目标缓冲时长为目标,逐步减小去抖动缓冲区的缓冲时长,逐渐靠近目标缓冲时长。
在本申请实施例中,并不限定逐步减小的实施方式。例如,可以预先设定每次向下调整的幅度,例如每次只允许将缓冲时间减小1s,每次按照设定的向下调整幅度将去抖动缓冲区的缓冲时长逐步减小。又例如,可以预先设定连续两次向下调整的时间间隔或频率,即连续两次减小缓冲时长的时间间隔或频率要满足向下调整的时间间隔或频率,则可以按照设定的向下调整频率,例如每次减小缓冲时长的时间与上一次减小缓冲时长的时间至少间隔2s,则在与上一次向下调整的时间间隔或频率满足要求时,再执行减小去抖动缓冲区的缓冲时长的操作。当然,也可以同时按照设定的向下调整幅度和向下调整的时间间隔或频率,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长。
需要说明的是,对去抖动缓冲区的缓冲时长的调整包括两方面,一方面是修改缓冲时长这一参数值,具体可以通过参数设置的方式进行调整,另一方面时在缓冲时长的参数值被修改后,去抖动缓冲区的暂存能力从当前状态逐渐过渡与调整后的缓冲时长适配的状态。例如,如果目标缓冲时长为7s,去抖动缓冲区的缓冲时长为5s,则可以采用“快增长”方式直接将缓冲时长这一参数的参数值由5s更改为7s,但是,去抖动缓冲区的暂存能力需要一定时间才能从5s的暂存能力变更为7s的暂存能力,至此完成对缓冲时长的调整。同理,如果目标缓冲时长为3s,去抖动缓冲区的缓冲时长为5s,每次允许向下调整的幅度为1s,则可以采用“慢减小”方式,先将缓冲时长这一参数的参数值由5s更改为4s,并等待去抖动缓冲区力的暂存能力从5s调整为4s;之后,再次将缓冲时长这一参数的参数值由4s变更为3s,并等待去抖动缓冲区的暂存能力从4s变更为3s,至此完成对缓冲时长的调整。
另外,需要说明的是,在逐步减小缓冲时长的过程中,在去抖动缓冲区的缓冲时长减小为目标缓冲时长之前,有可能新一轮的调整需求先到达,此时需要根据新的目标缓冲时长重新调整去抖动缓冲区的缓冲时长,则可以根据新的目标缓冲时长重新对去抖动缓冲区当前的缓冲时长进行调整;也就是说,在逐步减小去抖动缓冲区的缓冲时长的过程中,不一定能够减小到目标缓冲时长。
在一可选实施例中,可以设定调整周期,例如2s、1s或3s等,周期性地根据播放端的抖动延时和当前网络质量参数对去抖动缓冲区的缓冲时长进行调整。这样,每当一个调整周期(如2s)到达时,一方面获取之前第一时间段(如5s)内已接收到的直播内容,并根据这些直播内容的接收时间和发送时间,计算出该调整周期内可用的播放端的抖动延时;另一方面,获取之前第二时间段(如30s)内接收到的RTCP信息包,根据这些RTCP信息包中携带的反馈信息,生成该调整周期内可用的当前网络质量参数;之后,根据该调整周期内可用的播放端的抖动延时和当前网络质量参数,计算出目标缓冲时长;若目标缓冲时长大于去抖动缓冲区的缓冲时长,则将去抖动缓冲区的缓冲时长调整为目标缓冲时长;若目标缓冲时长小于去抖动缓冲区的缓冲时长,则逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,直至调整到目标缓冲时长或直至当前调整周期结束为止。
无论是增大去抖动缓冲区的缓冲时长,还是减小去抖动缓冲区的缓冲时长,可以通过调整去抖动缓冲区中直播内容的播放速度,达到让去抖动缓冲区的暂存能力随缓冲时长调整而适应性变化的目的。具体地,在增大去抖动缓冲区的缓冲时长的情况下,去抖动缓冲需要暂存更多直播内容,则可以减速播放去抖动缓冲区中的直播内容,以使去抖动缓冲区的暂存能力与增大后的缓冲时长适配,最终达到增大去抖动缓冲区的缓冲时长的目的;相应地,在减小去抖动缓冲区的缓冲时长的情况下,去抖动缓冲需要暂存更少的直播内容,则可以加速播放去抖动缓冲区中的直播内容,以使去抖动缓冲区的暂存能力与减小后的缓冲时长适配,最终达到减小去抖动缓冲区的缓冲时长的目的。
在一可选实施例中,为了达到“减速播放去抖动缓冲区中的直播内容”的目的,可以减小去抖动缓冲区中直播内容间的PTS间隔,以对去抖动缓冲区中的数据量进行膨胀;之后,可按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。进一步可选地,可以在去抖动缓冲区中插入一些相关数据,并修改已有直播内容中的PTS,从而达到减小去抖动缓冲区中直播内容间的PTS间隔的目的。可以在相邻直播内容之间均匀插入相关数据,但不限于此。由于直播内容之间被插入了相关数据,以同样读取速度读取到的直播内容帧的数量就减少了,相当于降低了直播内容的播放速度。关于所插入的相关数据,本申请实施例不做限定,例如,对于直播内容中的音频数据,可以插入一些静音数据,或者也可以根据待插入位置前后的直播内容计算得到需要插入的数据。
在一可选实施例中,为了达到“加速播放去抖动缓冲区中的直播内容”的目的,可以增大去抖动缓冲区中直播内容间的PTS间隔,然后,按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。进一步可选地,可以对去抖动缓冲区中的直播内容进行压缩,以达到增大去抖动缓冲区中直播内容间的PTS间隔的目的;在本实施例中,并不限定所采用的压缩方式和压缩比例,可视应用需求而定。由于直播内容被压缩了,以同样读取速度读取到的直播内容帧的数量就增多了,相当于加快了直播内容的播放速度。
在一些可选实施例中,在直播中的音视频数据同步过程中,视频数据需要向音频数据对齐,故在上述调整对直播内容的播放速度的各实施例中,可以仅调整音频缓冲区中音频数据播放速度,例如,可以根据目标缓冲时长和去抖动缓冲区当前的缓冲时长,判断音频数据是否需要加速或慢速播放,在音频数据加速或慢速播放的情况下,将视频缓冲区对齐音频缓冲区,控制直播内容的输出帧率。
在实施例A2中,用户端104在直播过程中,获取播放端的抖动延时和当前网络质量参数,并根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长。除此之外,如图1c所示,用户端104还可以监控去抖动缓冲区的状态。具体地,可以监控去抖动缓冲区是否发生设定事件,所述设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种。这些事件与去抖动缓冲区的暂存能力有关,其中,丢帧事件和无数据事件是卡顿事件发生前的一些现象,如果发生丢帧事件或无数据事件,说明接下来发生卡顿事件的概率较高,为了保证用户能够流畅地观看直播,需要适当增大去抖动缓冲区当前的缓冲时长,以提升去抖动缓冲区的暂存能力;进一步,若发生卡顿事件,说明直播卡顿已发生,表明的去抖动缓冲区当前的缓冲时长(可能是之前增大后的缓冲时长,也可能是之前减小后的缓冲时长)是不够的,如果去抖动缓冲区当前的缓冲时长已经是增大过的缓冲时长,则说明需要继续增大,如果去抖动缓冲区当前的缓冲时长是之前减小过的缓冲时长,则说明需要重新增大。
在本实施例中,并不限定在设定事件发生情况下,增大去抖动缓冲区的缓冲时长的实施方式。例如,可以根据设定事件的类型,确定增大幅度或比率,根据该增大幅度或比例对去抖动缓冲区的缓冲时长进行增大处理。例如,可以采用AB测试方式,获取整体卡顿情况和抖动延时信息,根据这些信息,结合设定事件的类型,确定增大幅度或比率。其中,在发生丢帧事件、无数据事件或卡顿事件的情况下,对缓冲时长进行增大处理的详细实施方式与前述实施例相同,可参见前述实施例,在此不再赘述。
在本实施例中,根据播放端的抖动延时和当前网络质量参数,可以周期性调整去抖动缓冲区的缓冲时长;进一步,结合去抖动缓冲区的状态,可实时调整去抖动缓冲区的缓冲时长。另外,在周期性调整缓冲时长的方式,与实时调整缓冲时长的过程发生冲突时,优先考虑实时调整缓冲时长的方式。
在实施例A3中,用户端104在直播过程中,一方面根据播放端的抖动延时和当前网络质量参数,动态(如周期性)调整去抖动缓冲区的缓冲时长,另一方面根据去抖动缓冲区的状态,在发生丢帧、无数据或卡顿事件时,实时调整去抖动缓冲区的缓冲时长。除了在直播过程中从播放端的抖动延时、当前网络质量以及缓冲区状态多个维度动态调整缓冲区的缓冲时长之外,如图1c所示,在直播初始阶段,还可以获取源端的抖动延时和/或历史网络质量参数,即历史直播过程中的网络质量参数;结合源端的抖动延时和/或历史网络质量参数,初始化去抖动缓冲区的缓冲时长。其中,直播初始阶段,是指用户端104向源端发出直播请求、且本次直播内容尚未到达用户端104的阶段。
在直播初始阶段中,由于本次直播内容尚未到达,所以无法统计播放端的抖动延时,且也无法统计本次直播中的网络质量参数;又因为考虑到去抖动缓冲区的缓冲时长与网络质量正相关,与抖动情况也正相关。鉴于此,在直播初始阶段,根据源端的抖动延时和/或历史网络质量参数,对去抖动缓冲区的缓冲时长进行初始化,这有利于为去抖动缓冲区设置更为合理的初始缓冲时长,该初始缓冲时长既考虑了抖动情况也考虑了网络质量,这样在直播过程中以该初始缓冲时长为基础不断调整缓冲时长,使得去抖动缓冲区能够很好地抵抗网络质量变差的情况以及源端抖动引起的数据波动,让直播用户观看流畅画面。
在本实施例中,源端是指直接向用户端104提供直播内容的一端。例如,在一些情况中,有些用户端104可以直接向服务端102发起直播请求,则源端实现为服务端102。在更多情况下,服务端102通过CDN网络103向用户端104加速推送直播内容,用户端104的直播请求通常会到达CDN网络103中的CDN节点,则接收到直播请求的CDN节点即为所述源端。对于任一CDN节点来说,其直播内容来自于服务端102或其它CDN节点,则在接收服务端102或其它CDN节点发送的直播内容的过程中,可以根据在一段时间内接收到的直播内容的接收时间和发送时间,统计源端的抖动延时。为便于描述和区分,将这里的一段时间称为第三时间段,相对于第一时间段和第二时间段,第三时间段的时间可以更长一些,例如可以是10分钟、20分钟、30分钟甚至更长时间,但并不限定具体取值。
可选地,源端可以获取第三时间段内接收到的直播内容,该直播内容可以来自服务端102,也可能来自其它CDN节点;然后,根据这些直播内容的接收时间和发送时间,计算相邻直播内容的抖动延时;其中,直播内容中携带有表示发送时间的时间戳,对于先后接收到的直播内容1和2,这两个直播内容的抖动延时=(直播内容2的接收时间-直播内容1的接收时间)-(直播内容2的发送时间-直播内容1的发送时间);进一步,根据所有相邻直播内容之间的抖动延时,可以计算源端的抖动延时。例如,可以从中选择最大抖动延时作为源端的抖动延时,或者,也可以计算所有抖动延时的均值,或加权求和值,作为源端的抖动延时。需要说明的是,上面给出的相邻直播内容之间的抖动延时计算方法仅为一种示例,并不限于此。其中,源端在接收到用户端104发送的直播请求之后,可以该直播请求所请求的直播流对应的源端的抖动延时下发给用户端104,以供用户端104据此初始化去抖动缓冲区的缓冲时长。
关于历史网络质量参数,可以在历史直播过程中生成并保存下来,这样在本次直播中,可以直接获取并使用。其中,历史直播过程中的直播内容与本次直播请求播放的直播内容可以属于同一直播流,也可以属于不同直播流,对此不做限定。可选地,可以优先选择直播内容的类型相同或相近的历史网络质量参数。例如,如果本次直播请求的是在线教育直播内容,则可以选择直播在线教育的历史网络质量参数,用于初始化去抖动缓冲区的缓冲延时。或者,可以优先选择直播距离本次直播时间最近的若干次历史网络质量参数。
在此说明,在实施例A3中,将直播初始阶段对去抖动缓冲区的缓冲时长的初始化与直播过程中对去抖动缓冲区的缓冲时长的动态调整进行了结合。在两个阶段相结合的方案中,以根据源端的抖动延时对去抖动缓冲区的缓冲时长进行初始化,和,根据播放端的抖动延时和当前网络质量参数对去抖动缓冲区的缓冲时长进行动态调整为主;进一步结合历史网络质量参数对去抖动缓冲区的缓冲时长进行初始化,以及进一步结合去抖动缓冲的状态对去抖动缓冲区的缓冲时长进行动态调整,均为可选操作,在图1c中,使用虚点线表示可选操作。
无论是上述哪种实施例,随着去抖动缓冲区的缓冲时长的动态调整,可以更加合理地对直播内容进行缓冲,可以保证以平滑的播放速率播放直播内容,在网络质量较好的情况下,可以在保证画面流畅度的同时,减少观看延时;在网络质量较差的情况下,可以优先保证画面流畅度,降低画面播放卡顿的概率。
进一步,动态调整去抖动缓冲区的缓冲时长,会影响播放速度、播放延时(即观看时延)。为了便于观看用户了解其网络质量、播放速度以及播放延时等信息,在缓冲时长发生变化的情况下,还可以在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息。其中,播放速度就是实时帧率,也就是渲染速度,播放端可以获取并输出;播放延时也就是去抖动缓冲区的缓冲时长,播放端也可以获取并输出;当前网络质量的变化信息也可以根据网络质量参数的变化而获取。在一些可选实施例中,可以默认在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息。在另一些可选实施例中,在直播界面上可以设置显示开关控件,用户可以通过该显示开关控件触发是否显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息。如果用户希望了解这些变化信息,可以对直播界面上的显示开关控件触发开启操作,用户端响应观看用户对显示开关控件的开启操作,在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息。需要说明的是,显示开关控件可以是一个,也可以是每种信息对应一个,例如可以设置一个用于控制播放速度显示与否的开关控件,设置一个用于控制播放延时是否显示的开关控件,设置一个用于控制网络质量是否显示的开关控件。
可选地,播放速度的变化信息可以包括:变化前的播放速度和变化后的播放速度,也可以包括指示播放速度变化的指示信息;相应地,播放延时的变化信息可以包括:变化前的播放延时和变化后的播放延时,也可以包括指示播放延时变化的指示信息;相应地,当前网络质量的变化信息可以包括:变化前的网络质量(例如,优、良或差)和变化后的网络质量参数,也可以包括指示网络质量参数变化的指示信息,例如网络质量变差或变优。
在此说明,本申请实施例提供的技术方案可以应用于任何直播要求下的任何直播场景,当然,也可以应用于特定直播场景或应用于具有特定直播要求的直播场景中。例如,从直播场景来看,本申请实施例提供的技术方案可以应用在在线教育或电商直播等特定直播场景下,则在直播起始阶段,在获取源端的抖动延时之前,还可以获取本次直播隶属的应用场景,判断本次直播隶属的应用场景是否属于特定直播场景;在本次直播隶属的应用场景属于特定直播场景的情况下,执行获取源端的抖动延时以及后续其它操作,以在特定直播场景下实现本申请实施例提供的技术方案。又例如,从直播要求来看,本申请实施例提供的技术方案可以应用在对播放延时要求较低的直播场景中,则在直播起始阶段,在获取源端的抖动延时之前,可以获取本次直播要求的播放延时信息,并判断该播放延时信息要求的播放延时是否低于设定的播放延时阈值;在该播放延时信息要求的播放延时低于设定的播放延时阈值的情况下,执行获取源端的抖动延时以及后续其它操作,以在低延时直播场景下实现本申请实施例提供的技术方案。当然,本申请实施例提供的技术方案也可以同时应用在低延时的特定直播场景中。
进一步可选地,在上述直播过程中,用户端104还可以记录或收集源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,进一步,根据源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,向直播服务商推荐网络增值服务或网络改进建议,以供直播服务商提升网络服务质量。其中,直播服务商是指直播端101对应的服务提供商。其中,网络增值服务是指可以帮助直播服务商改善网络服务质量的服务,例如可以是带宽购买服务或VIP服务,带宽购买服务或VIP服务可以为直播服务商提供更高质量的网络服务,以保证直播质量,提高用户观看直播的感受,为直播服务商增加用户黏性。可选地,可由用户端104直接向直播服务商推荐网络增值服务或网络改进建议;或者,用户端104也可以将源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数上报给直播系统100的提供商,简称为直播推流服务商,由直播推流服务商根据该直播服务商所提供的直播服务对应的源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,为该直播服务商推荐带宽购买服务或VIP服务等网络增值服务或网络改进建议。其中,不同直播服务商所提供的直播服务对应的源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数会有所不同,根据这些信息可针对性地为直播服务商推荐网络增值服务或网络改进建议信息,因此,这些网络增值服务或网络改建建议信息被采用的概率更高,其转化率较高。
进一步可选地,除了可以根据源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,向直播服务商推荐网络增值服务或网络改进建议信息之外,用户端104也可以直接将源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数发送给直播服务商,由直播服务商根据其对应的源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数改善其所提供的直播服务的服务质量。或者,用户端104也可以直接将源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数发送给直播推流服务商,由直播推流服务商根据其对应的源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数改善其为直播服务商所提供的网络服务质量。
进一步可选地,为了保证用户的观看体现,在直播过程中,若出现播放延时大于设定的播放延时阈值的情况,用户端104还可以显示与即将直播的直播内容相关的过渡性内容,以等待即将直播的直播内容的加载。其中,与即将直播的直播内容相关的过渡性内容,可以是根据前一时刻播放的直播内容预测出的内容,也可以是预先加载并存储的与本次直播主题相关的一些内容,例如可以是图片,或视频。以电商直播为例,在直播延时较大的情况下,在加载直播内容的过程中,可将与此次直播相关的商品的图片或简介或购买链接等内容作为过渡性内容进行显示,这样可以降低用户对卡顿的直观感受,而且显示与直播相关的商品的图片或简介或购买链接,可以向用户提供与直播商品相关的内容,这些内容一定程度上属于有用内容,也不会让用户感觉突兀,有利于提高用户观看直播的整体体验。
在此说明,本申请实施例提供的综合利用网络质量参数、源端的抖动延时、播放端的抖动延时以及去抖动缓冲区的状态等多个维度的数据,并结合“快增长和慢减小”的调整控制策略,调整去抖动缓冲区的缓冲延时的技术方案,不仅仅适用于各种直播应用场景,对于在线音视频会议场景、语音通话场景、网络通话(如VoIP)场景等对实时性要求较高的场景均适用。另外,在本申请上述直播系统实施例中,重点描述了单向一对多的直播场景下,用户端合理设置去抖动缓冲区的缓冲延时的过程。对于支持双向互动的直播场景,本申请实施例提供的技术方案同样适用,双向互动的第一直播端和第二直播端可以都在本端设置去抖动缓冲区,并采用上述实施例提供的方式合理设置去抖动缓冲区的缓冲延时;当然,并不限定两端都要采用上述实施例提供的方案。
图2a为本申请实施例提供的一种直播去抖动的智能缓存方法的流程示意图。如图2a所示,该方法包括:
201a、在直播起始阶段,获取源端的抖动延时,并根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,该去抖动缓冲区用于暂存源端提供的直播内容以等待播放;
202a、在播放直播内容的过程中,获取播放端的抖动延时和当前网络质量参数,并根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长。
在一可选实施例中,在根据源端的抖动延时初始化去抖动缓冲区的缓冲时长时,还可以考虑历史直播过程中的网络质量参数,简称为历史网络质量参数。基于此,一种初始化去抖动缓冲区的缓冲时长时的方式,包括:结合根据源端的抖动延时和历史网络质量参数,初始化去抖动缓冲区的缓冲时长。
在一可选实施例中,上述根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,包括:按照设定的调整周期,根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长,并根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整。
进一步可选地,根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长,包括:根据播放端的抖动延时计算出第一缓冲时长,并根据当前网络质量参数计算出第二缓冲时长;从第一缓冲时长和第二缓冲时长中选择较大的一个,作为目标缓冲时长。
进一步可选地,根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整,包括:若目标缓冲时长大于去抖动缓冲区的缓冲时长,则将去抖动缓冲区的缓冲时长调整为目标缓冲时长;若目标缓冲时长小于去抖动缓冲区的缓冲时长,则逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长。
进一步可选地,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,包括:根据设定的向下调整幅度和/或向下调整频率,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,直至调整至目标缓冲时长或当前调整周期结束。
在一可选实施例中,该方法还包括:监控去抖动缓冲区是否发生设定事件,设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种;在去抖动缓冲区发生设定事件的情况下,增大去抖动缓冲区的缓冲时长。
进一步可选地,该方法还包括:在增大去抖动缓冲区的缓冲时长的情况下,减速播放去抖动缓冲区中的直播内容,以增大去抖动缓冲区的缓冲时长;以及,在减小去抖动缓冲区的缓冲时长的情况下,加速播放去抖动缓冲区中的直播内容,以减小去抖动缓冲区的缓冲时长。
进一步可选地,减速播放去抖动缓冲区中的直播内容,包括:减小去抖动缓冲区中直播内容间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。
更进一步,减小去抖动缓冲区中直播内容间的PTS间隔,包括:在去抖动缓冲区中的直播内容之间插入相关数据,以减小去抖动缓冲区中直播内容间的PTS间隔。
进一步可选地,加速播放去抖动缓冲区中的直播内容,包括:增大去抖动缓冲区中直播内容间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。
更进一步,增大去抖动缓冲区中直播内容间的PTS间隔,包括:对去抖动缓冲区中的直播内容进行压缩,以增大去抖动缓冲区中直播内容间的PTS间隔。
在一可选实施例中,在获取源端的抖动延时之前,还包括:获取本次直播要求的播放延时信息和/或隶属的直播场景,并确定所述播放延时信息要求播放延时低于设定的播放延时阈值和/或所述直播场景属于特定直播场景。
在一可选实施例中,本实施例提供的方法还包括:根据源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,向直播服务商推荐网络增值服务或网络改进建议,以供所述直播服务商提升网络服务质量。进一步可选地,网络增值服务为带宽购买服务或VIP服务。
在一可选实施例中,本实施例提供的方法还包括:在直播过程中,若出现播放延时大于设定的播放延时阈值的情况,则显示与即将直播的直播内容相关的过渡性内容,以等待即将直播的直播内容的加载。
在一可选实施例中,本实施例提供的方法还包括:将所述源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的网络质量参数发送给直播服务商和/或直播推流服务商,以供直播服务商和/或直播推流服务商改善对应的服务质量。
关于本实施例中各步骤的详细描述,可参见前述系统实施例,在此不再赘述。
在本实施例中,在直播场景中,播放端利用去抖动缓冲区解决延时抖动问题,在直播起始阶段,结合源端的抖动延时初始化去抖动缓冲区的缓冲时长,在直播过程中,至少结合播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,让缓冲时长能够维持在合理水平上,使得去抖动缓冲区能够更好地抵抗较差网络和源端抖动,确保在播放流畅的情况下,让缓冲时长尽量小,降低观看延时。
图2b为本申请实施例提供的一种音视频播放方法的流程示意图。如图2b所示,该音视频播放方法包括:
201b、在播放起始阶段,获取源端的抖动延时,并根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的音视频数据以等待播放;
202b、在播放音视频数据的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
本实施例的音视频播放方法适用于直播、点播、小视频、录播等各种需要在线播放音视频的应用场景,且该方法应用于这些应用场景中的播放端。具体地,播放端利用去抖动缓冲区解决延时抖动问题,源端负责向播放端提供需要播放的音视频数据,音视频数据在到达播放端后开始播放前先暂存于去抖动缓冲区,即去抖动缓冲区用于暂存源端提供的音视频数据以等待播放。在播放音视频数据的起始阶段,即在第一帧音视频数据到达播放端之前,可以获取源端的抖动延时,并根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,这样可以让去抖动缓冲区能够更好地抵抗源端抖动。进一步,在播放音视频数据的过程中,至少结合播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,让缓冲时长能够维持在合理水平上,使得去抖动缓冲区能够更好地抵抗较差网络,确保在播放流畅的情况下,让缓冲时长尽量小,降低观看延时。
在一可选实施例中,在根据源端的抖动延时初始化去抖动缓冲区的缓冲时长时,还可以考虑历史播放过程中的网络质量参数,简称为历史网络质量参数。基于此,一种初始化去抖动缓冲区的缓冲时长时的方式,包括:结合根据源端的抖动延时和历史网络质量参数,初始化去抖动缓冲区的缓冲时长。
在一可选实施例中,上述根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,包括:按照设定的调整周期,根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长,并根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整。
进一步可选地,根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长,包括:根据播放端的抖动延时计算出第一缓冲时长,并根据当前网络质量参数计算出第二缓冲时长;从第一缓冲时长和第二缓冲时长中选择较大的一个,作为目标缓冲时长。
进一步可选地,根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整,包括:若目标缓冲时长大于去抖动缓冲区的缓冲时长,则将去抖动缓冲区的缓冲时长调整为目标缓冲时长;若目标缓冲时长小于去抖动缓冲区的缓冲时长,则逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长。
进一步可选地,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,包括:根据设定的向下调整幅度和/或向下调整频率,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,直至调整至目标缓冲时长或当前调整周期结束。
在一可选实施例中,该方法还包括:监控去抖动缓冲区是否发生设定事件,设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种;在去抖动缓冲区发生设定事件的情况下,增大去抖动缓冲区的缓冲时长。
进一步可选地,该方法还包括:在增大去抖动缓冲区的缓冲时长的情况下,减速播放去抖动缓冲区中的音视频数据,以增大去抖动缓冲区的缓冲时长;以及,在减小去抖动缓冲区的缓冲时长的情况下,加速播放去抖动缓冲区中的音视频数据,以减小去抖动缓冲区的缓冲时长。
进一步可选地,减速播放去抖动缓冲区中的音视频数据,包括:减小去抖动缓冲区中音视频数据间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取音视频数据进行播放。
更进一步,减小去抖动缓冲区中音视频数据间的PTS间隔,包括:在去抖动缓冲区中的音视频数据之间插入相关数据,以减小去抖动缓冲区中音视频数据间的PTS间隔。
进一步可选地,加速播放去抖动缓冲区中的音视频数据,包括:增大去抖动缓冲区中音视频数据间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取音视频数据进行播放。
更进一步,增大去抖动缓冲区中音视频数据间的PTS间隔,包括:对去抖动缓冲区中的音视频数据进行压缩,以增大去抖动缓冲区中音视频数据间的PTS间隔。
在一可选实施例中,在获取源端的抖动延时之前,还包括:获取本次直播要求的播放延时信息和/或隶属的播放场景,并确定所述播放延时信息要求播放延时低于设定的播放延时阈值和/或所述播放场景属于特定播放场景。
在一可选实施例中,本实施例提供的音视频播放方法还包括:根据源端的抖动延时、播放过程中播放端的抖动延时和/或播放过程中的络质量参数,向音视频服务商推荐网络增值服务或网络改进建议,以供所述音视频服务商提升网络服务质量。进一步可选地,网络增值服务为带宽购买服务或VIP服务。
在一可选实施例中,本实施例提供的音视频播放方法还包括:在播放音视频过程中,若出现播放延时大于设定的播放延时阈值的情况,则显示与即将播放的音视频数据相关的过渡性内容,以等待即将播放的音视频数据的加载。
在一可选实施例中,本实施例提供的音视频播放方法还包括:将所述源端的抖动延时、播放过程中播放端的抖动延时和/或播放过程中的网络质量参数发送给音视频服务商和/或音视频推流服务商,以供音视频服务商和/或音视频推流服务商改善对应的服务质量。
关于本实施例中各步骤的详细描述,可参见前述系统实施例,在此不再赘述。
图3为本申请示例性实施例提供的一种直播方法的流程示意图。如图3所示,该直播方法包括:
301、响应于观看直播的触发操作,根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,并显示直播界面;
302、接收源端发送的直播内容,将直播内容暂存于去抖动缓冲区中等待播放;以及
303、在播放直播内容的过程中,若缓冲时长发生调整,则以变速方式将去抖动缓冲区中的直播内容渲染至直播界面上;其中,缓冲时长是根据播放端的抖动延时和当前网络质量参数进行调整的。
在本实施例中,还包括:在播放直播内容的过程中,获取播放端的抖动延时和当前网络质量参数,根据播放端的抖动延时和当前网络质量参数动态调整去抖动缓冲区的缓冲时长。
在一可选实施例中,该方法还包括:监控去抖动缓冲区是否发生设定事件,设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种;在去抖动缓冲区发生设定事件的情况下,增大去抖动缓冲区的缓冲时长。
在一可选实施例中,在根据源端的抖动延时初始化去抖动缓冲区的缓冲时长时,还可以考虑历史直播过程中的网络质量参数,简称为历史网络质量参数。基于此,一种初始化去抖动缓冲区的缓冲时长时的方式,包括:结合根据源端的抖动延时和历史网络质量参数,初始化去抖动缓冲区的缓冲时长。
在一可选实施例中,以变速方式将去抖动缓冲区中的直播内容渲染于直播界面上,包括:在增大去抖动缓冲区的缓冲时长的情况下,减速渲染去抖动缓冲区中的直播内容;在减小去抖动缓冲区的缓冲时长的情况下,加速渲染去抖动缓冲区中的直播内容。
进一步可选地,减速渲染去抖动缓冲区中的直播内容,包括:减小去抖动缓冲区中直播内容间的PTS间隔,并按照固定的读取速度从去抖动缓冲区中读取直播内容进行渲染。
进一步可选地,加速渲染去抖动缓冲区中的直播内容,包括:的缓冲时长增大去抖动缓冲区中直播内容间的PTS间隔,并按照固定的读取速度从去抖动缓冲区中读取直播内容进行渲染。
在一可选实施例中,该方法还包括:在增大或减小缓冲时长的情况下,在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息;其中,播放延时为缓冲时长。
进一步可选地,直播界面上设有显示开关控件,则在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量参数的变化信息,包括:响应于观看用户对显示开关控件的开启操作,在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息。
在一可选实施例中,在获取源端的抖动延时之前,还包括:获取本次直播要求的播放延时信息和/或隶属的直播场景,并确定所述播放延时信息要求播放延时低于设定的播放延时阈值和/或所述直播场景属于特定直播场景。
在一可选实施例中,本实施例提供的直播方法还包括:根据源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,向直播服务商推荐网络增值服务或网络改进建议,以供所述直播服务商提升网络服务质量。进一步可选地,网络增值服务为带宽购买服务或VIP服务。
在一可选实施例中,本实施例提供的直播方法还包括:在直播过程中,若出现播放延时大于设定的播放延时阈值的情况,则显示与即将直播的直播内容相关的过渡性内容,以等待即将直播的直播内容的加载。
在一可选实施例中,本实施例提供的直播方法还包括:将所述源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的网络质量参数发送给直播服务商和/或直播推流服务商,以供直播服务商和/或直播推流服务商改善对应的服务质量。
关于本实施例中各步骤的详细描述,可参见前述系统实施例,在此不再赘述。
在本实施例提供的直播方法中,播放端利用去抖动缓冲区解决延时抖动问题,在直播起始阶段,结合源端的抖动延时初始化去抖动缓冲区的缓冲时长,在直播过程中,至少结合播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长,让缓冲时长能够维持在合理水平上,使得去抖动缓冲区能够更好地抵抗较差网络和源端抖动,确保在播放流畅的情况下,让缓冲时长尽量小,降低观看延时。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201a至步骤202a的执行主体可以为设备A;又比如,步骤201a的执行主体可以为设备A,步骤202a的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图4a为本申请示例性实施例提供的一种播放器装置的结构示意图。如图4a所示,该装置包括:第一获取模块41、初始化模块42、第二获取模块43和动态调整模块44。
第一获取模块41,用于在直播起始阶段,获取源端的抖动延时。初始化模块42,用于根据第一获取模块41获取的源端的抖动延时初始化去抖动缓冲区的缓冲时长,去抖动缓冲区用于暂存源端提供的直播内容以等待播放。
第二获取模块43,用于在播放直播内容的过程中,获取播放端的抖动延时和当前网络质量参数。动态调整模块44,用于根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长。
在一可选实施例中,初始化模块42具体用于:结合根据源端的抖动延时和历史网络质量参数,初始化去抖动缓冲区的缓冲时长。
在一可选实施例中,动态调整模块44具体用于:按照设定的调整周期,根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长,并根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整。
进一步可选地,动态调整模块44在确定目标缓冲时长时,具体用于:根据播放端的抖动延时计算出第一缓冲时长,并根据当前网络质量参数计算出第二缓冲时长;从第一缓冲时长和第二缓冲时长中选择较大的一个,作为目标缓冲时长。
进一步可选地,动态调整模块44在对去抖动缓冲区的缓冲时长进行调整时,具体用于:若目标缓冲时长大于去抖动缓冲区的缓冲时长,则将去抖动缓冲区的缓冲时长调整为目标缓冲时长;若目标缓冲时长小于去抖动缓冲区的缓冲时长,则逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长。
进一步可选地,动态调整模块44在逐步减小去抖动缓冲区的缓冲时长时,具体用于:根据设定的向下调整幅度和/或向下调整频率,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,直至调整至目标缓冲时长或当前调整周期结束。
在一可选实施例中,如图4a所示,该装置还包括:监控模块45,用于监控去抖动缓冲区是否发生设定事件,设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种。动态调整模块44还用于:在去抖动缓冲区发生设定事件的情况下,增大去抖动缓冲区的缓冲时长。
进一步可选地,动态调整模块44还用于:在增大去抖动缓冲区的缓冲时长的情况下,减速播放去抖动缓冲区中的直播内容,以增大去抖动缓冲区的缓冲时长;在减小去抖动缓冲区的缓冲时长的情况下,加速播放去抖动缓冲区中的直播内容,以减小去抖动缓冲区的缓冲时长。
进一步可选地,动态调整模块44在减速播放去抖动缓冲区中的直播内容时,具体用于:减小去抖动缓冲区中直播内容间的显示时间戳PTS间隔,按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。
更进一步,动态调整模块44具体用于:在去抖动缓冲区中的直播内容之间插入相关数据,以减小去抖动缓冲区中直播内容间的PTS间隔。
进一步可选地,动态调整模块44在加速播放去抖动缓冲区中的直播内容时,具体用于:增大去抖动缓冲区中直播内容间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。
更进一步,动态调整模块44具体用于:对去抖动缓冲区中的直播内容进行压缩,以增大去抖动缓冲区中直播内容间的PTS间隔。
进一步可选地,第一获取模块41还用于:在获取源端的抖动延时之前,获取本次直播要求的播放延时信息和/或隶属的直播场景,并确定所述播放延时信息要求播放延时低于设定的播放延时阈值和/或所述直播场景属于特定直播场景。
进一步可选地,本实施例的播放器装置还包括:推荐模块,用于根据源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,向直播服务商推荐网络增值服务或网络改进建议,以供所述直播服务商提升网络服务质量。可选地,网络增值服务为带宽购买服务或VIP服务。
进一步可选地,本实施例的播放器装置还包括:显示控制模块,用于在直播过程中,若出现播放延时大于设定的播放延时阈值的情况,则显示与即将直播的直播内容相关的过渡性内容,以等待即将直播的直播内容的加载。
进一步可选地,第一获取模块41和第二获取模块43还用于:将所述源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的网络质量参数发送给直播服务商和/或直播推流服务商,以供直播服务商和/或直播推流服务商改善对应的服务质量。关于上述各模块所实现的功能,其详细描述可参见前述系统实施例和方法实施例,在此不再赘述。
以上描述了播放器装置的内部功能和结构,如图4b所示,实际中,该播放器装置可实现为终端设备,包括:存储器401、处理器402以及通信组件403。
存储器401,用于存储计算机程序,并可被配置为存储其它各种数据以支持在终端设备上的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器401可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器402,与存储器401耦合,用于执行存储器401中的计算机程序,以用于:
在直播起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的直播内容以等待播放;
在播放所述直播内容的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
在一可选实施例中,处理器402在初始化去抖动缓冲区的缓冲时长时,具体用于:结合根据源端的抖动延时和历史网络质量参数,初始化去抖动缓冲区的缓冲时长。
在一可选实施例中,处理器402在动态调整去抖动缓冲区的缓冲时长时,具体用于:按照设定的调整周期,根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长,并根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整。
进一步可选地,处理器402在确定目标缓冲时长时,具体用于:根据播放端的抖动延时计算出第一缓冲时长,并根据当前网络质量参数计算出第二缓冲时长;从第一缓冲时长和第二缓冲时长中选择较大的一个,作为目标缓冲时长。
进一步可选地,处理器402在对去抖动缓冲区的缓冲时长进行调整时,具体用于:若目标缓冲时长大于去抖动缓冲区的缓冲时长,则将去抖动缓冲区的缓冲时长调整为目标缓冲时长;若目标缓冲时长小于去抖动缓冲区的缓冲时长,则逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长。
进一步可选地,处理器402在逐步减小去抖动缓冲区的缓冲时长时,具体用于:根据设定的向下调整幅度和/或向下调整频率,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,直至调整至目标缓冲时长或当前调整周期结束。
在一可选实施例中,处理器402还用于监控去抖动缓冲区是否发生设定事件,设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种。相应地,处理器402还用于:在去抖动缓冲区发生设定事件的情况下,增大去抖动缓冲区的缓冲时长。
进一步可选地,处理器402还用于:在增大去抖动缓冲区的缓冲时长的情况下,减速播放去抖动缓冲区中的直播内容,以增大去抖动缓冲区的缓冲时长;在减小去抖动缓冲区的缓冲时长的情况下,加速播放去抖动缓冲区中的直播内容,以减小去抖动缓冲区的缓冲时长。
进一步可选地,处理器402在减速播放去抖动缓冲区中的直播内容时,具体用于:减小去抖动缓冲区中直播内容间的显示时间戳PTS间隔,按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。
更进一步,处理器402具体用于:在去抖动缓冲区中的直播内容之间插入相关数据,以减小去抖动缓冲区中直播内容间的PTS间隔。
进一步可选地,处理器402在加速播放去抖动缓冲区中的直播内容时,具体用于:增大去抖动缓冲区中直播内容间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取直播内容进行播放。
更进一步,处理器402具体用于:对去抖动缓冲区中的直播内容进行压缩,以增大去抖动缓冲区中直播内容间的PTS间隔。
进一步可选地,处理器402还用于:在获取源端的抖动延时之前,获取本次直播要求的播放延时信息和/或隶属的直播场景,并确定所述播放延时信息要求播放延时低于设定的播放延时阈值和/或所述直播场景属于特定直播场景。
进一步可选地,处理器402还用于根据源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,向直播服务商推荐网络增值服务或网络改进建议,以供所述直播服务商提升网络服务质量。可选地,网络增值服务为带宽购买服务或VIP服务。
进一步可选地,处理器402还用于在直播过程中,若出现播放延时大于设定的播放延时阈值的情况,则显示与即将直播的直播内容相关的过渡性内容,以等待即将直播的直播内容的加载。
进一步可选地,处理器402还用于:将所述源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的网络质量参数发送给直播服务商和/或直播推流服务商,以供直播服务商和/或直播推流服务商改善对应的服务质量。
进一步,如图4b所示,该终端设备还包括:显示器404、电源组件405、音频组件406等其它组件。图4b中仅示意性给出部分组件,并不意味着终端设备只包括图4b所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述图2a所示方法实施例中的各步骤。
本申请实施例还提供另一种终端设备,其与图4b所示终端设备的结构相同或相似,故不再图示。本实施例的终端设备与图4b所示终端设备的区别在于:处理器执行存储器中存储的计算机程序所实现的功能不同。本实施例的终端设备,其处理器执行存储器中存储的计算机程序,以用于:
响应于观看直播的触发操作,根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,并显示直播界面;接收源端发送的直播内容,将直播内容暂存于去抖动缓冲区中等待播放;以及在播放直播内容的过程中,若缓冲时长发生调整,则以变速方式将去抖动缓冲区中的直播内容渲染至直播界面上;其中,缓冲时长是根据播放端的抖动延时和当前网络质量参数进行调整的。
在一可选实施例中,处理器在以变速方式将去抖动缓冲区中的直播内容渲染于直播界面上时,具体用于:在增大去抖动缓冲区的缓冲时长的情况下,减速渲染去抖动缓冲区中的直播内容;在减小去抖动缓冲区的缓冲时长的情况下,加速渲染去抖动缓冲区中的直播内容。
在一可选实施例中,处理器在减速渲染去抖动缓冲区中的直播内容时,具体用于:减小去抖动缓冲区中直播内容间的PTS间隔,并按照固定的读取速度从去抖动缓冲区中读取直播内容进行渲染;
在一可选实施例中,处理器在加速渲染去抖动缓冲区中的直播内容时,具体用于:增大去抖动缓冲区中直播内容间的PTS间隔,并按照固定的读取速度从去抖动缓冲区中读取直播内容进行渲染。
进一步可选地,处理器还用于:在增大或减小缓冲时长的情况下,在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息;其中,播放延时为缓冲时长。
在一可选实施例中,直播界面上设有显示开关控件,则处理器具体用于:响应于观看用户对显示开关控件的开启操作,在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息。
在一可选实施例中,处理器还用于:监控去抖动缓冲区是否发生设定事件,设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种;在去抖动缓冲区发生设定事件的情况下,增大去抖动缓冲区的缓冲时长。
在一可选实施例中,处理器在根据源端的抖动延时初始化去抖动缓冲区的缓冲时长时,具体用于:根据源端的抖动延时和历史网络质量参数,初始化去抖动缓冲区的缓冲时长。
关于处理器所实现的各功能或操作的详细描述,可参见前述实施例,在此不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述图3所示方法实施例中的各步骤。
本申请实施例还提供另一种终端设备,其与图4b所示终端设备的结构相同或相似,故不再图示。本实施例的终端设备与图4b所示终端设备的区别在于:处理器执行存储器中存储的计算机程序所实现的功能不同。本实施例的终端设备,其处理器执行存储器中存储的计算机程序,以用于:
在播放起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的音视频数据以等待播放;
在播放所述音视频数据的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
在一可选实施例中,处理器在初始化去抖动缓冲区的缓冲时长时时,具体用于:结合根据源端的抖动延时和历史网络质量参数,初始化去抖动缓冲区的缓冲时长。
在一可选实施例中,处理器在根据播放端的抖动延时和当前网络质量参数,动态调整去抖动缓冲区的缓冲时长时,具体用于:按照设定的调整周期,根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长,并根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整。
进一步可选地,处理器在根据播放端的抖动延时和当前网络质量参数确定目标缓冲时长时,具体用于:根据播放端的抖动延时计算出第一缓冲时长,并根据当前网络质量参数计算出第二缓冲时长;从第一缓冲时长和第二缓冲时长中选择较大的一个,作为目标缓冲时长。
进一步可选地,处理器在根据目标缓冲时长对去抖动缓冲区的缓冲时长进行调整时,具体用于:若目标缓冲时长大于去抖动缓冲区的缓冲时长,则将去抖动缓冲区的缓冲时长调整为目标缓冲时长;若目标缓冲时长小于去抖动缓冲区的缓冲时长,则逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长。
进一步可选地,处理器在逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长时,具体用于:根据设定的向下调整幅度和/或向下调整频率,逐步减小去抖动缓冲区的缓冲时长,以靠近目标缓冲时长,直至调整至目标缓冲时长或当前调整周期结束。
在一可选实施例中,处理器还用于:监控去抖动缓冲区是否发生设定事件,设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种;在去抖动缓冲区发生设定事件的情况下,增大去抖动缓冲区的缓冲时长。
进一步可选地,处理器还用于:在增大去抖动缓冲区的缓冲时长的情况下,减速播放去抖动缓冲区中的音视频数据,以增大去抖动缓冲区的缓冲时长;以及,在减小去抖动缓冲区的缓冲时长的情况下,加速播放去抖动缓冲区中的音视频数据,以减小去抖动缓冲区的缓冲时长。
进一步可选地,处理器在减速播放去抖动缓冲区中的音视频数据时,具体用于:减小去抖动缓冲区中音视频数据间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取音视频数据进行播放。
更进一步,处理器在减小去抖动缓冲区中音视频数据间的PTS间隔时,具体用于:在去抖动缓冲区中的音视频数据之间插入相关数据,以减小去抖动缓冲区中音视频数据间的PTS间隔。
进一步可选地,处理器在加速播放去抖动缓冲区中的音视频数据时,具体用于:增大去抖动缓冲区中音视频数据间的PTS间隔,按照固定的读取速度从去抖动缓冲区中读取音视频数据进行播放。
更进一步,处理器在增大去抖动缓冲区中音视频数据间的PTS间隔时,具体用于:对去抖动缓冲区中的音视频数据进行压缩,以增大去抖动缓冲区中音视频数据间的PTS间隔。
在一可选实施例中,处理器在获取获取源端的抖动延时之前,还用于:获取本次直播要求的播放延时信息和/或隶属的播放场景,并确定所述播放延时信息要求播放延时低于设定的播放延时阈值和/或所述播放场景属于特定播放场景。
在一可选实施例中,处理器还用于:根据源端的抖动延时、播放过程中播放端的抖动延时和/或播放过程中的络质量参数,向音视频服务商推荐网络增值服务或网络改进建议,以供所述音视频服务商提升网络服务质量。进一步可选地,网络增值服务为带宽购买服务或VIP服务。
在一可选实施例中,处理器还用于:在播放音视频过程中,若出现播放延时大于设定的播放延时阈值的情况,则显示与即将播放的音视频数据相关的过渡性内容,以等待即将播放的音视频数据的加载。
在一可选实施例中,处理器还用于:将所述源端的抖动延时、播放过程中播放端的抖动延时和/或播放过程中的网络质量参数发送给音视频服务商和/或音视频推流服务商,以供音视频服务商和/或音视频推流服务商改善对应的服务质量。
关于本实施例中上述各操作的详细描述,可参见前述系统实施例,在此不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述图2b所示方法实施例中的各步骤。
上述实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述实施例中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述实施例中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (26)
1.一种直播去抖动的智能缓存方法,其特征在于,包括:
在直播起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的直播内容以等待播放;
在播放所述直播内容的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
2.根据权利要求1所述的方法,其特征在于,根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长,包括:
按照设定的调整周期,根据所述播放端的抖动延时和所述当前网络质量参数确定目标缓冲时长,并根据所述目标缓冲时长对所述去抖动缓冲区的缓冲时长进行调整。
3.根据权利要求2所述的方法,其特征在于,根据所述播放端的抖动延时和所述当前网络质量参数确定目标缓冲时长,包括:
根据所述播放端的抖动延时计算出第一缓冲时长,并根据所述当前网络质量参数计算出第二缓冲时长;
从所述第一缓冲时长和所述第二缓冲时长中选择较大的一个,作为目标缓冲时长。
4.根据权利要求2所述的方法,其特征在于,根据所述目标缓冲时长对所述去抖动缓冲区的缓冲时长进行调整,包括:
若所述目标缓冲时长大于所述去抖动缓冲区的缓冲时长,则将所述去抖动缓冲区的缓冲时长调整为所述目标缓冲时长;
若所述目标缓冲时长小于所述去抖动缓冲区的缓冲时长,则逐步减小所述去抖动缓冲区的缓冲时长,以靠近所述目标缓冲时长。
5.根据权利要求4所述的方法,其特征在于,逐步减小所述去抖动缓冲区的缓冲时长,以靠近所述目标缓冲时长,包括:
根据设定的向下调整幅度和/或向下调整频率,逐步减小所述去抖动缓冲区的缓冲时长,以靠近所述目标缓冲时长,直至调整至所述目标缓冲时长或当前调整周期结束。
6.根据权利要求1所述的方法,其特征在于,还包括:
监控所述去抖动缓冲区是否发生设定事件,所述设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种;
在所述去抖动缓冲区发生设定事件的情况下,增大所述去抖动缓冲区的缓冲时长。
7.根据权利要求4-6任一项所述的方法,其特征在于,还包括:
在增大所述去抖动缓冲区的缓冲时长的情况下,减速播放所述去抖动缓冲区中的直播内容,以增大所述去抖动缓冲区的缓冲时长;
在减小所述去抖动缓冲区的缓冲时长的情况下,加速播放所述去抖动缓冲区中的直播内容,以减小所述去抖动缓冲区的缓冲时长。
8.根据权利要求7所述的方法,其特征在于,
减速播放所述去抖动缓冲区中的直播内容,包括:减小所述去抖动缓冲区中直播内容间的显示时间戳PTS间隔,按照固定的读取速度从所述去抖动缓冲区中读取直播内容进行播放;
加速播放所述去抖动缓冲区中的直播内容,包括:增大所述去抖动缓冲区中直播内容间的PTS间隔,按照固定的读取速度从所述去抖动缓冲区中读取直播内容进行播放。
9.根据权利要求8所述的方法,其特征在于,
减小所述去抖动缓冲区中直播内容间的PTS间隔,包括:在所述去抖动缓冲区中的直播内容之间插入相关数据,以减小所述去抖动缓冲区中直播内容间的PTS间隔;
增大所述去抖动缓冲区中直播内容间的PTS间隔,包括:对所述去抖动缓冲区中的直播内容进行压缩,以增大所述去抖动缓冲区中直播内容间的PTS间隔。
10.根据权利要求1-6任一项所述的方法,其特征在于,根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,包括:
结合根据所述源端的抖动延时和历史网络质量参数,初始化所述去抖动缓冲区的缓冲时长。
11.根据权利要求1-6任一项所述的方法,其特征在于,在获取源端的抖动延时之前,还包括:
获取本次直播要求的播放延时信息和/或隶属的直播场景,并确定所述播放延时信息要求播放延时低于设定的播放延时阈值和/或所述直播场景属于特定直播场景。
12.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
根据源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的络质量参数,向直播服务商推荐网络增值服务或网络改进建议,以供所述直播服务商提升网络服务质量。
13.根据权利要求12所述的方法,其特征在于,所述网络增值服务为带宽购买服务或VIP服务。
14.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
在直播过程中,若出现播放延时大于设定的播放延时阈值的情况,则显示与即将直播的直播内容相关的过渡性内容,以等待即将直播的直播内容的加载。
15.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
将所述源端的抖动延时、直播过程中播放端的抖动延时和/或直播过程中的网络质量参数发送给直播服务商和/或直播推流服务商,以供直播服务商和/或直播推流服务商改善对应的服务质量。
16.一种直播方法,其特征在于,包括:
响应于观看直播的触发操作,根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,并显示直播界面;
接收所述源端发送的直播内容,将所述直播内容暂存于所述去抖动缓冲区中等待播放;以及
在播放所述直播内容的过程中,若所述缓冲时长发生调整,则以变速方式将所述去抖动缓冲区中的直播内容渲染至所述直播界面上;
其中,所述缓冲时长是根据播放端的抖动延时和当前网络质量参数进行调整的。
17.根据权利要求16所述的方法,其特征在于,以变速方式将所述去抖动缓冲区中的直播内容渲染于所述直播界面上,包括:
在增大所述去抖动缓冲区的缓冲时长的情况下,减速渲染所述去抖动缓冲区中的直播内容;
在减小所述去抖动缓冲区的缓冲时长的情况下,加速渲染所述去抖动缓冲区中的直播内容。
18.根据权利要求17所述的方法,其特征在于,减速渲染所述去抖动缓冲区中的直播内容,包括:减小所述去抖动缓冲区中直播内容间的PTS间隔,并按照固定的读取速度从所述去抖动缓冲区中读取直播内容进行渲染;
加速渲染所述去抖动缓冲区中的直播内容,包括:增大所述去抖动缓冲区中直播内容间的PTS间隔,并按照固定的读取速度从所述去抖动缓冲区中读取直播内容进行渲染。
19.根据权利要求17所述的方法,其特征在于,还包括:
在增大或减小所述缓冲时长的情况下,在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息;其中,所述播放延时为所述缓冲时长。
20.根据权利要求19所述的方法,其特征在于,所述直播界面上设有显示开关控件,则在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量参数的变化信息,包括:
响应于观看用户对所述显示开关控件的开启操作,在直播界面上显示播放速度的变化信息,播放延时的变化信息,和/或,当前网络质量的变化信息。
21.根据权利要求16-20任一项所述的方法,其特征在于,还包括:
监控所述去抖动缓冲区是否发生设定事件,所述设定事件包括丢帧事件、无数据事件、卡顿事件中的至少一种;
在所述去抖动缓冲区发生设定事件的情况下,增大所述去抖动缓冲区的缓冲时长。
22.根据权利要求16-20任一项所述的方法,其特征在于,根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,包括:
根据所述源端的抖动延时和历史网络质量参数,初始化所述去抖动缓冲区的缓冲时长。
23.一种音视频播放方法,其特征在于,包括:
在播放起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的音视频数据以等待播放;
在播放所述音视频数据的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
24.一种终端设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
在直播起始阶段,获取源端的抖动延时,并根据所述源端的抖动延时初始化去抖动缓冲区的缓冲时长,所述去抖动缓冲区用于暂存源端提供的直播内容以等待播放;
在播放所述直播内容的过程中,获取播放端的抖动延时和当前网络质量参数,并根据所述播放端的抖动延时和当前网络质量参数,动态调整所述去抖动缓冲区的缓冲时长。
25.一种终端设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
响应于观看直播的触发操作,根据源端的抖动延时初始化去抖动缓冲区的缓冲时长,并显示直播界面;
接收所述源端发送的直播内容,将所述直播内容暂存于所述去抖动缓冲区中等待播放;以及
在播放所述直播内容的过程中,若所述缓冲时长发生调整,则以变速方式将所述去抖动缓冲区中的直播内容渲染至所述直播界面上;
其中,所述缓冲时长是根据播放端的抖动延时和当前网络质量参数进行调整的。
26.一种存储有计算机程序的计算机存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求1-23任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011597185.0A CN112822502B (zh) | 2020-12-28 | 2020-12-28 | 直播去抖动的智能缓存与直播方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011597185.0A CN112822502B (zh) | 2020-12-28 | 2020-12-28 | 直播去抖动的智能缓存与直播方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822502A true CN112822502A (zh) | 2021-05-18 |
CN112822502B CN112822502B (zh) | 2022-06-07 |
Family
ID=75855968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011597185.0A Active CN112822502B (zh) | 2020-12-28 | 2020-12-28 | 直播去抖动的智能缓存与直播方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822502B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645477A (zh) * | 2021-08-09 | 2021-11-12 | 杭州米络星科技(集团)有限公司 | 直播数据处理方法、装置、直播客户端设备及存储介质 |
CN113766261A (zh) * | 2021-09-06 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种确定预拉取时长方法、装置、电子设备及存储介质 |
CN114697695A (zh) * | 2022-03-28 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 直播数据推送方法、装置、设备及存储介质 |
CN114979091A (zh) * | 2022-07-28 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
CN115567734A (zh) * | 2022-09-22 | 2023-01-03 | 新国脉数字文化股份有限公司 | 一种5g高清视频的播放系统及方法 |
WO2024056095A1 (zh) * | 2022-09-16 | 2024-03-21 | 杭州阿里云飞天信息技术有限公司 | 云服务的视频显示方法、装置、设备、存储介质和系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549504A (zh) * | 2003-05-07 | 2004-11-24 | ��Ϊ��������˾ | 在抖动预知的网络中实现抖动抵抗的方法 |
CN101583025A (zh) * | 2009-06-11 | 2009-11-18 | 中兴通讯股份有限公司 | 一种流媒体播放方法及装置 |
US20110142140A1 (en) * | 2009-12-16 | 2011-06-16 | Sony Corporation | Transmitting apparatus and method, and receiving apparatus and method |
CN103533451A (zh) * | 2013-09-30 | 2014-01-22 | 广州华多网络科技有限公司 | 抖动缓存调节方法及其系统 |
CN105142002A (zh) * | 2015-08-07 | 2015-12-09 | 广州博冠信息科技有限公司 | 音/视频直播方法、装置及控制方法、装置 |
CN105392023A (zh) * | 2015-10-29 | 2016-03-09 | 深圳云聚汇数码有限公司 | 一种网络抖动环境下的视频直播方法及装置 |
CN106331835A (zh) * | 2015-06-26 | 2017-01-11 | 成都鼎桥通信技术有限公司 | 一种动态调整数据接收缓存的方法及视频解码设备 |
US20170086250A1 (en) * | 2015-09-18 | 2017-03-23 | Whatsapp Inc. | Techniques to dynamically configure jitter buffer sizing |
CN110620793A (zh) * | 2019-10-31 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种提高音频质量的方法、设备及介质 |
CN111294634A (zh) * | 2020-02-27 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 直播方法、装置、系统、设备及计算机可读存储介质 |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-28 CN CN202011597185.0A patent/CN112822502B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549504A (zh) * | 2003-05-07 | 2004-11-24 | ��Ϊ��������˾ | 在抖动预知的网络中实现抖动抵抗的方法 |
CN101583025A (zh) * | 2009-06-11 | 2009-11-18 | 中兴通讯股份有限公司 | 一种流媒体播放方法及装置 |
US20110142140A1 (en) * | 2009-12-16 | 2011-06-16 | Sony Corporation | Transmitting apparatus and method, and receiving apparatus and method |
CN103533451A (zh) * | 2013-09-30 | 2014-01-22 | 广州华多网络科技有限公司 | 抖动缓存调节方法及其系统 |
CN106331835A (zh) * | 2015-06-26 | 2017-01-11 | 成都鼎桥通信技术有限公司 | 一种动态调整数据接收缓存的方法及视频解码设备 |
CN105142002A (zh) * | 2015-08-07 | 2015-12-09 | 广州博冠信息科技有限公司 | 音/视频直播方法、装置及控制方法、装置 |
US20170086250A1 (en) * | 2015-09-18 | 2017-03-23 | Whatsapp Inc. | Techniques to dynamically configure jitter buffer sizing |
CN105392023A (zh) * | 2015-10-29 | 2016-03-09 | 深圳云聚汇数码有限公司 | 一种网络抖动环境下的视频直播方法及装置 |
CN110620793A (zh) * | 2019-10-31 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种提高音频质量的方法、设备及介质 |
CN111294634A (zh) * | 2020-02-27 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 直播方法、装置、系统、设备及计算机可读存储介质 |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645477A (zh) * | 2021-08-09 | 2021-11-12 | 杭州米络星科技(集团)有限公司 | 直播数据处理方法、装置、直播客户端设备及存储介质 |
CN113766261A (zh) * | 2021-09-06 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种确定预拉取时长方法、装置、电子设备及存储介质 |
CN114697695A (zh) * | 2022-03-28 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 直播数据推送方法、装置、设备及存储介质 |
CN114697695B (zh) * | 2022-03-28 | 2024-03-08 | 阿里巴巴(中国)有限公司 | 直播数据推送方法、装置、设备及存储介质 |
CN114979091A (zh) * | 2022-07-28 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
CN114979091B (zh) * | 2022-07-28 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
WO2024056095A1 (zh) * | 2022-09-16 | 2024-03-21 | 杭州阿里云飞天信息技术有限公司 | 云服务的视频显示方法、装置、设备、存储介质和系统 |
CN115567734A (zh) * | 2022-09-22 | 2023-01-03 | 新国脉数字文化股份有限公司 | 一种5g高清视频的播放系统及方法 |
CN115567734B (zh) * | 2022-09-22 | 2023-06-13 | 新国脉数字文化股份有限公司 | 一种5g高清视频的播放系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112822502B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112822502B (zh) | 直播去抖动的智能缓存与直播方法、设备及存储介质 | |
US11651794B2 (en) | Variable speed playback | |
US9047236B2 (en) | Client side stream switching | |
US9143810B2 (en) | Method for manually optimizing jitter, delay and synch levels in audio-video transmission | |
US8719883B2 (en) | Stream transmission server and stream transmission system | |
US10638180B1 (en) | Media timeline management | |
WO2022219363A1 (en) | Switching between transmitting a preauthored video frame and a composited video frame | |
US8904453B2 (en) | Systems and methods for seamlessly switching between media streams | |
CN101232611B (zh) | 图像处理设备及其方法 | |
CN113141514A (zh) | 媒体流传输方法、系统、装置、设备及存储介质 | |
US20240121455A1 (en) | Method, apparatus, electronic device and storage medium for video bitrate switching | |
US20130166769A1 (en) | Receiving device, screen frame transmission system and method | |
US20220295127A1 (en) | Consolidating content streams to conserve bandwidth | |
US10924786B2 (en) | Method for shaping video streams and set-up box using the method | |
EP3371978B1 (en) | Contiguous streaming of media stream | |
CN114554277A (zh) | 多媒体的处理方法、装置、服务器及计算机可读存储介质 | |
US11647063B2 (en) | Method and apparatus for presentation of video content | |
CN117499688B (zh) | 直播连麦中音视频合流处理方法、设备及存储介质 | |
WO2022211786A1 (en) | System and method for data communication | |
CN115604496A (zh) | 一种显示设备、直播切台方法及存储介质 | |
WO2021076173A1 (en) | Methods, systems, and media for streaming video content using adaptive buffers |
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 |