CN113727186A - 一种实时视频通话的视频播放方法及系统 - Google Patents

一种实时视频通话的视频播放方法及系统 Download PDF

Info

Publication number
CN113727186A
CN113727186A CN202110990383.1A CN202110990383A CN113727186A CN 113727186 A CN113727186 A CN 113727186A CN 202110990383 A CN202110990383 A CN 202110990383A CN 113727186 A CN113727186 A CN 113727186A
Authority
CN
China
Prior art keywords
playing
video
time
current frame
parameter
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
CN202110990383.1A
Other languages
English (en)
Other versions
CN113727186B (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.)
Bigo Technology Pte Ltd
Original Assignee
Bigo Technology Pte 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 Bigo Technology Pte Ltd filed Critical Bigo Technology Pte Ltd
Priority to CN202110990383.1A priority Critical patent/CN113727186B/zh
Publication of CN113727186A publication Critical patent/CN113727186A/zh
Application granted granted Critical
Publication of CN113727186B publication Critical patent/CN113727186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • 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
    • H04N21/440218Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • 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
    • H04N21/440281Processing 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 by altering the temporal resolution, e.g. by frame skipping
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例公开了一种实时视频通话的视频播放方法及系统。本申请实施例提供的技术方案,解码当前帧,确定当前缓冲数据的播放长度,缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;将播放长度与当前网络抖动参数进行比较,根据比较结果确定当前帧的播放速率调节参数;基于播放速率调节参数确定当前帧的第一预计播放时间,并按照第一预计播放时间播放当前帧。采用上述技术手段,通过计算播放速率调节参数以实时调节当前帧的播放时间,以此可以确保当前帧在一个合适的时间节点播放,维持实时视频通话卡顿程度和延时的平衡状态,在解决实时视频通话卡顿问题的同时,避免过大延迟影响用户通话体验。

Description

一种实时视频通话的视频播放方法及系统
技术领域
本申请实施例涉及视频直播技术领域,尤其涉及一种实时视频通话的视频播放方法及系统。
背景技术
随着流媒体技术的发展以及智能终端设备的普及,视频即时通讯已经逐渐成为目前最时尚、流行的通讯方式。为了满足用户在不同网络环境下进行流畅通话的需求,要求视频通讯应用具备针对弱网环境的对抗手段,以优化实时视频通话质量。目前,为了提升实时视频通话质量,会采用自适应媒体播放算法以降低视频卡顿。其通过定义一个视频帧缓冲区的上下界阈值,当缓冲数据量超过上界阈值时执行视频帧快放操作;当缓冲数据量低于下界阈值时执行视频帧慢放操作;当缓冲数据量介于上下界阈值之间时,则正常播放。以此通过引入有限延时,有效降低实时视频的播放卡顿。
但是,上下界阈值一般由开发人员根据自身经验人为主观设定,一旦上下界阈值设置不准确,就会导致视频播放延时或卡顿较大的情况,影响用户观看体验。
发明内容
本申请实施例提供一种实时视频通话的视频播放方法及系统,能够动态调节视频播放速率,维持实时视频通话卡顿程度和延时的平衡状态,解决弱网环境下实时视频通话的卡顿问题。
在第一方面,本申请实施例提供了一种实时视频通话的视频播放方法,包括:
解码当前帧,确定当前缓冲数据的播放长度,所述缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;
将所述播放长度与当前网络抖动参数进行比较,根据比较结果确定所述当前帧的播放速率调节参数;
基于所述播放速率调节参数确定所述当前帧的第一预计播放时间,并按照所述第一预计播放时间播放所述当前帧。
在第二方面,本申请实施例提供了一种实时视频通话的视频播放系统,包括:
确定模块,用于解码当前帧,确定当前缓冲数据的播放长度,所述缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;
比较模块,用于将所述播放长度与当前网络抖动参数进行比较,根据比较结果确定所述当前帧的播放速率调节参数;
调节模块,用于基于所述播放速率调节参数确定所述当前帧的第一预计播放时间,并按照所述第一预计播放时间播放所述当前帧。
在第三方面,本申请实施例提供了一种电子设备,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的实时视频通话的视频播放方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的实时视频通话的视频播放方法。
本申请实施例通过解码当前帧,确定当前缓冲数据的播放长度,缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;将播放长度与当前网络抖动参数进行比较,根据比较结果确定当前帧的播放速率调节参数;基于播放速率调节参数确定当前帧的第一预计播放时间,并按照第一预计播放时间播放当前帧。采用上述技术手段,通过计算播放速率调节参数以实时调节当前帧的播放时间,以此可以确保当前帧在一个合适的时间节点播放,维持实时视频通话卡顿程度和延时的平衡状态,在解决实时视频通话卡顿问题的同时,避免过大延迟影响用户通话体验。
附图说明
图1是本申请实施例提供的一种实时视频通话的视频播放方法的流程图;
图2是本申请实施例中播放长度的计算流程图;
图3是本申请实施例中缓冲数据的组成示意图;
图4是本申请实施例中第一预计播放时间的计算流程图;
图5是本申请实施例中视频帧的循环解码流程图;
图6是本申请实施例提供的一种实时视频通话的视频播放装置的结构示意图;
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请提供的实时视频通话的视频播放方法,旨在通过计算当前帧的播放速率调节参数,以对当前帧的播放时间进行调节,进而使当前帧在合适的时间节点播放,避免了弱网环境下,视频通话卡顿程度和延时不平衡的情况。对于传统的实时视频播放方式,其为了在弱网环境下依然保持视频播放的低卡顿程度,保障实时视频通话质量,会采用自适应媒体播放算法以降低视频卡顿。自适应媒体播放算法通过定义一个视频帧缓冲区的上下界阈值,当缓冲数据量超过上界阈值时执行视频帧快放操作;当缓冲数据量低于下界阈值时执行视频帧慢放操作;当缓冲数据量介于上下界阈值之间时,则正常播放。以此通过引入有限延时,有效降低实时视频的播放卡顿。然而,上下界阈值一般根据开发人员自身经验人为主观设定,如果上界阈值设置过大,则在网络抖动较小的场景中,会引入较大的延时;而如果下界阈值过小,则在抖动较大的场景中,就可能导致较大的播放卡顿。基于此,提供本申请实施例的一种实时视频通话的视频播放方法,以解决弱网环境下实时视频通话的卡顿问题,并保障时视频通话卡顿程度和延时处于相对平衡状态。
实施例:
图1给出了本申请实施例提供的一种实时视频通话的视频播放方法的流程图,本实施例中提供的实时视频通话的视频播放方法可以由实时视频通话的视频播放设备执行,该实时视频通话的视频播放设备可以通过软件和/或硬件的方式实现,该实时视频通话的视频播放设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该实时视频通话的视频播放设备可以是手机,平板,电脑等终端设备。
下述以该实时视频通话的视频播放设备为执行实时视频通话的视频播放方法的主体为例,进行描述。参照图1,该实时视频通话的视频播放方法具体包括:
S110、解码当前帧,确定当前缓冲数据的播放长度,缓冲数据包括解码缓冲区和显示缓冲区中的视频帧。
本申请实施例通过计算缓冲数据的播放长度,根据播放长度比较实时的网络抖动参数,以通过比较结果调整当前帧的预计播放时间。其中,对于视频播放设备每次接收到的视频帧,首先对该视频帧进行解码。通过将视频帧按照帧序号依序放入缓存中的解码缓冲区,解码缓冲区按照视频帧序号的顺序对各个视频帧进行解码,对于解码后的视频帧,同样按照视频帧序号放入缓存中的显示缓冲区,以根据视频帧序号逐帧视频帧进行渲染显示。可以根据视频帧时间戳信息的大小排序,确定各个视频帧的视频帧序号。需要说明的是,对应缓存中的解码缓冲区和显示缓冲区,分别用于放置待解码和解码后待显示的视频帧,视频播放设备对于接收到的每一帧视频帧,均按照视频帧序号进行解码及渲染显示。
示例性的,用户在开启实时视频通话软件与第二终端进行视频通话时,通过本申请实施例实时视频通话的视频播放方法对接收到的视频帧进行播放显示。其中,每接收到一个视频帧,首先进行该视频帧的解码,进而通过确定该视频帧的预计播放时间,在对应的时间节点播放该视频帧,以此来降低实时视频通话的卡顿程度,优化视频通话效果。
具体的,视频通话设备在接收到视频帧后,将视频帧放入解码缓冲区,并根据解码缓冲区中各个视频帧的排列顺序,按视频帧序号进行视频帧解码。进一步的,在解码当前帧之后,则通过计算当前缓冲数据的播放长度,以用于根据缓冲数据的播放长度计算当前帧的预计播放时间。其中,参照图2,确定当前缓冲数据的播放长度,包括:
S1101、确定显示缓冲区中第一帧视频帧的第一时间戳,以及解码缓冲区中最后一帧视频帧的第二时间戳;
S1102、根据第一时间戳、第二时间戳以及缓冲数据中视频帧的总帧数计算缓冲数据的播放长度。
可以理解的是,缓冲数据包含了解码缓冲区和显示缓冲区中的所有视频帧。则通过确定显示缓冲区中第一帧视频帧(将要进行播放显示的下一视频帧)的时间戳,定义该时间戳为第一时间戳。确定解码缓冲区中最后一帧视频帧的时间戳,定义该时间戳为第二时间戳。基于该第一时间戳和第二时间戳即可确定缓冲数据中,可播放视频帧和可解码视频帧的长度。
示例性的,参照图3,提供本申请实施例缓冲数据的组成示意图。其中,显示缓冲区存储将要进行播放显示的视频帧,解码缓冲区存储将要进行解码的视频帧。解码缓冲区中的第一帧视频帧11表示实时进行解码的当前帧,显示缓冲区中第一帧视频帧12即表示视频播放设备将要播放显示的下一帧视频帧,而解码缓冲区中的最后一帧视频帧13则表示当前解码缓冲区中可以进行解码的最后一帧视频帧。视频帧12和视频帧13之间限定的帧采集时间跨度即为当前视频播放设备可播放及可解码的视频帧长度。记视频帧12和视频帧13的采集时间戳分别为T0、T1。需要说明的是,在极端情况下,显示缓冲区可能为空,则视频帧12的视频帧序号(n-t)退化成n。而解码缓冲区的视频帧数量为1时,视频帧13的视频帧序号(n+k)也会退化成n。
进一步的,记解码缓冲区的帧数为S0,显示缓冲区的帧数为S1,则缓冲数据的总帧数S=S0+S1。其中,当缓冲数据总帧数S大于1时,对于视频帧12和视频帧13,其采集时间差为(T1-T0)。则在正常情况下,缓冲数据中每两帧之间的平均播放间隔为:
SpanAvg=(T1-T0)/(S-1)
其中,SpanAvg表示缓冲数据中每两帧之间的平均播放间隔,单位为毫秒每帧(ms/f)。
基于缓冲数据中每两帧之间的平均播放间隔SpanAvg,以及缓冲数据的总帧数,即可计算当前缓冲数据的播放长度。播放长度的计算公式为:
Figure BDA0003232106690000051
其中,Span表示播放长度,单位为毫秒(ms),T1表示第二时间戳,T0表示第一时间戳,S表示缓冲数据中视频帧的总帧数。通过准确计算当前缓冲数据的播放长度,便于后续通过播放长度与网络抖动参数的比较,精准调节当前帧的播放速率,使当前帧处于一个合适的时间节点进行播放。
需要说明的是,在缓冲数据中视频帧的总帧数为1的情况下,如若缓冲数据中每两帧之间的平均播放间隔SpanAvg未被赋值过,则说明当前帧为整次视频通话的第一帧视频帧,应该立即将该帧视频帧送去播放。否则,由于此时无法直接计算缓冲数据的播放长度,则将历史的均值认为是当前帧的播放长度。将上一次计算的平均播放间隔SpanAvg赋值给播放长度Span,以上一次计算得到的平均播放间隔SpanAvg作为当前缓冲数据的播放长度。
S120、将播放长度与当前网络抖动参数进行比较,根据比较结果确定当前帧的播放速率调节参数。
进一步的,基于上述步骤S110计算得到的播放长度,本申请实施例通过将播放长度与网络抖动参数进行比较,根据两者的比较结果以调节当前帧的播放速率。需要说明的是,该播放长度表示缓冲数据中可以有效播放的视频帧长度。一般而言,缓冲数据越长,播放的效果越流畅,卡顿就越少。而由于在实时视频通话场景中,视频播放延时过大会影响视频通话质量,而缓冲数据过长就会导致过大的播放延时,因此需要维持视频播放延时与缓冲数据的播放长度处于相对平衡的状态。
基于此,本申请实施例通过检测当前网络抖动参数,将网络抖动参数与播放长度进行比较,判断两者是否处于平衡状态,进而根据两者的比较结果确定一个播放速率调节参数,以使用该播放速率调节参数调节当前帧的播放速度。需要说明的是,网络抖动参数是一个可以指导缓冲数据播放长度在卡顿和延时之间达到平衡的指标。一般而言,如果缓冲数据的播放长度大于等于网络抖动参数,则表示当前缓冲数据的播放长度可以扛住当前的网络抖动,实时视频通话卡顿程度相对较小。而如果当前缓冲数据的播放长度小于网络抖动参数,则当前缓冲数据的播放长度可能无法对抗当前的抖动,实时视频通话容易出现卡顿的情况。因此,为了达到实时视频通话场景中,视频帧播放延时和卡顿的平衡,本申请实施例通过设定网络抖动参数和播放长度的平衡状态,后续根据播放长度与网络抖动参数的比较结果确定当前帧的播放速率调节参数,以使用播放速率调节参数调节当前帧的播放速率,进而使网络抖动参数和播放长度趋向于平衡状态,保持视频帧播放延时和卡顿的平衡。
具体的,在确定播放速率调节参数时,通过将播放长度与当前网络抖动参数进行比较,确定当前网络抖动参数与播放长度的比值,并根据比值确定播放速率调节参数的取值。
可选的,本申请实施例将网络抖动参数与播放长度相等的状态作为视频帧播放延时和卡顿最平衡的状态。若网络抖动参数小于缓冲数据的播放长度,则需要快速播放当前帧,以消耗缓冲数据;若网络抖动参数大于缓冲数据的播放长度,则需要放缓当前帧的播放速率,以积累缓冲数据的播放长度;而当网络抖动参数与播放长度相等时,则无需调整当前帧的播放速率,保持缓冲数据的正常消耗即可。依据这一原理,本申请实施例直接将网络抖动参数与播放长度的比值作为播放速率调节参数,则播放速率调节参数的计算公式为:
Figure BDA0003232106690000071
其中,f表示播放速率调节参数,jitter表示当前网络抖动参数,Span表示播放长度。
可以理解的是,若网络抖动参数大于缓冲数据的播放长度,则播放速率调节参数大于1,基于播放速率调节参数可以延长当前帧的播放时间,以放缓当前帧的播放速率。而若网络抖动参数小于缓冲数据的播放长度,则播放速率调节参数小于1,基于播放速率调节参数可以缩短当前帧的播放时间,以加快当前帧的播放速率。上述,通过以网络抖动参数和缓冲数据播放长度的比值作为播放速率调节参数,可以提升播放速率调节参数的计算效率,以直观准确的进行当前帧播放速率的调节。
可选的,在计算播放速率调节参数时,还根据网络抖动参数和缓冲数据播放长度的比值,在预设定的参数阈值范围内确定播放速率调节参数的取值。可以理解的是,当网络抖动参数和缓冲数据播放长度的比值过大或者过小时,直接将网络抖动参数和缓冲数据播放长度的比值作为播放速率调节参数,会导致当前帧的播放速率调整过快或者过慢,影响当前帧的播放效果。因此,本申请实施例通过设置参数阈值范围,基于参数阈值范围确定播放速率调节参数的取值。举例而言,设定参数阈值范围为[0.5,2],如若网络抖动参数和缓冲数据播放长度的比值小于0.5,则播放速率调节参数取值为0.5;如若网络抖动参数和缓冲数据播放长度的比值大于2,则播放速率调节参数取值为2。通过设定参数阈值范围,可以确保当前帧的播放速率调节处于合适的范围内,避免当前帧的播放速率过大或者过小而影响实际播放效果,提升视频通话的视频播放质量。
可选的,实际应用中,还可以根据网络抖动参数和缓冲数据播放长度的不同比值预先设置对应的播放速率调节参数的取值,依此建立一个播放速率调节参数的映射取值表。后续在确定网络抖动参数和缓冲数据播放长度的比值后,根据两者比值与播放速率调节参数的映射关系查询播放速率调节参数的映射取值表,确定对应的播放速率调节参数。通过预先设定对应不同比值的播放速率调节参数,可以使每一个播放速率调节参数的选取都符合实际视频帧播放速率调节需求,以进一步优化视频播放效果。
S130、基于播放速率调节参数确定当前帧的第一预计播放时间,并按照第一预计播放时间播放当前帧。
最终,基于已确定的播放速率调节参数,即可通过播放速率调节参数对当前帧进行播放速率调节,计算当前帧的预计播放时间,定义该预计播放时间为第一预计播放时间,并将当前帧在第一预计播放时间对应的时间节点播放,以使当前帧在一个合适的时间节点进行播放,维持视频播放卡顿与延迟的平衡状态。
具体的,参照图4,第一预计播放时间的计算流程包括:
S1301、确定当前帧的前一视频帧的第二预计播放时间,以及缓冲数据中各个视频帧的平均播放间隔;
S1302、根据播放速率调节参数、第二预计播放时间和平均播放间隔计算当前帧的第一预计播放时间。
其中,第一预计播放时间的计算公式为:
Figure BDA0003232106690000081
其中,Dn为第一预计播放时间,Dn-1为第二预计播放时间,Span/S为平均播放间隔,Span表示播放长度,S表示缓冲数据中视频帧的总帧数,f表示播放速率调节参数。
可以理解的是,一般而言,在网络抖动参数与缓冲数据播放长度处于平衡状态时,当前帧的第一预计播放时间应当是前一视频帧的第二预计播放时间加上平均播放间隔。而为了提升或者放缓当前帧的播放速率,则需要使用播放速率调节参数对当前帧与前一视频帧的播放间隔进行调节,以此得到对应的第一预计播放时间,以该第一预计播放时间作为当前帧进行播放显示的时间节点。依此类推,对应缓冲数据中的每一帧视频帧,在上一帧播放时间节点的基础上加上调节后的播放间隔即可得到该视频帧的播放时间节点,以此完成本申请实施的实时视频通话的视频播放方法。上述,通过结合前一帧视频帧的播放时间计算后一帧视频帧的播放时间,以此可以使每一帧视频帧的播放时间准确且适宜,避免视频帧播放速率偏差的问题,进一步提升实时视频通话的视频播放效果。需要说明的是,对于当前帧的前一帧视频帧,也是参照上述方式计算其预计播放时间,以此即可得到缓冲数据中所有视频帧的预计播放时间。而对于一次视频通话中第一次接收到的视频帧,则无需计算其预计播放时间,直接将其播放显示即可,在此之后,对每一帧进行解码的视频帧,均采用本申请实施例提供的实时视频通话的视频播放方法确定视频帧的播放时间,并依此进行播放。
参照图5,本申请在进行实时视频通话时,对接收到的每一帧视频帧,均进行循环解码操作,通过视频帧的序号确定视频帧到达解码时间后,解码当前帧,并在解码成功后,通过确定缓冲数据的播放长度,并计算当前帧的播放速率调节参数,以确定当前帧的第一预计播放时间,最终在第一预计播放时间对应的时间节点到达时,视频播放设备提取显示缓存区的对应视频帧进行播放显示。对于每一帧视频帧,在播放时会严格按照上述计算得到的第一预计播放时间播放,由于每两帧视频帧之间的播放时间间隔都是根据平均播放间隔和播放速率调节参数共同决定的,在视频帧蜂拥到达的情况下,即使不采用跳帧策略依然可以快速地消耗视频帧,从而在避免视频帧数据过分累积的同时不浪费已有数据。而在视频帧缓存较少的情况下,基于该视频播放方法可以实现慢放效果,有效降低视频播放卡顿程度,提升播放体验,达到平滑播放、降低卡顿的目的。
上述,通过解码当前帧,确定当前缓冲数据的播放长度,缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;将播放长度与当前网络抖动参数进行比较,根据比较结果确定当前帧的播放速率调节参数;基于播放速率调节参数确定当前帧的第一预计播放时间,并按照第一预计播放时间播放当前帧。采用上述技术手段,通过计算播放速率调节参数以实时调节当前帧的播放时间,以此可以确保当前帧在一个合适的时间节点播放,维持实时视频通话卡顿程度和延时的平衡状态,在解决实时视频通话卡顿问题的同时,避免过大延迟影响用户通话体验。
在上述实施例的基础上,图6为本申请提供的一种实时视频通话的视频播放系统的结构示意图。参考图6,本实施例提供的实时视频通话的视频播放系统具体包括:确定模块21、比较模块22和调节模块23。
其中,确定模块21用于解码当前帧,确定当前缓冲数据的播放长度,所述缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;
比较模块22用于将所述播放长度与当前网络抖动参数进行比较,根据比较结果确定所述当前帧的播放速率调节参数;
调节模块23用于基于所述播放速率调节参数确定所述当前帧的第一预计播放时间,并按照所述第一预计播放时间播放所述当前帧。
具体的,确定模块21包括:
第一确定单元,用于确定显示缓冲区中第一帧视频帧的第一时间戳,以及解码缓冲区中最后一帧视频帧的第二时间戳;
第一计算单元,用于根据第一时间戳、第二时间戳以及缓冲数据中视频帧的总帧数计算缓冲数据的播放长度。
具体的,播放长度的计算公式为:
Figure BDA0003232106690000101
其中,Span表示播放长度,T1表示第二时间戳,T0表示第一时间戳,S表示缓冲数据中视频帧的总帧数。
比较模块22包括:
第二确定单元,用于将播放长度与当前网络抖动参数进行比较,确定当前网络抖动参数与播放长度的比值,并根据比值确定播放速率调节参数的取值。
播放速率调节参数的计算公式为:
Figure BDA0003232106690000102
其中,f表示播放速率调节参数,jitter表示当前网络抖动参数,Span表示播放长度。
取值单元,用于根据比值,在预设定的参数阈值范围内确定播放速率调节参数的取值。
调节模块23包括:
第三确定单元,用于确定当前帧的前一视频帧的第二预计播放时间,以及缓冲数据中各个视频帧的平均播放间隔;
第二计算单元,用于根据播放速率调节参数、第二预计播放时间和平均播放间隔计算当前帧的第一预计播放时间。
第一预计播放时间的计算公式为:
Figure BDA0003232106690000103
其中,Dn为第一预计播放时间,Dn-1为第二预计播放时间,Span/S为平均播放间隔,Span表示播放长度,S表示缓冲数据中视频帧的总帧数,f表示播放速率调节参数。
上述,通过解码当前帧,确定当前缓冲数据的播放长度,缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;将播放长度与当前网络抖动参数进行比较,根据比较结果确定当前帧的播放速率调节参数;基于播放速率调节参数确定当前帧的第一预计播放时间,并按照第一预计播放时间播放当前帧。采用上述技术手段,通过计算播放速率调节参数以实时调节当前帧的播放时间,以此可以确保当前帧在一个合适的时间节点播放,维持实时视频通话卡顿程度和延时的平衡状态,在解决实时视频通话卡顿问题的同时,避免过大延迟影响用户通话体验。
本申请实施例提供的实时视频通话的视频播放系统可以用于执行上述实施例提供的实时视频通话的视频播放方法,具备相应的功能和有益效果。
在上述实际上例的基础上,本申请实施例还提供了一种电子设备,参照图7,该电子设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的实时视频通话的视频播放方法对应的程序指令/模块(例如,实时视频通话的视频播放系统中的确定模块、比较模块和调节模块)。通信模块用于进行数据传输。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的实时视频通话的视频播放方法。输入装置可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置可包括显示屏等显示设备。上述提供的电子设备可用于执行上述实施例提供的实时视频通话的视频播放方法,具备相应的功能和有益效果。
在上述实施例的基础上,本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种实时视频通话的视频播放方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的实时视频通话的视频播放方法,还可以执行本申请任意实施例所提供的实时视频通话的视频播放方法中的相关操作。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

Claims (10)

1.一种实时视频通话的视频播放方法,其特征在于,包括:
解码当前帧,确定当前缓冲数据的播放长度,所述缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;
将所述播放长度与当前网络抖动参数进行比较,根据比较结果确定所述当前帧的播放速率调节参数;
基于所述播放速率调节参数确定所述当前帧的第一预计播放时间,并按照所述第一预计播放时间播放所述当前帧。
2.根据权利要求1所述的实时视频通话的视频播放方法,其特征在于,所述确定当前缓冲数据的播放长度,包括:
确定所述显示缓冲区中第一帧视频帧的第一时间戳,以及所述解码缓冲区中最后一帧视频帧的第二时间戳;
根据所述第一时间戳、所述第二时间戳以及所述缓冲数据中视频帧的总帧数计算所述缓冲数据的播放长度。
3.根据权利要求1所述的实时视频通话的视频播放方法,其特征在于,所述将所述播放长度与当前网络抖动参数进行比较,根据比较结果确定所述当前帧的播放速率调节参数,包括:
将所述播放长度与当前网络抖动参数进行比较,确定当前网络抖动参数与所述播放长度的比值,并根据所述比值确定所述播放速率调节参数的取值。
4.根据权利要求3所述的实时视频通话的视频播放方法,其特征在于,所述播放速率调节参数的计算公式为:
Figure FDA0003232106680000011
其中,f表示所述播放速率调节参数,jitter表示当前网络抖动参数,Span表示所述播放长度。
5.根据权利要求3所述的实时视频通话的视频播放方法,其特征在于,所述根据比较结果确定所述当前帧的播放速率调节参数,还包括:
根据所述比值,在预设定的参数阈值范围内确定所述播放速率调节参数的取值。
6.根据权利要求1所述的实时视频通话的视频播放方法,其特征在于,所述基于所述播放速率调节参数确定所述当前帧的第一预计播放时间,包括:
确定所述当前帧的前一视频帧的第二预计播放时间,以及所述缓冲数据中各个视频帧的平均播放间隔;
根据所述播放速率调节参数、所述第二预计播放时间和所述平均播放间隔计算所述当前帧的第一预计播放时间。
7.根据权利要求6所述的实时视频通话的视频播放方法,其特征在于,所述第一预计播放时间的计算公式为:
Figure FDA0003232106680000021
其中,Dn为所述第一预计播放时间,Dn-1为所述第二预计播放时间,Span/S为所述平均播放间隔,Span表示所述播放长度,S表示所述缓冲数据中视频帧的总帧数,f表示所述播放速率调节参数。
8.一种实时视频通话的视频播放系统,其特征在于,包括:
确定模块,用于解码当前帧,确定当前缓冲数据的播放长度,所述缓冲数据包括解码缓冲区和显示缓冲区中的视频帧;
比较模块,用于将所述播放长度与当前网络抖动参数进行比较,根据比较结果确定所述当前帧的播放速率调节参数;
调节模块,用于基于所述播放速率调节参数确定所述当前帧的第一预计播放时间,并按照所述第一预计播放时间播放所述当前帧。
9.一种电子设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的实时视频通话的视频播放方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的实时视频通话的视频播放方法。
CN202110990383.1A 2021-08-26 2021-08-26 一种实时视频通话的视频播放方法及系统 Active CN113727186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110990383.1A CN113727186B (zh) 2021-08-26 2021-08-26 一种实时视频通话的视频播放方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110990383.1A CN113727186B (zh) 2021-08-26 2021-08-26 一种实时视频通话的视频播放方法及系统

Publications (2)

Publication Number Publication Date
CN113727186A true CN113727186A (zh) 2021-11-30
CN113727186B CN113727186B (zh) 2024-05-17

Family

ID=78678253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110990383.1A Active CN113727186B (zh) 2021-08-26 2021-08-26 一种实时视频通话的视频播放方法及系统

Country Status (1)

Country Link
CN (1) CN113727186B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862298B1 (en) * 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
US20050111432A1 (en) * 2003-11-24 2005-05-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for use in real-time, interactive radio communications
CN101330340A (zh) * 2008-07-31 2008-12-24 中兴通讯股份有限公司 移动多媒体广播终端自适应调整接收速率缓冲播放的方法
CN103916716A (zh) * 2013-01-08 2014-07-09 北京信威通信技术股份有限公司 一种无线网络下视频实时传输的码率平滑方法
CN105142002A (zh) * 2015-08-07 2015-12-09 广州博冠信息科技有限公司 音/视频直播方法、装置及控制方法、装置
CN105376607A (zh) * 2015-10-29 2016-03-02 深圳云聚汇数码有限公司 一种网络抖动环境下的视频直播方法及装置
CN106713855A (zh) * 2016-12-13 2017-05-24 深圳英飞拓科技股份有限公司 一种视频播放方法及装置
CN107484009A (zh) * 2017-09-12 2017-12-15 上海脉淼信息科技有限公司 一种适用于网络直播的流媒体播放方法和装置
CN111294634A (zh) * 2020-02-27 2020-06-16 腾讯科技(深圳)有限公司 直播方法、装置、系统、设备及计算机可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862298B1 (en) * 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
US20050111432A1 (en) * 2003-11-24 2005-05-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for use in real-time, interactive radio communications
CN101330340A (zh) * 2008-07-31 2008-12-24 中兴通讯股份有限公司 移动多媒体广播终端自适应调整接收速率缓冲播放的方法
CN103916716A (zh) * 2013-01-08 2014-07-09 北京信威通信技术股份有限公司 一种无线网络下视频实时传输的码率平滑方法
CN105142002A (zh) * 2015-08-07 2015-12-09 广州博冠信息科技有限公司 音/视频直播方法、装置及控制方法、装置
CN105376607A (zh) * 2015-10-29 2016-03-02 深圳云聚汇数码有限公司 一种网络抖动环境下的视频直播方法及装置
CN106713855A (zh) * 2016-12-13 2017-05-24 深圳英飞拓科技股份有限公司 一种视频播放方法及装置
CN107484009A (zh) * 2017-09-12 2017-12-15 上海脉淼信息科技有限公司 一种适用于网络直播的流媒体播放方法和装置
CN111294634A (zh) * 2020-02-27 2020-06-16 腾讯科技(深圳)有限公司 直播方法、装置、系统、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN113727186B (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
US20150358686A1 (en) Code rate smoothing method for transmitting real-time video in a wireless network
CN104967884B (zh) 一种码流切换方法和装置
CN107396171A (zh) 网络直播方法、装置和存储介质
US20090307368A1 (en) Stream complexity mapping
US9143810B2 (en) Method for manually optimizing jitter, delay and synch levels in audio-video transmission
RU2507707C2 (ru) Способ и устройство управления воспроизведением видео- и аудиоданных
CN111225209B (zh) 视频数据推流方法、装置、终端及存储介质
WO2021164670A1 (zh) 视频编码方法、装置、设备及存储介质
CN113727185B (zh) 视频帧播放方法及系统
US20230066899A1 (en) Video data processing method and apparatus, and electronic device
WO2023151489A1 (zh) 一种视频处理方法、装置、设备及存储介质
CN108259998B (zh) 播放器及播放控制方法、装置、电子设备及播放系统
CN114257857B (zh) 显示设备及视频倍速播放方法
CN112788494A (zh) 耳机控制方法、装置、设备及介质
CN104053002A (zh) 视频解码方法和视频解码装置
CN107430496A (zh) 针对远程显示丢弃帧
CN111352605A (zh) 一种音频播放、发送的方法及装置
CN113727186B (zh) 一种实时视频通话的视频播放方法及系统
CN106921886A (zh) 一种终端的多媒体数据播放方法和装置
US20150350037A1 (en) Communication device and data processing method
US11546675B2 (en) Methods, systems, and media for streaming video content using adaptive buffers
CN114710687B (zh) 音视频同步方法、装置、设备及存储介质
CN115361585B (zh) 视频播放卡顿预测方法、装置、设备及存储介质
CN117596437A (zh) 多媒体数据播放方法、装置、电子设备及存储介质
CN118055277A (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