CN109379620A - 音视频缓冲方法和装置 - Google Patents

音视频缓冲方法和装置 Download PDF

Info

Publication number
CN109379620A
CN109379620A CN201811440724.2A CN201811440724A CN109379620A CN 109379620 A CN109379620 A CN 109379620A CN 201811440724 A CN201811440724 A CN 201811440724A CN 109379620 A CN109379620 A CN 109379620A
Authority
CN
China
Prior art keywords
rtt
data packet
value
audio
smooth
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
Application number
CN201811440724.2A
Other languages
English (en)
Other versions
CN109379620B (zh
Inventor
罗凯宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Sisanjiujiu Information Technology Co Ltd
Original Assignee
Guangzhou Sisanjiujiu Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Sisanjiujiu Information Technology Co Ltd filed Critical Guangzhou Sisanjiujiu Information Technology Co Ltd
Priority to CN201811440724.2A priority Critical patent/CN109379620B/zh
Publication of CN109379620A publication Critical patent/CN109379620A/zh
Application granted granted Critical
Publication of CN109379620B publication Critical patent/CN109379620B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种音视频缓冲方法和装置,涉及流媒体技术领域,该方法包括:接收音视频数据流;提取音视频数据流中的数据包,数据包包括音频数据包和视频数据包;将音频数据包和视频数据包放入各自的解码队列;对音频数据包和视频数据包,分别计算平滑RTT值和平滑JITTER值;根据平滑RTT值和平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间;根据接收时间,对解码队列中的音频数据包和视频数据包进行延时解码。本发明提供的音视频缓冲方法和装置,可以使播放器能平滑、连续、同步地播放音视频媒体流。

Description

音视频缓冲方法和装置
技术领域
本发明涉及流媒体技术领域,尤其是涉及一种音视频缓冲方法和装置。
背景技术
互联网环境可以分为两种,一种是广域网,另一种是局域网,数据包在广域网上的传输效率比局域网低得多。在局域网中,网络环境十分简单,在一个网关(路由器)下形成一个网络或一个子网,其下面连接着数十台或数百台主机,主机之间通过这个网关互相传输数据,效率十分高。但在广域网下,网络环境就变得十分复杂,它由成百上千个网关节点互相连接而成的一个庞大的网络,其中还包含防火墙,代理等一些特殊的节点,数据包从某个子网下的主机传输到另一端子网的主机,中间会经过若干个这些节点,在传输过程中,数据包在每个传输节点的处理都会带来延迟,而且很可能还会丢失(丢失原因有很多,例如节点处理不过来,缓冲队列满了,防火墙过滤等),所以流媒体数据在这样的环境下传输会有延迟,造成流媒体数据的传输率跟不上播放率导致播放卡顿,声画不同步。
发明内容
有鉴于此,本发明的目的在于提供一种音视频缓冲方法和装置,以减少直播时缓冲、卡顿和声画不同步的发生。
第一方面,本发明实施例提供了一种音视频缓冲方法,应用于客户端,该方法包括:接收音视频数据流;提取音视频数据流中的数据包,数据包包括音频数据包和视频数据包;将音频数据包和视频数据包放入各自的解码队列;对音频数据包和视频数据包,分别计算平滑RTT值和平滑JITTER值;根据平滑RTT值和平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间;根据接收时间,对解码队列中的音频数据包和视频数据包进行延时解码。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,计算平滑RTT值包括:根据接收的每个数据包的RTT,计算RTT的平均值U以及RTT的均方差值V;通过对新接收的数据包的RTT、平均值U和均方差值V进行加权计算,获得当前RTT;根据当前RTT和上次计算的平均RTT更新当前的平均RTT,将当前的平均RTT作为平滑RTT值。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,通过对新接收的数据包的RTT、平均值U和均方差值V进行加权平滑计算,获得当前RTT包括:当新接收到数据包时,如果RTT-U<0,则当前RTT为U-((7*V)/8+(|RTT-U|)/8);如果RTT-U>0,则当前RTT为U+((7*V)/8+(|RTT-U|)/8)。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,计算平滑JITTER值包括:根据两个相邻的数据包的RTT计算JITTER;根据每个JITTER,计算JITTER的平均值M以及JITTER的均方差值N;通过对新接收的数据包的JITTER、平均值M和均方差值N进行加权计算,获得当前JITTER;根据当前JITTER和上次计算的平均JITTER更新当前的平均JITTER,将当前的平均JITTER作为平滑JITTER值。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,根据平滑RTT值和平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间包括:根据解码延迟和渲染延迟计算预计播放时间内可解码播放的数据包的数量;根据平滑RTT值、平滑JITTER值和数量计算接收时间。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,还包括:当音频数据包或视频数据包的RTT超过阈值范围时,丢弃RTT。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,还包括:在等待接收时间后,未收到满足缓冲数量的数据包时,进行指数退避;当超过上限值时,丢弃过时的数据包并缓冲最新的数据包;或,重新进行拉流连接。
第二方面,本发明实施例还提供一种音视频缓冲装置,应用于客户端,包括:接收模块,用于接收音视频数据流;提取模块,用于提取音视频数据流中的数据包,数据包包括音频数据包和视频数据包;解码队列模块,用于将音频数据包和视频数据包放入各自的解码队列;延迟计算模块,用于对音频数据包和视频数据包,分别计算平滑RTT值和平滑JITTER值;接收时间计算模块,用于根据平滑RTT值和平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间;延时解码模块,用于根据接收时间,对解码队列中的音频数据包和视频数据包进行延时解码。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,延迟计算模块还用于:根据接收的每个数据包的RTT,计算RTT的平均值U以及RTT的均方差值V;通过对新接收的数据包的RTT、平均值U和均方差值V进行加权计算,获得当前RTT;根据当前RTT和上次计算的平均RTT更新当前的平均RTT,将当前的平均RTT作为平滑RTT值。
结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,延迟计算模块还用于:当新接收到数据包时,如果RTT-U<0,则当前RTT为U-((7*V)/8+(|RTT-U|)/8);如果RTT-U>0,则当前RTT为U+((7*V)/8+(|RTT-U|)/8)。
本发明实施例带来了以下有益效果:本发明实施例提供的音视频缓冲方法和装置,对音视频数据流中的音频数据包和视频数据包,可以分别动态计算平滑RTT值和平滑JITTER值,从而动态计算满足客户端需要的缓冲数量的数据包所需的接收时间,让播放器根据该接收时间延时进行解码播放,从而减少直播时缓冲、卡顿和声画不同步的发生,使播放器能平滑、连续、同步地播放音视频媒体流。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种音视频缓冲方法的流程示意图;
图2为本发明实施例提供的一种音视频缓冲方法的步骤S15的流程示意图;
图3为本发明实施例提供的一种音视频缓冲装置的结构示意图;
图4为本发明实施例提供的另一种音视频缓冲装置的结构示意图;
图5为本发明实施例提供的另一种音视频缓冲装置的结构示意图;
图6为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前在广域网中进行数据传输过程中,流媒体数据包在每个传输节点的处理都会带来延迟,甚至丢失,造成流媒体数据的传输率跟不上播放率导致播放卡顿,声画不同步。基于此,本发明实施例提供的一种音视频缓冲方法和装置,可以减少缓冲、播放卡顿和声画不同步的出现,连续、同步地播放音视频媒体流。为便于对本实施例进行理解,首先对本发明实施例所公开的一种音视频缓冲方法进行详细介绍。
实施例1
本发明实施例1提供了一种音视频缓冲方法,应用于客户端,参见图1所示的音视频缓冲方法的流程示意图,包括如下步骤:
步骤S11,接收音视频数据流。
客户端连接媒体服务器,两者之间使用UDP(User Datagram Protocol,用户数据报协议),TCP(Transmission Control Protocol,传输控制协议),RTMP(Real TimeMessaging Protocol,实时消息传输协议),RTSP(Real Time Streaming Protocol,实时流传输协议)等协议进行推流和拉流。在本实施例中,以直播客户端为例进行说明。具体地,直播主播端采集音视频流,将其编码后合成一路RTMP流推给服务器,服务器再通过RTMP协议透传给观众的客户端。
步骤S12,提取音视频数据流中的数据包。
其中,数据包包括音频数据包和视频数据包。客户端接收到RTMP数据流后,从数据流中分别提取音频数据包和视频数据包。在本实施例中,以音频数据包和视频数据包在同一路中传输为例,即音频数据包和视频数据包按照其capture timestamp(捕获时间戳)和duration值(持续时间值)编排好顺序合到一路RTMP流中传输。
步骤S13,将音频数据包和视频数据包放入各自的解码队列。
在提取音视频数据流中的音频数据包和视频数据包之后,将其分别放入到各自的解码队列中等待解码播放。
步骤S14,对音频数据包和视频数据包,分别计算平滑RTT值和平滑JITTER值。
由于音频数据包和视频数据包在同一路中传输的,因此在计算RTT(Round-TripTime,往返时延)和JITTER值(抖动值)时要做跳包处理。具体处理方式如下:
例如RTMP流是按照audio-audio-video-audio-audio-video-...排列,由于音频包体大小远小于视频包体大小,在传输时间上,音频包的传输速度要远高于视频。因此在计算audio的RTT和JITTER值时,连续的2个audio包可以直接计算,但计算第三个audio时,因为中间隔了一个video包,所以在计算时,要跳过这个video包的耗时进行计算。视频包的RTT和JITTER计算也是同理,而且解码时并不需要同步两者计算出来的jitter delay即可立即解码播放。
在接收数据包的过程中,客户端会不断收集并计算音频数据包和视频数据包各自的RTT和JITTER值,并利用均方差的计算方式做离散平滑计算,得到平滑RTT值和平滑JITTER值。
步骤S15,根据平滑RTT值和平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间。
具体地,根据平滑RTT值和平滑JITTER值就可以预估出要收取N个音视频数据包,大概需要的时长。上述N值的计算是通过解码器的解码延迟和播放器渲染延迟进行的,请参阅图2,步骤S15可以包括:
步骤S21,根据解码延迟和渲染延迟计算预计播放时间内可解码播放的数据包的数量;
步骤S22,根据平滑RTT值、平滑JITTER值和数量计算接收时间。
其中,客户端可以收集其解码器的解码延迟和播放器渲染延迟,从而计算出单位时间内可解码播放的数据包量,再结合需要流畅播放的时间就可以计算出数据包总量N。例如直播的视频播放帧率为30f/s,要流程播放5秒钟所需求的N=30*5-30*(x+y),x代表解码延迟,y代表渲染延迟,结合步骤S14计算出的平滑RTT值和平滑JITTER值,就能计算出要让客户端的播放器能平滑播放5秒所需要的音视频包量N需要的接收时间T=N*(6*avgRTT+2*avgJITTER)/8。
步骤S16,根据接收时间,对解码队列中的音频数据包和视频数据包进行延时解码。
在得到接收时间后,客户端播放器可以进行抖动延迟,让解码器不立即进行音视频包解码,而是在这个时间中缓冲等待,等待时长达到该接收时间后,解码器才开始解码播放,这样就能减少卡顿、音画不同步、不连续的问题。
本发明实施例提供的音视频缓冲方法,对音视频数据流中的音频数据包和视频数据包,可以分别动态计算平滑RTT值和平滑JITTER值,从而动态计算满足客户端需要的缓冲数量的数据包所需的接收时间,让播放器根据该接收时间延时进行解码播放,从而减少直播时缓冲、卡顿和声画不同步的发生,使播放器能平滑、连续、同步地播放音视频媒体流。
进一步,上述计算平滑RTT值可以包括以下步骤:
(1)根据接收的每个数据包的RTT,计算RTT的平均值U以及RTT的均方差值V。
其中,客户端会先对audio和video分别统计出各自的RTT平均值,每多得到一个数据包,RTT平均值就会更新,即平均值一直保持计算,平均值表示为U。计算最新(RTT-U)的平方和并一直保存,并计算最新的均方差值,均方差值表示为V。
(2)通过对新接收的数据包的RTT、平均值U和均方差值V进行加权计算,获得当前RTT。
当新接收到数据包时,如果RTT-U<0,则newRTT为U-((7*V)/8+(|RTT-U|)/8);如果RTT-U>0,则newRTT为U+((7*V)/8+(|RTT-U|)/8)。在上述公式中的系数7/8,1/8是人为经验设置,也可以根据具体情况适当更改,考虑到均方差值V属于比较客观的参数,因此在计算公式中取较大比例,新接收的数据包的RTT取较小比例。
(3)根据当前RTT和上次计算的平均RTT更新当前的平均RTT,将当前的平均RTT作为平滑RTT值。
具体地,平均RTT根据以下公式计算:avgRTT=(preRTT+newRTT)/2,其中preRTT表示上次计算的平均RTT。
与计算平滑RTT值类似,上述计算平滑JITTER值可以包括以下步骤:
(1)根据两个相邻的数据包的RTT计算JITTER。
具体地,通过JITTER=RTTn-RTT(n-1)计算JITTER。
(2)根据每个JITTER,计算JITTER的平均值M以及JITTER的均方差值N。
(3)通过对新接收的数据包的JITTER、平均值M和均方差值N进行加权计算,获得当前JITTER。
(4)根据当前JITTER和上次计算的平均JITTER更新当前的平均JITTER,将当前的平均JITTER作为平滑JITTER值。
考虑到网络可能出现突发异常,比如出现短时间内,接收到某些数据包的异常RTT,需要丢弃这些异常的特殊值,以免干扰平均稳定的离散值统计。因此,上述方法还包括:当音频数据包或视频数据包的RTT超过阈值范围时,丢弃RTT。
进一步,上述方法还包括:
在等待接收时间后,未收到满足缓冲数量的数据包时,进行指数退避;
当超过上限值时,丢弃过时的数据包并缓冲最新的数据包;或,重新进行拉流连接。
当网络处于弱网络环境下,客户端等待抖动延迟时长后,并没有等待到理想的数据量时,会进行指数退避,以免在无效超长延迟中等待下去。在超出缓冲值范围后,会丢弃过时的数据包,并缓冲最新的音视频数据。必要时,会让播放器重新进行与媒体服务器的拉流连接。
本发明实施例提供的音视频缓冲方法,通过动态计算出有效的缓冲时长,让客户端能灵活动态地进行解码播放,在尽量少地牺牲缓冲带来的延迟来保证播放器能平滑,连续,同步地播放音视频媒体流。
实施例2
本发明实施例2提供了一种音视频缓冲装置,应用于客户端,参见图3所示的结构示意图,包括以下模块:
接收模块310,用于接收音视频数据流;
提取模块320,用于提取音视频数据流中的数据包,数据包包括音频数据包和视频数据包;
解码队列模块330,用于将音频数据包和视频数据包放入各自的解码队列;
延迟计算模块340,用于对音频数据包和视频数据包,分别计算平滑RTT值和平滑JITTER值;
接收时间计算模块350,用于根据平滑RTT值和平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间;
延时解码模块360,用于根据接收时间,对解码队列中的音频数据包和视频数据包进行延时解码。
具体地,延迟计算模块340还用于:
根据接收的每个数据包的RTT,计算RTT的平均值U以及RTT的均方差值V;通过对新接收的数据包的RTT、平均值U和均方差值V进行加权计算,获得当前RTT;根据当前RTT和上次计算的平均RTT更新当前的平均RTT,将当前的平均RTT作为平滑RTT值。
进一步,延迟计算模块340还用于:
当新接收到数据包时,如果RTT-U<0,则当前RTT为U-((7*V)/8+(|RTT-U|)/8);如果RTT-U>0,则当前RTT为U+((7*V)/8+(|RTT-U|)/8)。
进一步,延迟计算模块340还用于:
根据两个相邻的数据包的RTT计算JITTER;根据每个JITTER,计算JITTER的平均值M以及JITTER的均方差值N;通过对新接收的数据包的JITTER、平均值M和均方差值N进行加权计算,获得当前JITTER;根据当前JITTER和上次计算的平均JITTER更新当前的平均JITTER,将当前的平均JITTER作为平滑JITTER值。
接收时间计算模块350还用于:
根据解码延迟和渲染延迟计算预计播放时间内可解码播放的数据包的数量;根据平滑RTT值、平滑JITTER值和数量计算接收时间。
参见图4所示的结构示意图,上述装置还包括:
丢弃模块410,用于当音频数据包或视频数据包的RTT超过阈值范围时,丢弃RTT。
参见图5所示的结构示意图,上述装置还包括刷新模块510,用于:在等待接收时间后,未收到满足缓冲数量的数据包时,进行指数退避;当超过上限值时,丢弃过时的数据包并缓冲最新的数据包;或,重新进行拉流连接。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
参见图6,本发明实施例还提供一种终端100,包括:处理器60,存储器61,总线62和通信接口63,处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。
其中,存储器61可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线62可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器61用于存储程序,处理器60在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的进行移动应用的运行方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种音视频缓冲方法,其特征在于,应用于客户端,所述方法包括:
接收音视频数据流;
提取所述音视频数据流中的数据包,所述数据包包括音频数据包和视频数据包;
将所述音频数据包和所述视频数据包放入各自的解码队列;
对所述音频数据包和所述视频数据包,分别计算平滑RTT值和平滑JITTER值;
根据所述平滑RTT值和所述平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间;
根据所述接收时间,对所述解码队列中的音频数据包和视频数据包进行延时解码。
2.根据权利要求1所述的方法,其特征在于,所述计算平滑RTT值包括:
根据接收的每个数据包的RTT,计算RTT的平均值U以及RTT的均方差值V;
通过对新接收的数据包的RTT、所述平均值U和所述均方差值V进行加权计算,获得当前RTT;
根据所述当前RTT和上次计算的平均RTT更新当前的平均RTT,将所述当前的平均RTT作为平滑RTT值。
3.根据权利要求2所述的方法,其特征在于,所述通过对新接收的数据包的RTT、所述平均值U和所述均方差值V进行加权平滑计算,获得当前RTT包括:
当新接收到数据包时,如果RTT-U<0,则当前RTT为U-((7*V)/8+(|RTT-U|)/8);
如果RTT-U>0,则当前RTT为U+((7*V)/8+(|RTT-U|)/8)。
4.根据权利要求1所述的方法,其特征在于,所述计算平滑JITTER值包括:
根据两个相邻的数据包的RTT计算JITTER;
根据每个JITTER,计算JITTER的平均值M以及JITTER的均方差值N;
通过对新接收的数据包的JITTER、所述平均值M和所述均方差值N进行加权计算,获得当前JITTER;
根据所述当前JITTER和上次计算的平均JITTER更新当前的平均JITTER,将所述当前的平均JITTER作为平滑JITTER值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述平滑RTT值和所述平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间包括:
根据解码延迟和渲染延迟计算预计播放时间内可解码播放的数据包的数量;
根据所述平滑RTT值、所述平滑JITTER值和所述数量计算接收时间。
6.根据权利要求1所述的方法,其特征在于,还包括:
当所述音频数据包或所述视频数据包的RTT超过阈值范围时,丢弃所述RTT。
7.根据权利要求6所述的方法,其特征在于,还包括:
在等待所述接收时间后,未收到满足缓冲数量的数据包时,进行指数退避;
当超过上限值时,丢弃过时的数据包并缓冲最新的数据包;或,重新进行拉流连接。
8.一种音视频缓冲装置,其特征在于,应用于客户端,包括:
接收模块,用于接收音视频数据流;
提取模块,用于提取所述音视频数据流中的数据包,所述数据包包括音频数据包和视频数据包;
解码队列模块,用于将所述音频数据包和所述视频数据包放入各自的解码队列;
延迟计算模块,用于对所述音频数据包和所述视频数据包,分别计算平滑RTT值和平滑JITTER值;
接收时间计算模块,用于根据所述平滑RTT值和所述平滑JITTER值,计算满足缓冲数量的数据包所需的接收时间;
延时解码模块,用于根据所述接收时间,对所述解码队列中的音频数据包和视频数据包进行延时解码。
9.根据权利要求8所述的装置,其特征在于,所述延迟计算模块还用于:
根据接收的每个数据包的RTT,计算RTT的平均值U以及RTT的均方差值V;
通过对新接收的数据包的RTT、所述平均值U和所述均方差值V进行加权计算,获得当前RTT;
根据所述当前RTT和上次计算的平均RTT更新当前的平均RTT,将所述当前的平均RTT作为平滑RTT值。
10.根据权利要求9所述的装置,其特征在于,所述延迟计算模块还用于:
当新接收到数据包时,如果RTT-U<0,则当前RTT为U-((7*V)/8+(|RTT-U|)/8);
如果RTT-U>0,则当前RTT为U+((7*V)/8+(|RTT-U|)/8)。
CN201811440724.2A 2018-11-28 2018-11-28 音视频缓冲方法和装置 Active CN109379620B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811440724.2A CN109379620B (zh) 2018-11-28 2018-11-28 音视频缓冲方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811440724.2A CN109379620B (zh) 2018-11-28 2018-11-28 音视频缓冲方法和装置

Publications (2)

Publication Number Publication Date
CN109379620A true CN109379620A (zh) 2019-02-22
CN109379620B CN109379620B (zh) 2021-02-05

Family

ID=65374795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811440724.2A Active CN109379620B (zh) 2018-11-28 2018-11-28 音视频缓冲方法和装置

Country Status (1)

Country Link
CN (1) CN109379620B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110677710A (zh) * 2019-10-16 2020-01-10 江苏网进科技股份有限公司 多媒体终端的同步控制方法和终端控制系统
CN110784444A (zh) * 2019-09-09 2020-02-11 航天行云科技有限公司 一种嵌套数据流处理的方法及相关设备
CN111934705A (zh) * 2020-07-29 2020-11-13 杭州叙简科技股份有限公司 用于对讲机的语音防丢方法、装置、电子设备及介质
CN112527782A (zh) * 2019-09-19 2021-03-19 北京京东振世信息技术有限公司 一种数据处理的方法和装置
CN113645177A (zh) * 2020-05-11 2021-11-12 同响科技股份有限公司 可靠传输网络中维持实时音讯串流播放延迟的方法及系统
CN114827104A (zh) * 2022-05-17 2022-07-29 咪咕文化科技有限公司 时延调整方法、装置、设备及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020181506A1 (en) * 2001-06-04 2002-12-05 Koninklijke Philips Electronics N.V. Scheme for supporting real-time packetization and retransmission in rate-based streaming applications
CN101075957A (zh) * 2007-06-26 2007-11-21 上海大学 Avs流媒体传输控制方法
CN101175286A (zh) * 2006-10-30 2008-05-07 华为技术有限公司 Iub接口传输服务质量监测方法及无线网络控制器
CN101483782A (zh) * 2008-01-11 2009-07-15 株式会社日立制作所 数字广播接收装置以及数字广播接收方法
CN103533363A (zh) * 2012-07-02 2014-01-22 富士通株式会社 视频编码装置和方法以及视频解码装置和方法
CN107222403A (zh) * 2016-03-22 2017-09-29 掌赢信息科技(上海)有限公司 一种数据传输方法、系统和电子设备
CN107426615A (zh) * 2017-04-26 2017-12-01 上海优刻得信息科技有限公司 一种降低视频网络播放卡顿率的方法及装置
US20180270157A1 (en) * 2015-10-21 2018-09-20 Citrix Systems, Inc. System and method of providing improved throughput control under delay-based congestion situation in a network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020181506A1 (en) * 2001-06-04 2002-12-05 Koninklijke Philips Electronics N.V. Scheme for supporting real-time packetization and retransmission in rate-based streaming applications
CN101175286A (zh) * 2006-10-30 2008-05-07 华为技术有限公司 Iub接口传输服务质量监测方法及无线网络控制器
CN101075957A (zh) * 2007-06-26 2007-11-21 上海大学 Avs流媒体传输控制方法
CN101483782A (zh) * 2008-01-11 2009-07-15 株式会社日立制作所 数字广播接收装置以及数字广播接收方法
CN103533363A (zh) * 2012-07-02 2014-01-22 富士通株式会社 视频编码装置和方法以及视频解码装置和方法
US20180270157A1 (en) * 2015-10-21 2018-09-20 Citrix Systems, Inc. System and method of providing improved throughput control under delay-based congestion situation in a network
CN107222403A (zh) * 2016-03-22 2017-09-29 掌赢信息科技(上海)有限公司 一种数据传输方法、系统和电子设备
CN107426615A (zh) * 2017-04-26 2017-12-01 上海优刻得信息科技有限公司 一种降低视频网络播放卡顿率的方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110784444A (zh) * 2019-09-09 2020-02-11 航天行云科技有限公司 一种嵌套数据流处理的方法及相关设备
CN110784444B (zh) * 2019-09-09 2021-10-15 航天行云科技有限公司 一种嵌套数据流处理的方法及相关设备
CN112527782A (zh) * 2019-09-19 2021-03-19 北京京东振世信息技术有限公司 一种数据处理的方法和装置
CN112527782B (zh) * 2019-09-19 2023-09-22 北京京东振世信息技术有限公司 一种数据处理的方法和装置
CN110677710A (zh) * 2019-10-16 2020-01-10 江苏网进科技股份有限公司 多媒体终端的同步控制方法和终端控制系统
CN113645177A (zh) * 2020-05-11 2021-11-12 同响科技股份有限公司 可靠传输网络中维持实时音讯串流播放延迟的方法及系统
CN111934705A (zh) * 2020-07-29 2020-11-13 杭州叙简科技股份有限公司 用于对讲机的语音防丢方法、装置、电子设备及介质
CN114827104A (zh) * 2022-05-17 2022-07-29 咪咕文化科技有限公司 时延调整方法、装置、设备及计算机可读存储介质
CN114827104B (zh) * 2022-05-17 2024-02-23 咪咕文化科技有限公司 时延调整方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN109379620B (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
CN109379620A (zh) 音视频缓冲方法和装置
CN105357075B (zh) 基于软件定义网络的流量监测系统和方法
EP3832953A1 (en) System, method, and apparatus for evaluating round-trip time
CN101188477B (zh) 一种数据包序列接收的方法及设备
CN106789385B (zh) 一种视频流的发送方法、发送装置和网络摄像机
CN103561354B (zh) 视频流畅度计算处理方法和装置
CN104394421A (zh) 视频帧的处理方法及装置
CN104734985A (zh) 数据接收流量控制方法及其系统
CN109743639A (zh) 一种自适应码率控制方法、系统、计算机设备及存储介质
CN108809752B (zh) 一种网络流量的自适应监控方法、装置、npb设备及介质
WO2017161967A1 (zh) 包每秒流量监管方法、装置和计算机存储介质
CN103929681A (zh) 一种提升低速网络中rtp视频流处理效率的方法
WO2020063299A1 (zh) 统计活跃流数目的方法、网络设备和系统
CN108184166A (zh) 一种视频质量分析方法及系统
KR20130114597A (ko) 스트리밍 미디어 전달 컴포지트
CN114374647A (zh) 一种对时敏业务流和路由联合调度的规划方法及装置
US20160112292A1 (en) Method and system for non-tagged based latency calculation
CN110474845A (zh) 流表项淘汰方法及相关装置
CN106604055B (zh) 基于复杂弱移动网络环境的视频平滑发送直播上行方法
CN105704052A (zh) 一种量化的拥塞通告消息生成方法及装置
CN103828377B (zh) 发布网络、服务器以及发布方法
TW202042560A (zh) 修正視訊串流流量的方法、機上盒及電腦可讀儲存介質
Yaun et al. Large-scale tcp models using optimistic parallel simulation
US9003022B2 (en) Determining an average effective data through-put as corresponds to a network-served end user
CN110505494A (zh) 去除网络抖动的方法及装置

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