CN106713855B - 一种视频播放方法及装置 - Google Patents

一种视频播放方法及装置 Download PDF

Info

Publication number
CN106713855B
CN106713855B CN201611145087.7A CN201611145087A CN106713855B CN 106713855 B CN106713855 B CN 106713855B CN 201611145087 A CN201611145087 A CN 201611145087A CN 106713855 B CN106713855 B CN 106713855B
Authority
CN
China
Prior art keywords
frame
data
time
video
interval
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611145087.7A
Other languages
English (en)
Other versions
CN106713855A (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.)
Shenzhen Infinova Ltd
Original Assignee
Shenzhen Infinova 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 Shenzhen Infinova Ltd filed Critical Shenzhen Infinova Ltd
Priority to CN201611145087.7A priority Critical patent/CN106713855B/zh
Publication of CN106713855A publication Critical patent/CN106713855A/zh
Application granted granted Critical
Publication of CN106713855B publication Critical patent/CN106713855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明属于安防监控技术领域,提供了一种视频播放方法及装置,所述方法包括:接收视频源数据,将视频源数据分为视频数据和音频数据,视频数据缓存在预设的视频缓冲区,音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;若视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;根据接收的视频源数据的帧间隔和当前缓冲区缓冲的数据的播放时长计算当前帧应当播放的时间间隔;根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。本发明可改善视频播放时卡顿的问题,提高视频播放的流畅性。

Description

一种视频播放方法及装置
技术领域
本发明属于安防监控技术领域,尤其涉及一种视频播放方法及装置。
背景技术
安防监控系统是利用光纤、同轴电缆或微波在闭合的环路内传输的视频信号、并从摄像到图像显示和记录构成的独立完整的系统。它能够实时、形象、真实地反应被监控对象。目前大多数安防监控的前端网点的音视频数据存储在本地,同时传输实时音视频数据到监控中心。值守人员可在监控中心实时预览或回放,大大降低了值守人员的工作强度且提高了安全防卫的可靠性。
现有的视频实时预览或回放主要有两种方法:一种是接收方每收到一个完整的视频帧,立即安排该帧的解码与渲染,这种方法不能保证视频的流畅性;另一种是接收方收到并解码一个视频帧后,按照固定的帧率进行视频播放。通过固定的帧率播放,虽然流畅性有了保证,有最好的视觉效果,但是当视频流源字段里边没有携带帧率,关键帧解码耗时过大,或者因网络阻塞抖动,会出现播放帧率与视频源帧率不一致,视频显著暂停再快播的卡顿效果。
发明内容
鉴于此,本发明提供一种视频播放方法及装置,以解决视频播放时卡顿的问题,使用户获得良好的实时浏览体验。
本发明的第一方面,提供一种视频播放方法,所述方法包括:
设置视频播放的流畅等级;
接收视频源数据,将所述视频源数据分为视频数据和音频数据,所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;
若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;
根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;
根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。
本发明的第二方面,提供一种视频播放装置,所述装置包括:
流畅等级设置模块,用于设置视频播放的流畅等级;
视频源数据接收模块,用于接收视频源数据,将所述视频源数据分为视频数据和音频数据,将所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;
第一帧数据解码时间获得模块,用于若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;
当前帧应当播放的时间间隔计算模块,用于根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;
下一帧数据解码时间获得模块,用于根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。
本发明与现有技术相比存在的有益效果是:本发明设置视频播放的流畅等级;接收视频源数据,将所述视频源数据分为视频数据和音频数据,所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。由于本发明无需视频源数据的编码帧率参数,客户端可以根据缓冲区缓冲的数据的播放时长自行调整每帧播放的时间,能够改善视频播放时卡顿的问题,提高视频播放的流畅性,使用户获得良好的实时浏览体验。而且,本发明操作方便、实现简单,适应面广,具有较强的易用性和实用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的视频播放方法的示意流程图;
图2是本发明第二实施例提供的视频播放方法的示意流程图;
图3是本发明第三实施例提供的视频播放装置的示意框图;
图4是本发明第四实施例提供的视频播放装置的示意框图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
在说明具体实施例之前,首先需要说明的是,视频数据和音频数据分为两个线程解码播放,所以视频数据解码播放和音频数据解码播放的过程是两个独立的过程,但是两个独立的过程具有相同的步骤或具有相同功能的模块,在描述相同的步骤或相同功能的模块时将视频解码播放和音频解码播放一起描述。尽管在说明相同的步骤或相同功能的模块时将视频解码播放和音频解码播放一起描述,但是并不意味着每一帧视频解码播放和每一帧音频解码播放要同一时刻进行。在本发明实施例中,除非特别指明某个步骤或模块是视频或音频独有的,否则表示视频解码播放和音频解码播放过程都可以按照该步骤的逻辑关系进行。
实施例一:
参见图1,图1是本发明实施例一提供的视频播放方法的示意流程图,如图所示该方法可以包括以下步骤:
步骤S101,设置视频播放的流畅等级。
在本发明实施例中,视频播放的流畅性可能会受到网络抖动和帧解码时间的影响。网络抖动是由于网络带宽、信号强度等原因,会导致所传输的视频源数据不能按照发送时的帧率到达接收方,接收方如果按照接收时的帧率播放视频则可能出现视频暂停而后又快播的现象。帧解码时间会影响流畅等级是因为接收到视频源数据后,需要先对接收的视频源数据解码渲染,然后才能将视频源数据中的视频、音频或者字幕播放出来,而视频源数据中每帧数据从解码到播放出来所需的时间也不相同,如果某一帧解码耗时很大,就容易出现卡顿现象。如果设置的流畅等级越高,视频播放过程越不容易受到网络抖动和视频解码渲染时间的影响,视频播放流畅等级设置越低,则在播放过程中越容易受到网络抖动或视频解码渲染时间的影响而出现卡顿现象。
示例性的,可以将视频播放的流畅等级n设置为0,1,2,…,10,同时为每个流畅等级对应设置一个缓冲区间大小,缓冲区间大小设置为0ms,100ms,200ms,…,1000ms。
步骤S102,接收视频源数据,将所述视频源数据分为视频数据和音频数据,所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔。
在本发明实施例中,分别为视频数据和音频数据设置缓冲区,并且使用两个线程分别解码渲染视频和解码播放音频。视频缓冲区用于视频缓冲,音频缓冲区用于音频缓冲。在视频源数据实时传输过程中,有可能因为网络抖动造成接收到的帧率与发出的帧率不一致,造成视频不流畅的现象。为解决这个问题,设置了缓冲区,接收到视频源数据后,在数据解码之前缓冲一定数量的数据包保存在缓冲区。
所述帧间隔表示两帧数据在播放时间上的差值,可以设定第三预设时长,统计在第三预设时长内播放的帧数,第三预设时长除以第三预设时长内播放的帧数得到帧间隔,帧率为单位时间内播放的帧数,可以用第三预设时长内播放的帧数除以第三预设时长得到帧率。所述接收的视频源数据的帧间隔为第三预设时长除以第三预设时长内接收到的帧数。
步骤S103,若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放。
在本发明实施例中,已经设置了视频播放的流畅等级,同时也设置了所述流畅等级对应的缓冲区间的大小,需要特别说明的是,缓冲区间大小对应的不是缓冲的数据大小,而是缓冲的数据播放的时长。当缓冲区缓冲的数据的播放时长达到设定的流畅等级对应的缓冲区间大小后,开始对第一帧数据解码,视频缓冲区缓存的视频数据的播放时长可以通过接收视频源数据的帧间隔乘以当前缓冲区缓存的视频帧帧数获得。由于第一帧视频数据和第一帧音频数据的解码时间是一致的,所以只需计算视频缓冲区缓冲的视频数据的播放时长是否达到设定的流畅等级对应缓冲区间大小即可。
步骤S104,根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔。
在本发明实施例中,当第一帧数据开始解码后,为了避免网络抖动造成的卡顿现象,后续缓冲区缓冲的数据不再仅仅根据缓冲区间缓存的数据的播放时长是否达到流畅等级对应的缓冲区间大小来设定每一帧的解码时间。而是根据缓冲区缓存的数据的播放时长设定不同的帧补偿,将接收的视频源数据的帧间隔加上不同的帧补偿得到当前帧应当播放的时间间隔,再利用当前帧应当播放的时间间隔确定下一帧数据的解码时间。这是因为如果仍然按照缓冲区缓存的数据的播放时长来确定下一帧解码的时间,那么当网络速度过大或者过小的时候,缓冲区缓存的数据的播放时长可能会瞬间很大或很小,那么下一帧解码的时候就会过早或者过晚。需要说明的是,当前帧表示的是当前解码的帧,可以表示当前解码的视频帧也可以表示当前解码的音频帧,当前缓冲区缓冲的数据的播放时长表示的是解码操作时刻缓冲区缓冲的数据的播放时长,当前帧应当播放的时间间隔表示当前解码的帧应当播放的时长。
所述帧补偿可以通过缓冲区缓存的数据的播放时长设置。无论视频播放线程还是音频播放线程,如果当前缓冲区缓冲的数据的播放时长在合理的范围内,表示当前播放的速度比较合适,则帧补偿为0,即不在接收的视频源数据的帧间隔的基础上做帧补偿;如果当前缓冲区缓冲的数据的播放时长大于第四预设时长,则表明视频播放的过慢,应加快播放速度,则帧补偿为负数,在接收的视频源数据的帧间隔的基础上减去一定时间;如果当前缓冲区缓冲的数据的播放时长小于第五预设时长,则表明视频播放的过快,应减慢播放速度,则帧补偿为正数,在接收的视频源数据的帧间隔的基础上加上一定的时间。
具体的,如果设置的流畅等级为4级,帧补偿大小为2ms,则流畅等级对应的缓冲区间大小为400ms,由于网络抖动的存在,缓冲区间缓存的数据的播放时长瞬间可能超过400ms,所以在根据缓冲区缓冲的数据的播放时长设置帧补偿时,还需考虑大于400ms的范围。如果当前缓冲区缓存的数据的播放时长在300ms到500ms之间,则表示当前播放的速度比较合理,则帧补偿为0,即当前帧应当的播放的时间间隔就是当前接收的视频源数据的帧率;如果当前缓冲区缓存的数据的播放时长大于500ms,则表明视频播放的过慢,应加快播放的速度,则帧补偿为-2ms,当前帧应当的播放的时间间隔为接收的视频源数据的帧间隔的基础上减去2ms;如果当前缓冲区缓存的数据的播放时长小于300ms,则表明视频播放的过快,应减慢播放的速度,则帧补偿为2ms,当前帧应当的播放的时间间隔为接收的视频源数据的帧间隔的基础上加上2ms;
步骤S105,根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。
在本发明实施例中,由于缓冲区缓存的数据都是待解码的数据,所以在从缓冲区取出待解码的数据后先要经过解码渲染,因此在得到当前帧应当播放的时间间隔后,还需要减去当前帧解码渲染的时间。
从缓冲区开始读取一帧数据时记录第一时间,对读取的帧数据进行解码渲染成功后记录第二时间,将所述第二时间与第一时间的时间差值作为解码渲染该帧数据的时间;
如果当前帧应当播放的时间间隔大于解码渲染当前帧数据的时间,则在当前帧解码渲染成功后休眠第二时长,并读取下一帧数据进行解码处理,所述第二时长为当前帧应当播放的时间间隔减去解码渲染当前帧数据的时间;
如果当前帧应当播放的时间间隔小于或等于解码渲染当前帧数据的时间,则读取下一帧数据进行解码处理。
在本发明实施例中,从缓冲区开始读取一帧数据时记录第一时间,对读取的帧数据进行解码渲染成功后记录第二时间,将所述第二时间与第一时间的时间差值作为解码渲染该帧数据的时间;当前帧应当播放的时间间隔是指从缓冲区读取当前帧的时间与从缓冲区读取下一帧的时间的差值,所以包括了当前帧解码渲染的时间,如果当前帧应当播放的时间间隔大于解码渲染该帧数据的时间,则用当前帧应当播放的时间间隔减去解码渲染该帧数据的时间得到所需休眠的时间。
如果当前帧进行解码渲染的时间较长,或者由于接收的视频源数据的帧率较快得到的当前帧应当播放的时间间隔较小,造成当前帧应当播放的时间间隔小于当前帧解码渲染的时间时,则无需休眠,对当前帧解码渲染成功直接读取下一帧数据进行解码处理。
本发明实施例通过设置视频播放的流畅等级;接收视频源数据,将所述视频源数据分为视频数据和音频数据,所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。由于本发明无需视频源数据的编码帧率参数,客户端可以根据缓冲区间的数据自行调整每帧播放的时间,表现为帧多快播,帧少慢播的现象,能够改善视频播放时卡顿的问题,提高视频播放的流畅性,使用户获得良好的实时浏览体验。而且,本发明操作方便、实现简单,适应面广,具有较强的易用性和实用性。
实施例二:
参见图2,图2是本发明实施例二提供的视频播放方法的示意流程图,如图所示该方法可以包括以下步骤:
步骤S201,设置视频播放的流畅等级。
该步骤与步骤S101相同,具体可参见步骤S101的相关描述,在此不再赘述。
步骤S202,接收视频源数据,将所述视频源数据分为视频数据和音频数据,所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔。
该步骤在步骤S102的基础上优化了计算接收的视频源数据的帧间隔的过程。
优选的,计算接收的视频源数据的帧间隔具体为:
接收到视频源数据时,记录第一帧视频源数据接收时刻的本地时间,并记录接收到的帧数;
再次接收到一帧视频源数据时,记录当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔小于等于第一预设时长,用所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔除以接收上一帧视频源数据后记录的接收到的帧数得到接收的视频源数据的帧间隔,并记录当前接收到的帧数;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔大于第一预设时长,则将当前接收到的一帧视频源数据作为第一帧视频源数据,重新计算接收的视频源数据的帧间隔。
为了更好的理解上述过程,下面通过举例进行说明,但该举例不用于限制本发明的保护范围。
表1为视频源数据的帧间隔的计算过程
Figure GDA0002082411040000101
表1
在本发明实施例中,采用动态的方式计算接收的视频源数据的帧间隔。如表1所述,以第一预设时长为1s为例,当接收到第1帧视频源数据时,记录该帧视频源数据接收时刻的本地时间time1,并记录接收的帧数1;
当接收到第2帧视频源数据时,记录第2帧视频源数据接收时刻的本地时间time2,并更新当前时间与第1帧视频源数据接收时刻的本地时间的时间间隔为time2-time1;
若time2-time1小于等于1s,则用(time2-time1)除以接收第1帧视频源数据后记录的接收到的帧数1得到接收的视频源数据的帧间隔time2-time1,并更新当前接收的帧数为2;
若time2-time1大于1s,则将第2帧视频源数据作为第1帧视频源数据,重新记录时间间隔和接收的帧数,将当前接收到的第2帧接收的时刻更新为time1,更新接收到的帧数为1;
当接收到第N帧视频源数据时,记录第N帧视频源数据接收时刻的本地时间timeN,并更新当前时间与第1帧视频源数据接收时刻的本地时间的时间间隔为timeN-time1;
若timeN-time1小于等于1s,则用(timeN-time1)除以接收上一帧视频源数据后记录的接收到的帧数N-1得到接收的视频源数据的帧间隔(TimeN-time1)/N-1,并更新当前接收的帧数N;
若timeN-time1大于1s,则将第N帧视频源数据作为第1帧视频源数据,重新记录时间间隔和接收的帧数为:将当前接收到的第N帧接收的时刻更新为time1,更新接收到的帧数为1。
以此类推,一直动态更新接收的视频源数据的帧间隔。每接收一帧数据,更新一次视频源数据的帧间隔。
步骤S203,若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放。
该步骤与步骤S104相同,具体可参见步骤S104的相关描述,在此不再赘述。
步骤S204,计算当前缓冲区数据的播放时长。
由于接收到视频源数据时,将视频源数据分为视频数据和音频数据,所述视频数据缓冲在预设的视频缓冲区,所述音频数据缓冲在预设的音频缓冲区,并且视频数据解码播放的线程与音频数据解码播放的线程是相互独立的,因此在第一帧视频数据和音频数据开始解码后就需要分开计算缓冲区当前帧应当播放的时间间隔,因此需要分开计算视频缓冲区和音频缓冲区缓冲的数据的播放时长。
计算视频缓冲区当前视频帧的播放时长为:
将步骤S202计算的接收的视频源数据的帧间隔乘以缓冲区当前缓存的视频帧帧数。
计算视频缓冲区当前数据的播放时长是用来计算当前帧应当播放的时间间隔的,所以接收的视频源数据的帧间隔为从缓冲区取该帧数据前最新更新的接收的视频源数据的帧间隔,而缓冲区当前缓存的视频帧帧数为当前帧解码前最新更新的缓冲区间缓存的帧数。
计算音频缓冲区当前音频帧的播放时长为:
Figure GDA0002082411040000121
其中,duration为音频帧的播放时长,bufferSize为音频裸数据字节数,SamplePerSecond为采样频率,Channel为采样声道数,BitRate为采样位数。
SamplePerSecond为采样频率,表示单位时间内的采样次数。采样频率越大,采样点之间的间隔就越小,数字化后得到的声音越逼真,但相应的数据量就越大。
BitRate为采样位数,表示每次采样值数值大小的位数,采样位数越大,所能记录声音的变化度就越细腻,但相应数据量就越大。
Channel为采样声道数,表示处理的声音是单声道还是立体声,单声道在声音处理过程中只有单数据流,而立体声则需要左右声道的两个数据流。
bufferSize为音频裸数据字节数,表示音频缓冲区当前缓存的音频字节数。
步骤S205,根据预设的缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型获得当前帧的帧补偿,将接收的视频源数据的帧间隔加上当前帧的帧补偿得到当前帧应当播放的时间间隔。
在本发明实施例中,帧补偿是对当前接收的视频源数据的帧间隔做出调整,调整的大小根据当前缓冲区缓存的数据的播放时长决定,缓冲区缓存的数据较多,则需要提高播放速度,相应将接收的视频源数据的帧间隔调小得到当前帧应当播放的时间间隔。具体当前帧的帧补偿通过缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型获得。
可选的,所述缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型具体为:
设置不同流畅等级对应的缓冲区间、不同流畅等级对应的区间抖动值;
基于区间抖动值将缓冲区间设置为多个爬山等级;
根据不同的爬山等级,对帧间隔设置不同的帧补偿。
在本发明实施例中,虽然根据流畅等级设置了不同的缓冲区间,但是由于网络抖动的原因,瞬时接收的数据有可能出现不稳定,所以为每个缓冲区间还设置了区间抖动值,作为视频缓冲的合理范围,可以直接将缓冲区间加上区间抖动值设置一个范围,也可以基于区间抖动值将缓冲区间设置为多个区间段,每个区间段称之为一个爬山等级。
为了更好的理解上述过程,下面通过举例进行说明基于区间抖动值将缓冲区间设置为多个区间段的过程,但该举例不用于限制本发明的保护范围。
表2为设置的不同流畅等级对应的缓冲区间、不同流畅等级对应的区间抖动值、帧间补偿大小。
流畅等级 缓冲区间大小 区间抖动值 帧间补偿大小
0 0 40ms 3ms
1 100ms 40ms 3ms
2 200ms 40ms 3ms
3 300ms 80ms 3ms
4 400ms 80ms 3ms
5 500ms 80ms 3ms
6 600ms 100ms 3ms
7 700ms 100ms 3ms
8 800ms 100ms 3ms
9 900ms 100ms 3ms
10 1000ms 100ms 3ms
表2
如表2所示,将流畅等级设置为0~10个等级,区间抖动值为流畅等级小于3设置为40ms,流畅等级小于6设置为80ms,其余设置为100ms,帧间补偿大小设置为3ms,需要说明的是,区间抖动值和帧间补偿大小可以根据应用场景进行调节。
表3是通过区间抖动值设置缓冲区间的爬山等级以及帧补偿的过程。
Figure GDA0002082411040000141
表3
如表3所示,以流畅等级为4举例,缓冲区间大小为400ms,区间抖动值为80ms,设置每个爬山等级最大值为:400ms+80ms*k(k=-5,-4,-3,-2,-1,0,1,2,3,4,5),每个爬山等级对应的帧补偿为-3*k(k=-5,-4,-3,-2,-1,0,1,2,3,4,5),得到流畅等级为4的缓冲区间内的爬山等级分别为:小于0ms,0~80ms,80ms~160ms,160ms~240ms,240ms~320ms,…,720ms~800ms,大于800ms。每个爬山等级对应的帧补偿为15,12,9,6,3,…,-12,-15,-18。
以上仅用于举例,在设置爬山等级范围时,还可以将400ms+80ms*k(k=-5,-4,-3,-2,-1,0,1,2,3,4,5)设置为每个爬山等级的最小值,每个爬山等级对应的帧补偿为-3*k(k=-5,-4,-3,-2,-1,0,1,2,3,4,5),得到流畅等级为4的缓冲区间内的爬山等级分别为:小于0ms,0~80ms,80ms~160ms,160ms~240ms,240ms~320ms,…,720ms~800ms,大于800ms。每个爬山等级对应的帧补偿则变为18,15,12,9,6,3,…,-12,-15。
在本发明实施例中,还可以采用不同的方式将缓冲区间设置为多个小区间段,并且每个小区间段设置不同的帧补偿,在此并不做限制。
由以上基于区间抖动值设置缓冲区间的爬山等级以及帧补偿的过程可以看出将缓冲区间设置为多个小区间段的爬山等级,目的是根据当前缓冲区缓冲的数据的播放时长在哪个爬山等级,得到不同的帧补偿,就可以根据当前缓冲区缓存的数据的多少对接收的视频源数据的帧间隔做出调整,达到根据接收的视频源数据的帧率和网络状况,动态调整帧间隔,改善视频播放时卡顿的问题。
具体的,以当前缓冲区间缓冲的数据的播放时长为389ms为例说明当计算的当前缓冲区缓存的数据的播放时长在哪个爬山等级或小区间段范围内,则对应取哪个帧补偿。如果设置流畅等级为4,当缓冲区间达到400ms时,开始对第一帧数据解码,但是由于网络抖动造成传输数据大小不稳定,导致缓冲区间缓存的数据播放时长有可能并不会稳定在400ms,可能会在400ms上下浮动,当前缓冲区间缓冲的数据的播放时长为389ms,说明视频的播放帧率相对于接收的视频源数据的帧率快,则当前帧应当播放的帧率应该在接收的视频源数据的帧率基础上减慢,则当前帧应当播放的帧间隔应该在接收的视频源数据的帧间隔的基础上增加时间,389ms在设置的流畅等级为4时对应的爬山等级为320~400ms,对应的帧补偿为3ms,则当前帧应当播放的时间间隔为当前接收的视频源数据的帧间隔加上3ms。从而实现缓冲区帧多快播,帧少慢播,改善视频播放时卡顿的的问题。
步骤S206,根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。
该步骤与步骤S105相同,具体可参见步骤S105的相关描述,在此不再赘述。
需要说明的是,表1、表2和表3中所示数据均用于举例说明,并不用于表示实际的情况,也不对本发明实施例有任何限制作用。
应理解,在上述实施例一和二中,各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例三:
参见图3,图3是本发明实施例三提供的视频播放装置的示意框图,为了便于说明,仅示出与本发明实施例相关的部分。
该视频播放装置可以是内置于终端设备(例如手机、平板电脑、笔记本、计算机、穿戴设备等)内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中。
所述视频播放装置包括:
流畅等级设置模块31,用于设置视频播放的流畅等级;
视频源数据接收模块32,用于接收视频源数据,将所述视频源数据分为视频数据和音频数据,将所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;
第一帧数据解码时间获得模块33,用于若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到所述流畅等级设置模块31设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;
当前帧应当播放的时间间隔计算模块34,用于根据所述视频源数据接收模块32计算的接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;
下一帧数据解码时间获得模块35,用于根据所述当前帧播放的时间间隔计算模块34计算的当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。
可选的,所述视频源数据接收模块32还用于:
接收到视频源数据时,记录第一帧视频源数据接收时刻的本地时间,并记录接收到的帧数;
再次接收到一帧视频源数据时,记录当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔小于等于第一预设时长,用所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔除以接收上一帧视频源数据后记录的接收到的帧数得到接收的视频源数据的帧间隔,并记录当前接收到的帧数;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔大于第一预设时长,则将当前接收到的一帧视频源数据作为第一帧视频源数据,重新计算接收的视频源数据的帧间隔。
可选的,所述当前帧应当播放的时间间隔计算模块34包括:
缓冲区数据的播放时长计算单元341,用于计算当前缓冲区数据的播放时长;
当前帧的帧补偿获得单元342,用于根据预设的缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型获得当前帧的帧补偿;
当前帧应当播放的时间间隔计算单元343,用于将所述视频源数据接收模块32接收的视频源数据的帧间隔加上所述当前帧的帧补偿获得单元342获得的当前帧的帧补偿得到当前帧应当播放的时间间隔。
可选的,所述缓冲区数据的播放时长计算单元341具体用于:
计算视频缓冲区当前视频帧的播放时长为:
视频缓冲区当前缓存的视频帧帧数乘以接收到的视频帧的帧间隔得到视频缓冲区当前视频帧的播放时长;
计算音频缓冲区当前音频帧的播放时长为:
Figure GDA0002082411040000181
其中,duration为音频帧的播放时长,bufferSize为音频裸数据字节数,SamplePerSecond为采样频率,Channel为采样声道数,BitRate为采样位数。
可选的,所述缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型具体为:
设置不同流畅等级对应的缓冲区间和不同流畅等级对应的区间抖动值;
基于区间抖动值将缓冲区间设置为多个爬山等级;
根据不同的爬山等级,对帧间隔设置不同的帧补偿。
可选的,所述下一帧数据解码时间获得模块35包括:
解码渲染一帧数据的时间获得单元351,用于从缓冲区开始读取一帧数据时记录第一时间,对读取的帧数据进行解码渲染成功后记录第二时间,将所述第二时间与第一时间的时间差值作为解码渲染该帧数据的时间;
下一帧数据的解码时间获得单元352,用于如果当前帧应当播放的时间间隔大于所述解码播放一帧数据的时间获得单元351获得的解码渲染当前帧数据的时间,则在当前帧解码渲染成功后休眠第二时长,并读取下一帧数据进行解码处理,所述第二时长为当前帧应当播放的时间间隔减去解码渲染当前帧数据的时间;
下一帧数据的解码时间获得单元,还用于如果当前帧应当播放的时间间隔小于或等于所述解码播放一帧数据的时间获得单元351获得的解码渲染当前帧数据的时间,则读取下一帧数据进行解码处理。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元或模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例的对应过程,在此不再赘述。
实施例四:
参见图4,图4是本发明实施例四提供的视频播放装置的示意框图。如图所示的该视频播放装置可以包括:一个或多个处理器401(图4中仅示出一个);一个或多个输入设备402(图4中仅示出一个),一个或多个输出设备403(图4中仅示出一个)和存储器404。上述处理器401、输入设备402、输出设备403和存储器404通过总线405连接。存储器404用于存储指令,处理器401用于执行存储器404存储的指令。其中:
所述处理器401,用于通过输入设备402设置视频播放的流畅等级;所述处理器401还用于根据输入设备402接收视频源数据,将所述视频源数据分为视频数据和音频数据,所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;所述处理器401还用于若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据通过输出设备403进行解码播放;所述处理器401还用于根据通过输入设备402接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;所述处理器401还用于根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间。
可选的,所述处理器401用于通过输入设备402接收到视频源数据时,记录第一帧视频源数据接收时刻的本地时间,并记录接收到的帧数;所述处理器401还用于再次通过输入设备402接收到一帧视频源数据时,记录当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔;所述处理器401还用于若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔小于等于第一预设时长,用所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔除以接收上一帧视频源数据后记录的接收到的帧数得到接收的视频源数据的帧间隔,并记录当前接收到的帧数;所述处理器401还用于若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔大于第一预设时长,则将当前接收到的一帧视频源数据作为第一帧视频源数据,重新计算接收的视频源数据的帧间隔。
可选的,所述处理器401用于计算当前缓冲区数据的播放时长;所述处理器401还用于根据预设的缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型获得当前帧的帧补偿;所述处理器401还用于将通过输入设备402接收的视频源数据的帧间隔加上当前帧的帧补偿得到当前帧应当播放的时间间隔。
可选的,所述处理器401用于计算视频缓冲区当前视频帧的播放时长为:
视频缓冲区当前缓存的视频帧帧数乘以接收到的视频帧的帧间隔得到视频缓冲区当前视频帧的播放时长;所述处理器401还用于计算音频缓冲区当前音频帧的播放时长为:
Figure GDA0002082411040000201
其中,duration为音频帧的播放时长,bufferSize为音频裸数据字节数,SamplePerSecond为采样频率,Channel为采样声道数,BitRate为采样位数。
可选的,所述缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型具体为:
设置不同流畅等级对应的缓冲区间、不同流畅等级对应的区间抖动值;
基于区间抖动值将缓冲区间设置为多个爬山等级;
根据不同的爬山等级,对帧间隔设置不同的帧补偿。
可选的,所述处理器401用于从缓冲区开始读取一帧数据时记录第一时间,对读取的帧数据进行解码渲染成功后记录第二时间,将所述第二时间与第一时间的时间差值作为解码渲染该帧数据的时间;所述处理器401还用于如果当前帧应当播放的时间间隔大于解码渲染当前帧数据的时间,则在当前帧解码渲染成功后休眠第二时长,并读取下一帧数据进行解码处理,所述第二时长为当前帧应当播放的时间间隔减去解码渲染当前帧数据的时间;所述处理器401还用于如果当前帧应当播放的时间间隔小于或等于解码渲染当前帧数据的时间,则读取下一帧数据进行解码处理。
所述存储器404,用于存储软件程序、模块、单元以及视频播放装置中需要的数据信息,所述处理器401通过运行存储在所述存储器404的软件程序、模块以及单元,从而执行各种功能应用以及数据处理,改善视频播放时卡顿的问题,提高视频播放的流畅性。
应当理解,在本发明实施例中,所称处理器401可以是中央处理单元(CentralProcessing Unit,CPU),该处理器401还可以是其他通用处理器401、数字信号处理器401(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器401可以是微处理器401或者该处理器401也可以是任何常规的处理器401等。
输入设备402可以包括触控板、指纹采集传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风、数据采集装置、数据接收装置等,输出设备403可以包括显示器(LCD等)、扬声器、数据发送装置等。
该存储器404可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器404的一部分还可以包括非易失性随机存取存储器。例如,存储器404还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器401、输入设备402、输出设备403和存储器404可执行本发明实施例提供的视频播放方法的实施例中所描述的实现方式,也可执行视频播放装置的实施例三中所描述的实现方式,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的终端设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器401(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。

Claims (10)

1.一种视频播放方法,其特征在于,所述方法包括:
设置视频播放的流畅等级;
接收视频源数据,将所述视频源数据分为视频数据和音频数据,所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;
若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;
根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;
根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间;
所述根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔,包括:
根据缓冲区缓存的数据的播放时长设定不同的帧补偿,将接收的视频源数据的帧间隔加上不同的帧补偿得到当前帧应当播放的时间间隔。
2.根据权利要求1所述的方法,其特征在于,所述计算接收的视频源数据的帧间隔包括:
接收到视频源数据时,记录第一帧视频源数据接收时刻的本地时间,并记录接收到的帧数;
再次接收到一帧视频源数据时,记录当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔小于等于第一预设时长,用所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔除以接收上一帧视频源数据后记录的接收到的帧数得到接收的视频源数据的帧间隔,并记录当前接收到的帧数;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔大于第一预设时长,则将当前接收到的一帧视频源数据作为第一帧视频源数据,重新计算接收的视频源数据的帧间隔。
3.根据权利要求1所述的方法,其特征在于,所述根据接收的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔包括:
计算当前缓冲区数据的播放时长;
根据预设的缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型获得当前帧的帧补偿;
将接收的视频源数据的帧间隔加上当前帧的帧补偿得到当前帧应当播放的时间间隔。
4.根据权利要求3所述的方法,其特征在于,所述计算当前缓冲区数据的播放时长包括:
计算视频缓冲区当前视频帧的播放时长为:
视频缓冲区当前缓存的视频帧帧数乘以接收到的视频帧的帧间隔得到视频缓冲区当前视频帧的播放时长;
计算音频缓冲区当前音频帧的播放时长为:
Figure FDA0002230961320000021
其中,duration为音频帧的播放时长,bufferSize为音频裸数据字节数,SamplePerSecond为采样频率,Channel为采样声道数,BitRate为采样位数。
5.根据权利要求3所述的方法,其特征在于,所述缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型具体为:
设置不同流畅等级对应的缓冲区间和不同流畅等级对应的区间抖动值;
基于区间抖动值将缓冲区间设置为多个爬山等级;
根据不同的爬山等级,对帧间隔设置不同的帧补偿。
6.根据权利要求1所述的方法,其特征在于,所述根据所述当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间包括:
从缓冲区开始读取一帧数据时记录第一时间,对读取的帧数据进行解码渲染成功后记录第二时间,将所述第二时间与第一时间的时间差值作为解码渲染该帧数据的时间;
如果当前帧应当播放的时间间隔大于解码渲染当前帧数据的时间,则在当前帧解码渲染成功后休眠第二时长,并读取下一帧数据进行解码处理,所述第二时长为当前帧应当播放的时间间隔减去解码渲染当前帧数据的时间;
如果当前帧应当播放的时间间隔小于或等于解码渲染当前帧数据的时间,则读取下一帧数据进行解码处理。
7.一种视频播放装置,其特征在于,所述装置包括:
流畅等级设置模块,用于设置视频播放的流畅等级;
视频源数据接收模块,用于接收视频源数据,将所述视频源数据分为视频数据和音频数据,将所述视频数据缓存在预设的视频缓冲区,所述音频数据缓存在预设的音频缓冲区,并计算接收的视频源数据的帧间隔;
第一帧数据解码时间获得模块,用于若所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长分别达到所述流畅等级设置模块设置的流畅等级对应的缓冲区间大小后,分别对第一帧视频数据和第一帧音频数据进行解码播放;
当前帧应当播放的时间间隔计算模块,用于根据所述视频源数据接收模块计算的视频源数据的帧间隔和当前所述视频缓冲区缓冲的数据的播放时长和音频缓冲区缓冲的数据的播放时长计算获得当前帧应当播放的时间间隔;
下一帧数据解码时间获得模块,用于根据所述当前帧应当播放的时间间隔计算模块计算的当前帧应当播放的时间间隔获得下一帧视频数据和音频数据的解码时间;
所述当前帧应当播放的时间间隔计算模块,还用于根据缓冲区缓存的数据的播放时长设定不同的帧补偿,将接收的视频源数据的帧间隔加上不同的帧补偿得到当前帧应当播放的时间间隔。
8.根据权利要求7所述的装置,其特征在于,所述视频源数据接收模块还用于:
接收到视频源数据时,记录第一帧视频源数据接收时刻的本地时间,并记录接收到的帧数;
再次接收到一帧视频源数据时,记录当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔小于等于第一预设时长,用所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔除以接收上一帧视频源数据后记录的接收到的帧数得到接收的视频源数据的帧间隔,并记录当前接收到的帧数;
若所述当前时间与第一帧视频源数据接收时刻的本地时间的时间间隔大于第一预设时长,则将当前接收到的一帧视频源数据作为第一帧视频源数据,重新计算接收的视频源数据的帧间隔。
9.根据权利要求7所述的装置,其特征在于,所述当前帧应当播放的时间间隔计算模块包括:
缓冲区数据的播放时长计算单元,用于计算当前缓冲区数据的播放时长;
当前帧的帧补偿获得单元,用于根据预设的缓冲区数据的播放时长在不同流畅等级下对应的帧补偿的关系模型获得当前帧的帧补偿;
当前帧应当播放的时间间隔计算单元,用于将接收的视频源数据的帧间隔加上所述当前帧的帧补偿获得单元获得的当前帧的帧补偿得到当前帧应当播放的时间间隔。
10.根据权利要求7所述的装置,其特征在于,所述下一帧数据解码时间获得模块包括:
解码渲染一帧数据的时间获得单元,用于从缓冲区开始读取一帧数据时记录第一时间,对读取的帧数据进行解码渲染成功后记录第二时间,将所述第二时间与第一时间的时间差值作为解码渲染该帧数据的时间;
下一帧数据的解码时间获得单元,用于如果当前帧应当播放的时间间隔大于解码渲染当前帧数据的时间,则在当前帧解码渲染成功后休眠第二时长,并读取下一帧数据进行解码处理,所述第二时长为当前帧应当播放的时间间隔减去解码渲染当前帧数据的时间;
下一帧数据的解码时间获得单元,还用于如果当前帧应当播放的时间间隔小于或等于解码渲染当前帧数据的时间,则读取下一帧数据进行解码处理。
CN201611145087.7A 2016-12-13 2016-12-13 一种视频播放方法及装置 Active CN106713855B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611145087.7A CN106713855B (zh) 2016-12-13 2016-12-13 一种视频播放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611145087.7A CN106713855B (zh) 2016-12-13 2016-12-13 一种视频播放方法及装置

Publications (2)

Publication Number Publication Date
CN106713855A CN106713855A (zh) 2017-05-24
CN106713855B true CN106713855B (zh) 2020-01-07

Family

ID=58937152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611145087.7A Active CN106713855B (zh) 2016-12-13 2016-12-13 一种视频播放方法及装置

Country Status (1)

Country Link
CN (1) CN106713855B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107613407A (zh) * 2017-08-18 2018-01-19 珠海市君天电子科技有限公司 一种视频显示控制方法、装置、电子设备及存储介质
CN107770597A (zh) * 2017-09-28 2018-03-06 北京小鸟科技股份有限公司 音视频同步方法及装置
CN107707860B (zh) * 2017-10-24 2020-04-10 南昌黑鲨科技有限公司 一种视频数据处理方法、处理装置及计算机可读存储介质
CN108681439B (zh) * 2018-05-29 2021-04-27 北京维盛泰科科技有限公司 基于帧率控制的均匀显示方法
CN110545447B (zh) * 2019-07-31 2022-08-09 视联动力信息技术股份有限公司 一种音视频同步的方法及装置
CN110677715B (zh) * 2019-10-11 2022-04-22 北京达佳互联信息技术有限公司 一种解码方法、解码器、电子设备及存储介质
CN112839229A (zh) * 2019-11-25 2021-05-25 合肥杰发科技有限公司 计算解码耗时的方法、计算编码耗时的方法及其相关装置
CN111669645B (zh) * 2020-06-12 2021-09-07 腾讯科技(深圳)有限公司 视频的播放方法、装置、电子设备及存储介质
CN112073751B (zh) * 2020-09-21 2023-03-28 苏州科达科技股份有限公司 视频播放方法、装置、设备及可读存储介质
CN112261445B (zh) * 2020-10-21 2022-07-12 深圳市创维软件有限公司 流媒体播放方法、装置、设备及计算机可读存储介质
CN112565016B (zh) * 2020-12-04 2022-09-30 北京奇艺世纪科技有限公司 异常时延的定位方法、系统、装置、电子设备及存储介质
CN112911376A (zh) * 2021-02-01 2021-06-04 华录智达科技股份有限公司 一种基于实时视频播放流畅的播放方法
CN113286140B (zh) * 2021-05-11 2022-09-02 北京飞讯数码科技有限公司 一种视频编解码测试方法、装置及存储介质
CN113316012B (zh) * 2021-05-26 2022-03-11 深圳市沃特沃德信息有限公司 基于墨水屏设备的音视频帧同步方法、装置和计算机设备
CN113727185B (zh) * 2021-08-20 2024-04-02 百果园技术(新加坡)有限公司 视频帧播放方法及系统
CN113727186B (zh) * 2021-08-26 2024-05-17 百果园技术(新加坡)有限公司 一种实时视频通话的视频播放方法及系统
CN114302230A (zh) * 2021-12-30 2022-04-08 苏州万店掌网络科技有限公司 一种前端播放组件优化方法、系统及存储介质
CN114900507A (zh) * 2022-04-29 2022-08-12 阿里巴巴(中国)有限公司 Rtc音频数据的处理方法、装置、设备以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333795A (zh) * 2014-11-04 2015-02-04 北京佳讯飞鸿电气股份有限公司 一种不依赖时间戳的实时视频码流播放速度控制方法
CN104683866A (zh) * 2013-11-29 2015-06-03 成都鼎桥通信技术有限公司 一种接收视频流的播放处理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140123753A (ko) * 2013-04-15 2014-10-23 삼성전자주식회사 무선 통신 시스템에서 비디오 트래픽 스케줄링 방법 및 장치
US8830367B1 (en) * 2013-10-21 2014-09-09 Gopro, Inc. Frame manipulation to reduce rolling shutter artifacts

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683866A (zh) * 2013-11-29 2015-06-03 成都鼎桥通信技术有限公司 一种接收视频流的播放处理方法
CN104333795A (zh) * 2014-11-04 2015-02-04 北京佳讯飞鸿电气股份有限公司 一种不依赖时间戳的实时视频码流播放速度控制方法

Also Published As

Publication number Publication date
CN106713855A (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
CN106713855B (zh) 一种视频播放方法及装置
US10097878B2 (en) Video playback method and control terminal thereof
US20230245684A1 (en) Variable Speed Playback
WO2016015670A1 (zh) 一种音频流解码方法及装置
CN109587551B (zh) 一种流媒体直播卡顿的判断方法、装置、设备及存储介质
WO2016131223A1 (zh) 一种视频帧丢帧方法及视频发送装置
CN101478683B (zh) 同步音频帧与视频帧
US20200043511A1 (en) Systems and methods for intelligent playback
CN107396171A (zh) 网络直播方法、装置和存储介质
CN103916716A (zh) 一种无线网络下视频实时传输的码率平滑方法
CN102271280A (zh) 一种数字音视频变速播放的方法和装置
JP2010539739A (ja) データ・フローを同期化する方法
CN107371061A (zh) 一种视频流播放方法、装置及设备
CN109167890B (zh) 一种音画同步方法和装置及显示设备
KR20150065069A (ko) 디스플레이 장치, 디스플레이 장치의 영상 표시 방법 및 컴퓨터 판독가능 기록매체
MX2011005782A (es) Metodo y aparato para controlar la reproduccion de datos de video-audio.
WO2022052566A1 (zh) 视频码率调整方法、装置、电子设备和机器可读存储介质
CN112261461B (zh) 蓝牙音画同步方法、装置、显示设备和可读存储介质
CN107948713A (zh) 一种延时直播方法及系统
CN104113778B (zh) 一种视频流解码方法及装置
CN107770624A (zh) 一种直播过程中多媒体文件的播放方法、装置及存储介质
EP3247124A1 (en) Client, streaming media data receiving method and streaming media data transmission system
CN113364767B (zh) 一种流媒体数据显示方法、装置、电子设备及存储介质
CN109495776B (zh) 一种音频发送、播放的方法及智能终端
CN107948206B (zh) 一种多媒体数据下载/或上传的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant