CN106507217A - 视频流的时间戳的处理方法和装置 - Google Patents
视频流的时间戳的处理方法和装置 Download PDFInfo
- Publication number
- CN106507217A CN106507217A CN201610958822.XA CN201610958822A CN106507217A CN 106507217 A CN106507217 A CN 106507217A CN 201610958822 A CN201610958822 A CN 201610958822A CN 106507217 A CN106507217 A CN 106507217A
- Authority
- CN
- China
- Prior art keywords
- timestamp
- frame
- current
- hop value
- video
- 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
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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种视频流的时间戳的处理方法和装置。其中,该方法包括:判断视频流的当前数据帧的时间戳是否发生跳变,其中,当前数据帧包括当前音频帧和当前视频帧;在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值;根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值;以及利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理。本发明解决了相关技术采用锁相环技术处理视频流的时间戳跳变,将会导致硬件性能损耗较大的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种视频流的时间戳的处理方法和装置。
背景技术
在视频直播编码、转码系统中,会因为种种原因产生音视频的时间戳的跳变情况,如果对其处理有细微偏差,随着时间的累积则会产生累积时间戳偏差,引起音视频不同步、卡顿,或者引起播放端解码缓冲区上溢或下溢。对IP流输入的直播转码系统,对时间戳进行处理的最好方式便是保持输入源端的时间戳,对一个音视频帧输入时间戳保持不变,转码后继续输出该音视频帧的时间戳。在出现时间戳跳变的情况下,相关技术一般采用的技术方案是采用锁相环技术对输入时间戳进行时钟跟踪,恢复出源端时钟,再用该时钟重新标记输出音视频的时间戳。但是,该技术方案实现难度较大,硬件性能的损耗也较大,同时要求输入流没有网络抖动,必能使用所有网络流。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种视频流的时间戳的处理方法和装置,以至少解决相关技术采用锁相环技术处理视频流的时间戳跳变,将会导致硬件性能损耗较大的技术问题。
根据本发明实施例的一个方面,提供了一种视频流的时间戳的处理方法,包括:判断视频流的当前数据帧的时间戳是否发生跳变,其中,当前数据帧包括当前音频帧和当前视频帧;在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值;根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值;以及利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理。
根据本发明实施例的另一方面,还提供了一种视频流的时间戳的处理装置,包括:第一判断单元,用于判断视频流的当前数据帧的时间戳是否发生跳变,其中,当前数据帧包括当前音频帧和当前视频帧;获取单元,用于在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值;确定单元,用于根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值;以及处理单元,用于利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理。
在本发明实施例中,通过在确定视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值,并根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值,利用该第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理,达到了无需损耗硬件性能亦能实现对视频流中的数据帧的时间戳的跳变进行处理的目的,进而解决了相关技术采用锁相环技术处理视频流的时间戳跳变,将会导致硬件性能损耗较大的技术问题,从而实现了在平滑视频流的数据帧的时间戳跳变的基础上减少硬件性能的损耗的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的视频流的时间戳的处理方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的视频流的时间戳的处理方法的流程图;
图3是根据本发明实施例的正常时间戳翻转跳变的示意图;
图4是根据本发明实施例的视频流中音频的时间戳发生跳变的示意图;
图5是根据本发明实施例的视频流因丢包、断流、解码失败导致的时间戳跳变的示意图;
图6是根据本发明实施例的源端非正常时间戳跳变的示意图;
图7是根据本发明优选实施例的直播视频流中pts跳变平滑处理流程的示意图;
图8是根据本发明实施例的一种可选的视频流的时间戳的处理装置的示意图;
图9是根据本发明实施例的另一种可选的视频流的时间戳的处理装置的示意图;
图10是根据本发明实施例的另一种可选的视频流的时间戳的处理装置的示意图;
图11是根据本发明实施例的另一种可选的视频流的时间戳的处理装置的示意图;
图12是根据本发明实施例的另一种可选的视频流的时间戳的处理装置的示意图;
图13是根据本发明实施例的另一种可选的视频流的时间戳的处理装置的示意图;
图14是根据本发明实施例的另一种可选的视频流的时间戳的处理装置的示意图;以及
图15是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
时间戳:通常是一个字符序列,唯一地标识某一刻的时间。
实施例1
根据本发明实施例,提供了一种视频流的时间戳的处理方法的方法实施例。
可选地,在本实施例中,上述视频流的时间戳的处理方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的视频流的时间戳的处理方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的视频流的时间戳的处理方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种可选的视频流的时间戳的处理方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,判断视频流的当前数据帧的时间戳是否发生跳变,其中,当前数据帧包括当前音频帧和当前视频帧;
步骤S204,在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值;
步骤S206,根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值;
步骤S208,利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理。
通过上述步骤S202至步骤S208,通过在确定视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值,并根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值,利用该第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理,达到了无需损耗硬件性能亦能实现对视频流中的数据帧的时间戳的跳变进行处理的目的,进而解决了相关技术采用锁相环技术处理视频流的时间戳跳变,将会导致硬件性能损耗较大的技术问题,从而实现了在平滑视频流的数据帧的时间戳跳变的基础上减少硬件性能的损耗的技术效果。
在步骤S202提供的技术方案中,本发明实施例中的视频流可以是直播视频流,需要说明的是,本发明实施例中的视频流可以是网页上直播的视频流,也可以是客户端直播的视频流,还可以是电视终端直播的视频流。视频流可以包括多个数据帧,每个数据帧可以包括音频帧和视频帧,每个数据帧对应一个时间戳,在当前数据帧的时间戳未发生跳变的情况下,当前音频帧的时间戳和当前视频帧的时间戳相同,且数据帧的时间戳呈单调递增趋势。在视频直播转码系统中,有较多处理需要依赖对时间戳的判断,例如,对音视频帧的交织输出、切片处理,如果时间戳不是单调递增,而是出现翻转、跳变(例如变小或者突然增大),则上述处理将会出错,因此本发明实施例在视频直播转码系统中需要实时判断视频流中的当前数据帧的时间戳是否发生跳变,并在确定视频流中的当前数据帧的时间戳发生跳变的情况下,立即对时间戳进行平滑处理,以保证音视频同步,进而实现提高视频流的观看效果的目的。
下面将结合图3至图6对视频流中的数据帧的时间戳的几种跳变情况进行说明,以下几种情况可以分为两类,其中一类属于源端引入的时间戳跳变,另一类属于传输过程中导致的时间戳跳变,例如丢包。此处需要说明的是,在图3至图6中,横轴t表示时间,纵轴pts表示时间戳,此处需要说明的是,为了直观体现时间戳的跳变情况,音频的时间戳(线条a)和视频的时间戳(线条v)均采用水平直线表示,音频的时间戳的跳变值为delta_a,视频的时间戳的跳变值为delta_v。时间戳的跳变情况具体包括:
(1)正常时间戳翻转跳变,如图3所示,音频的时间戳的delta_a与视频的时间戳的跳变值delta_v可以相同,例如ts流中时间戳为33bit,单位90k,26.5小时会翻转一次,flv流中时间戳为32bit,单位ms,49.7天翻转一次。
(2)视频流中某个流出现跳变,但很快恢复正常,例如图4所示的视频的时间戳发生跳变且很快恢复正常,而音频的时间戳未发生跳变,视频的时间戳的跳变值为delta_v。
(3)视频流因丢包、断流、解码失败等原因而导致的时间戳跳变,例如图5所示的跳变情况,音频的时间戳的delta_a与视频的时间戳的跳变值delta_v可以不同,当输入流恢复正常时,处理也需要恢复正常。
(4)源端(可以是编码端)非正常时间戳跳变,例如图6所示的跳变情况,音频的时间戳的delta_a与视频的时间戳的跳变值delta_v可以相同。
如图3至图6所示的时间戳的跳变情况,在当前数据帧(音频帧和/或视频帧)的时间戳小于上一个数据帧的时间戳;或者当前数据帧的时间戳比上一个数据帧的时间戳大于预定阈值的情况下,时间戳会发生跳变。其中,需要说明的是,该预定阈值可以为大于相邻两个时间戳之间的差值的任意数值,该预定阈值可以根据实际需求进行设定或者调整。
基于上述分析,作为一种可选的实施例,步骤S202判断视频流的当前数据帧的时间戳是否发生跳变可以包括:步骤S2022,在出现以下情况中的至少之一时,确定视频流的当前数据帧的时间戳发生跳变:
(1)当前音频帧的时间戳小于上一个音频帧的时间戳;
(2)当前视频帧的时间戳小于上一个视频帧的时间戳;
(3)当前音频帧的时间戳比上一个音频帧的时间戳大于第一预定阈值;
(4)当前视频帧的时间戳比上一个视频帧的时间戳大于第二预定阈值。
需要说明的是,当前数据帧可以包括当前音频帧和当前视频帧,基于可能出现的时间戳的跳变情况,上述可选实施例可以对视频流中的当前音频帧的时间戳和当前视频帧的时间戳进行实时监测,在监测到出现上述四种情况中的至少之一时,可以确定视频流中的当前数据帧的时间戳发生了跳变。还需要说明的是,第一预定阈值和第二预定阈值可以根据实际需求进行设定或调整,本发明实施例对其不做具体限定,第一预定阈值和第二预定阈值可以相同,也可以不同。该实施例通过对当前音频帧的时间戳和当前视频帧的时间戳进行实时监测以判断当前数据帧的时间戳是否发生跳变,能够达到提高判断当前数据帧的时间戳是否发生跳变的准确度的效果。
可选地,该实施例在监测到出现上述四种情况中的至少之一之后,还可以进一步确认视频流中是当前音频帧的时间戳发生了跳变、还是当前视频帧的时间戳发生了跳变、还是当前音频帧的时间戳和当前视频帧的时间戳均发生了跳变,这样能够达到进一步提高判断视频流中的数据帧的时间戳是否发生跳变的精确度,进而为获取当前音频帧的时间戳的跳变值和当前视频帧的时间戳的跳变值的提供了依据。
在步骤S204提供的技术方案中,在确定视频流中的当前数据帧的时间戳发生跳变之后,本发明实施例可以获取当前数据帧的时间戳的跳变值,此处需要说明的是,由于当前数据帧的时间戳发生跳变有可能是当前音频帧的时间戳发生了跳变,也有可能是当前视频帧的时间戳发生了跳变,还有可能是当前音频帧的时间戳和当前视频帧的时间戳均发生了跳变,因此,本发明实施例在确定视频流中的当前数据帧的时间戳发生跳变之后,根据依据当前数据帧的时间戳发生跳变的几种情况来可以获取当前数据帧的时间戳的跳变值。
作为一种可选的实施例,步骤S204在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值可以包括以下步骤:
步骤S2042,在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值。在此情况下,当前数据帧的时间戳的跳变值即为当前音频帧的时间戳的跳变值。
步骤S2044,在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳与上一个视频帧的时间戳的差确定当前视频帧的时间戳的跳变值。在此情况下,当前数据帧的时间戳的跳变值即为当前视频帧的时间戳的跳变值。
步骤S2046,在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值,并将当前视频帧的时间戳与上一个视频帧的时间戳的差确定当前视频帧的时间戳的跳变值。在此情况下,当前数据帧的时间戳的跳变值包括当前音频帧的时间戳的跳变值和当前视频帧的时间戳的跳变值。
需要说明的是,该实施例通过实时判断当前音频帧的时间戳和当前视频帧的时间戳是否发生跳变,并依据上述步骤S2042和步骤S2046所示的当前数据帧的时间戳的跳变情况,获取当前数据帧的时间戳的跳变值,能够达到提高所获取到的当前数据帧的时间戳的跳变值的实时性和准确性的效果。
还需要说明的是,当前音频帧的时间戳的跳变值和当前视频帧的时间戳的跳变值可以为正数,也可以为负数,还可以为0。其中,需要说明的是,以当前音频帧的时间戳的跳变值为例进行说明,如果当前音频帧的时间戳的跳变值为正数时,则说明当前音频帧的时间戳大于与其相邻的上一个音频帧的时间戳,且大于的幅度超过第一预定阈值,进而说明当前音频帧的时间戳发生跳变;如果当前音频帧的时间戳的跳变值为负数时,则说明当前音频帧的时间戳小于与其相邻的上一个音频帧的时间戳,进而说明当前音频帧的时间戳发生跳变;如果当前音频帧的时间戳的跳变值为0,则说明当前音频帧的时间戳未发生跳变。同理,当前视频帧的时间戳的跳变值与此类似。此处需要注意,正常情况下的数据帧(音频帧和/或视频帧)的时间戳呈递增趋势,在当前数据帧的时间戳未发生跳变的情况下,当前数据帧的时间戳应该大于与其相邻的上一个数据帧的时间戳一定阈值,故在当前数据帧的时间戳未发生跳变的情况下,将当前数据帧的时间戳的跳变值默认为0,而并非采用计算当前数据帧的时间戳与上一个数据帧的时间戳的差值作为当前数据帧的时间戳的跳变值的方式。
在实际应用场景中,本发明实施例中视频流的当前数据帧的时间戳发生跳变可以包括以下几种情况,分别为:当前音频帧的时间戳发生跳变而当前视频帧的时间戳未发生跳变;当前音频帧的时间戳未发生跳变而当前视频帧的时间戳发生跳变;当前音频帧的时间戳和当前视频帧的时间戳均发生跳变。针对上述不同的时间戳跳变情况,获取当前数据帧的时间戳的跳变值所采取的方式不同,具体地:
在当前音频帧的时间戳发生跳变而当前视频帧的时间戳未发生跳变的情况下,默认当前视频帧的时间戳的跳变值为0,并将当前音频帧的时间戳的跳变值确定为当前数据帧的时间戳的跳变值,其中,当前音频帧的时间戳的跳变值可以为当前音频帧的时间戳与上一个音频帧的时间戳的差值。
在当前音频帧的时间戳未发生跳变而当前视频帧的时间戳发生跳变的情况下,默认当前音频帧的时间戳的跳变值为0,并将当前视频帧的时间戳的跳变值确定为当前数据帧的时间戳的跳变值,其中,当前视频帧的时间戳的跳变值可以为当前视频帧的时间戳与上一个视频帧的时间戳的差值。
在当前音频帧的时间戳和当前视频帧的时间戳均发生跳变的情况下,当前数据帧的时间戳的跳变值包括当前音频帧的时间戳的跳变值和当前视频帧的时间戳的跳变值,其中,当前音频帧的时间戳的跳变值可以为当前音频帧的时间戳与上一个音频帧的时间戳的差值,当前视频帧的时间戳的跳变值为当前视频帧的时间戳与上一个视频帧的时间戳的差值。
在步骤S206提供的技术方案中,第一时间戳跳变值可以作为对视频流中的当前数据帧之后的数据帧的时间戳进行处理的调整基准值,也即利用第一时间戳跳变值可以对视频流中的当前数据帧之后的数据帧的时间戳进行处理,以实现音视频同步,进而达到提高视频流的播放效果的目的。需要说明的是,第一时间戳跳变值可以为正数,也可以为负数,第一时间戳跳变值可以为当前音频帧的时间戳的跳变值,也可以为当前视频帧的时间戳的跳变值,第一时间戳跳变值的取值可以根据当前数据帧的时间戳的跳变情况进行选择,具体参见以下可选实施例:
作为一种可选的实施例,步骤S206根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值可以包括以下步骤:
步骤S2062,在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;
步骤S2064,在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值;
步骤S2066,在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,从当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中选择较小的一个确定为第一时间戳跳变值。
需要说明的是,在只有当前音频帧的时间戳发生跳变的情况下,第一时间戳跳变值可以为发生跳变的当前音频帧的时间戳的跳变值;在只有当前视频帧的时间戳发生跳变的情况下,第一时间戳跳变值可以为发生跳变的当前视频帧的时间戳的跳变值;在当前音频帧的时间戳和当前视频帧的时间戳均发生跳变的情况下,第一时间戳跳变值可以为发生跳变的当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中的较小的一个。
作为一种可选的实施例,步骤S2066在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,从当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中选择较小的一个确定为第一时间戳跳变值可以包括以下步骤:
步骤S20662,比较当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值;
步骤S20664,在当前音频帧的时间戳的跳变值小于当前视频帧的时间戳的跳变值的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;
步骤S20666,在当前视频帧的时间戳的跳变值小于当前音频帧的时间戳的跳变值的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值。
需要说明的是,在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,在比较当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值的大小时,本发明实施例比较的是绝对值大小。在当前音频帧的时间戳的跳变值的绝对值小于当前视频帧的时间戳的跳变值的绝对值的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;在当前视频帧的时间戳的跳变值的绝对值小于当前音频帧的时间戳的跳变值的绝对值的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值。
该可选实施例通过比较当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值的绝对值的大小,能够达到比较时间戳跳变幅度大小的目的。而且该可选实施例通过选择当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中绝对值较小的跳变值作为第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理,能够实现减少相邻时间戳之间的间隔,进而保证视频流的连续性,避免出现视频卡顿现象,提高用户体验。
在步骤S208提供的技术方案中,在获取到第一时间戳跳变值之后,本发明实施例可以利用该第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理,此处需要说明的是,视频流中可以包括多个数据帧,这多个数据帧中包括当前数据帧,如果与当前数据帧之后的数据帧的时间戳未发生跳变,也即当前数据帧之后的音频帧的时间戳与视频帧的时间戳相同,则本发明实施例可以利用第一时间戳跳变值对当前数据帧之后的数据帧的时间戳进行处理,这样能够保证当前数据帧之后的数据帧的音视频同步,进而提高视频流的播放效果。
作为一种可选的实施例,步骤S208利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理可以包括以下步骤:
步骤S2082,将视频流中的当前音频帧之后的下一个音频帧的时间戳减去第一时间戳跳变值;
步骤S2084,将视频流中的当前视频帧之后的下一个视频帧的时间戳减去第一时间戳跳变值,其中,下一个音频帧的时间戳与下一个视频帧的时间戳相同。
需要说明的是,利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理包括对当前音频帧之后的下一个音频帧的时间戳以及当前视频帧之后的下一个视频帧的时间戳进行处理,此处需要说明的是,当前音频帧之后的下一个音频帧可以为当前音频帧之后的、时间戳未发生跳变的一个或者多个音频帧,同理当前视频帧之后的下一个视频帧可以为当前视频帧之后的、时间戳未发生跳变的一个或者多个视频帧。利用第一时间戳跳变值对当前音频帧之后的下一个音频帧的时间戳进行处理可以是将当前音频帧之后的下一个音频帧的时间戳减去第一时间戳跳变值,利用第一时间戳跳变值对当前视频帧之后的下一个视频帧的时间戳进行处理可以是将当前视频帧之后的下一个视频帧的时间戳减去第一时间戳跳变值。此处需要说明的是,在当前数据帧之后的下一个数据帧的时间戳未发生跳变的情况下,利用第一时间戳跳变值对当前数据帧之后的下一个数据帧进行处理,能够说明当前音频帧之后的下一个音频帧的时间戳与当前视频帧之后的下一个视频帧的时间戳相同。
还需要说明的是,该可选实施例将当前音频帧之后的下一个音频帧的时间戳以及当前视频帧之后的下一个视频帧的时间戳减去同样的第一时间戳跳变值,通过将时间戳相同的下一个音频帧的时间戳和下一个视频帧的时间戳减去同样的第一时间戳跳变值,能够实现保证下一个数据帧的音视频同步的目的。
还需要说明的是,在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,本发明实施例通过从当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中选择较小的一个作为第一时间戳跳变值,并将时间戳未发生跳变的下一个音频帧的时间戳与下一个视频帧的时间戳均减去同样的第一时间戳跳变值,对时间戳相同的下一个音频帧的时间戳与下一个视频帧的时间戳减去较小的第一时间戳跳变值,而不是当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中的较大的跳变值,能够实现减小对下一个音频帧的时间戳与当前音频帧的时间戳的间隔,减小下一个视频帧的时间戳与当前视频帧的时间戳的间隔,进而能够减少视频流卡顿现象,保证视频流播放的流畅性,提高用户观看体验。
作为一种可选的实施例,在视频流的当前数据帧的时间戳发生跳变的情况下,在步骤S204获取当前数据帧的时间戳的跳变值之后,该可选实施例还可以包括:
步骤S205,判断当前数据帧的时间戳的跳变值在预定时间内是否发生变化。
需要说明的是,该实施例对预定时间并不做具体限定,该预定时间可以根据实际需求进行设定或调整,例如预定时间可以是3秒、5秒等。在获取到当前数据帧的时间戳的跳变值之后,该实施例可以先判断当前数据帧的时间戳的跳变值在预定时间内是否发生变化。此处需要说明的是,在当前音频帧的时间戳和当前视频帧的时间戳均发生跳变的情况下,该实施例中判断当前数据帧的时间戳的跳变值在预定时间内是否发生变化具体可以包括判断当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值在预定时间内是否发生变化,如果当前音频帧的时间戳的跳变值在预定时间内发生了变化,则说明当前音频帧之后的某个音频帧的时间戳可能发生了跳变;如果当前视频帧的时间戳的跳变值在预定时间内发生了变化,则说明当前视频帧之后的某个视频帧的时间戳可能发生了跳变,在此情况下,则需要重新获取音频帧的时间戳的跳变值以及视频帧的时间戳的跳变值,利用新获取到的音频帧的时间戳的跳变值以及视频帧的时间戳的跳变值进行相应处理。
如果当前数据帧的时间戳的跳变值在预定时间内未发生变化,则接下来所执行的步骤S206根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值可以包括:步骤S2061,在当前数据帧的时间戳的跳变值在预定时间内未发生变化的情况下,根据所述当前数据帧的时间戳的跳变值确定第一时间戳跳变值。
该可选实施例通过在获取到当前数据帧的时间戳的跳变值之后,判断当前数据帧的时间戳的跳变值在预定时间内是否发生变化,能够实现在当前数据帧的时间戳的跳变值在预定时间内发生变化的情况下,重新获取新的数据帧的时间戳的跳变值,利用新的数据帧的时间戳的跳变值进行相应处理,进而达到对视频流中的数据帧的时间戳进行处理的准确度,以进一步保证视频流的音视频同步。在当前数据帧的时间戳的跳变值在预定时间内未发生变化的情况下,执行根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值,这样相较于每获取到一次当前数据帧的时间戳的跳变值,便执行一次根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值,然后再判断下一个数据帧的时间戳是否发生跳变,通过设定预定时间的判断条件能够减少执行步骤,进而节省网络资源的消耗,提高对视频流中的数据帧的时间戳的处理效率。
本发明还提供了一种优选实施例,该优选实施例提供了一种直播视频流中pts跳变平滑处理的方法,其中,pts为时间戳,直播视频流简称为直播流,该方法假设直播流中的当前音频帧和当前视频帧的时间戳均发生了跳变。该方法结合在直播流中所有可能遇到的pts跳变情况,当出现pts跳变时,分开计算音、视频pts跳变值,在跳变过后同步音、视频pts跳变值,取音、视频pts跳变值中的较小值作为标准pts跳变值,使得音、视频pts跳变值一致,后续的音、视频pts再减去标准pts跳变值,确保输出的pts平滑递增,当再次出现pts跳变时,再重复此流程。
图7是根据本发明优选实施例的直播视频流中pts跳变平滑处理流程的示意图,如图7所示,该处理流程具体包括以下几个步骤:
步骤一,判断输入直播流是否出现pts跳变。分别对音、视频pts进行判断,若当前数据帧的pts小于上一个数据帧的pts则为出现pts跳变,若当前数据帧的pts大于上一个数据帧的pts200ms则为出现pts跳变。此处需要说明的是,200ms只是该优选实施例的一种可选示例,该优选实施例还可以设定其他判断标准,此处不再一一举例说明。
步骤二,计算音频pts跳变值delta_a。将当前音频帧pts减去上一个音频帧pts则为delta_a。
步骤三,计算视频pts跳变值delta_v。将当前视频帧pts减去上一个视频帧pts则为delta_v。
步骤四,同步音、视频pts跳变值。可选地,如果音、视频pts跳变值在3s内没有变化,则取其中较小值为标准pts跳变值,利用该标准pts跳变值对直播流中的音、视频的时间戳进行平滑处理可以确保音画同步和pts递增,而不会变小。此处需要说明的是,3s只是该优选实施例的一种可选示例,该优选实施例还可以设定其他判断标准,此处不再一一举例说明。
步骤五,应用跳变值,也即利用该标准pts跳变值对直播流中的音、视频的时间戳进行平滑处理。具体地,可以将输入音、视频pts减去该标准pts跳变值,则为输出pts。
该优选实施例能够平滑直播流的音、视频的pts跳变,使pts单调递增,以确保直播流音画同步。
需要说明的是,本发明实施例通过上述步骤能够达到无需损耗硬件性能亦能实现对视频流中的数据帧的时间戳的跳变进行处理的目的,进而解决了相关技术采用锁相环技术处理视频流的时间戳跳变,将会导致硬件性能损耗较大的技术问题,从而实现了在平滑视频流的数据帧的时间戳跳变的基础上减少硬件性能的损耗的技术效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述视频流的时间戳的处理方法的视频流的时间戳的处理装置。图8是根据本发明实施例的一种可选的视频流的时间戳的处理装置的示意图,如图8所示,该装置可以包括:
第一判断单元22,用于判断视频流的当前数据帧的时间戳是否发生跳变,其中,当前数据帧包括当前音频帧和当前视频帧;获取单元24,用于在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值;确定单元26,用于根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值;以及处理单元28,用于利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理。
需要说明的是,该实施例中的第一判断单元22可以用于执行本申请实施例1中的步骤S202,该实施例中的获取单元24可以用于执行本申请实施例1中的步骤S204,该实施例中的确定单元26可以用于执行本申请实施例1中的步骤S206,该实施例中的处理单元28可以用于执行本申请实施例1中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,如图9所示,确定单元26可以包括:第一确定模块262,用于在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;第二确定模块264,用于在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值;第三确定模块266,用于在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,从当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中选择较小的一个确定为第一时间戳跳变值。
需要说明的是,该实施例中的第一确定模块262可以用于执行本申请实施例1中的步骤S2062,该实施例中的第二确定模块264可以用于执行本申请实施例1中的步骤S2064,该实施例中的第三确定模块266可以用于执行本申请实施例1中的步骤S2066。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,如图10所示,第三确定模块266可以包括:比较模块2662,用于比较当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值;第一确定子模块2664,用于在当前音频帧的时间戳的跳变值小于当前视频帧的时间戳的跳变值的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;第二确定子模块2666,用于在当前视频帧的时间戳的跳变值小于当前音频帧的时间戳的跳变值的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值。
需要说明的是,该实施例中的比较模块2662可以用于执行本申请实施例1中的步骤S20662,该实施例中的第一确定子模块2664可以用于执行本申请实施例1中的步骤S20664,该实施例中的第二确定子模块2666可以用于执行本申请实施例1中的步骤S20666。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,如图11所示,该实施例的视频流的时间戳的处理装置还可以包括:第二判断单元25,用于在视频流的当前数据帧的时间戳发生跳变的情况下,在获取当前数据帧的时间戳的跳变值之后,判断当前数据帧的时间戳的跳变值在预定时间内是否发生变化。相应地,选择单元26可以包括:第四确定模块261,用于在当前数据帧的时间戳的跳变值在预定时间内未发生变化的情况下,根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值。
需要说明的是,该实施例中的第二判断单元25可以用于执行本申请实施例1中的步骤S205,该实施例中的第四确定模块261可以用于执行本申请实施例1中的步骤S2061。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,如图12所示,第一判断单元22可以包括:第五确定模块222,用于在出现以下情况中的至少之一时,确定视频流的当前数据帧的时间戳发生跳变:当前音频帧的时间戳小于上一个音频帧的时间戳;当前视频帧的时间戳小于上一个视频帧的时间戳;当前音频帧的时间戳比上一个音频帧的时间戳大于第一预定阈值;当前视频帧的时间戳比上一个视频帧的时间戳大于第二预定阈值。
需要说明的是,该实施例中的第五确定模块222可以用于执行本申请实施例1中的步骤S2022。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,如图13所示,获取单元24可以包括:第六确定模块242,用于在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值;第七确定模块244,用于在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳与上一个视频帧的时间戳的差确定为当前视频帧的时间戳的跳变值;第八确定模块246,用于在当前音频帧的时间戳和当前视频帧的时间戳均发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值,并将当前视频帧的时间戳与上一个视频帧的时间戳的差确定为当前视频帧的时间戳的跳变值。
需要说明的是,该实施例中的第六确定模块242可以用于执行本申请实施例1中的步骤S2042,该实施例中的第七确定模块244可以用于执行本申请实施例1中的步骤S2044,该实施例中的第八确定模块246可以用于执行本申请实施例1中的步骤S2046。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
作为一种可选的实施例,如图14所示,处理单元28可以包括:第一处理模块282,用于将视频流中的当前音频帧之后的下一个音频帧的时间戳减去第一时间戳跳变值;第二处理模块284,用于将视频流中的当前视频帧之后的下一个视频帧的时间戳减去第一时间戳跳变值,其中,下一个音频帧的时间戳与下一个视频帧的时间戳相同。
需要说明的是,该实施例中的第一处理模块282可以用于执行本申请实施例1中的步骤S2082,该实施例中的第二处理模块284可以用于执行本申请实施例1中的步骤S2084。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,达到了无需损耗硬件性能亦能实现对视频流中的数据帧的时间戳的跳变进行处理的目的,进而解决了相关技术采用锁相环技术处理视频流的时间戳跳变,将会导致硬件性能损耗较大的技术问题,从而实现了在平滑视频流的数据帧的时间戳跳变的基础上减少硬件性能的损耗的技术效果。
实施例3
根据本发明实施例,还提供了一种用于实施上述视频流的时间戳的处理方法的服务器或终端。
图15是根据本发明实施例的一种终端的结构框图,如图15所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图15所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的视频流的时间戳的处理方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的视频流的时间戳的处理方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:判断视频流的当前数据帧的时间戳是否发生跳变,其中,当前数据帧包括当前音频帧和当前视频帧;在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值;根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值;以及利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理。
处理器201还用于执行下述步骤:在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值;在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,从当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中选择较小的一个确定为第一时间戳跳变值。
处理器201还用于执行下述步骤:比较当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值;在当前音频帧的时间戳的跳变值小于当前视频帧的时间戳的跳变值的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;在当前视频帧的时间戳的跳变值小于当前音频帧的时间戳的跳变值的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值。
处理器201还用于执行下述步骤:在视频流的当前数据帧的时间戳发生跳变的情况下,在获取当前数据帧的时间戳的跳变值之后,判断当前数据帧的时间戳的跳变值在预定时间内是否发生变化;在当前数据帧的时间戳的跳变值在预定时间内均未发生变化的情况下,根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值。
处理器201还用于执行下述步骤:在出现以下情况中的至少之一时,确定视频流的当前数据帧的时间戳发生跳变:当前音频帧的时间戳小于上一个音频帧的时间戳;当前视频帧的时间戳小于上一个视频帧的时间戳;当前音频帧的时间戳比上一个音频帧的时间戳大于第一预定阈值;当前视频帧的时间戳比上一个视频帧的时间戳大于第二预定阈值。
处理器201还用于执行下述步骤:在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值;在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳与上一个视频帧的时间戳的差确定为当前视频帧的时间戳的跳变值在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值,并将当前视频帧的时间戳与上一个视频帧的时间戳的差确定为当前视频帧的时间戳的跳变值。
处理器201还用于执行下述步骤:将视频流中的当前音频帧之后的下一个音频帧的时间戳减去第一时间戳跳变值;将视频流中的当前视频帧之后的下一个视频帧的时间戳减去第一时间戳跳变值,其中,下一个音频帧的时间戳与下一个视频帧的时间戳相同。
采用本发明实施例,提供了一种视频流的时间戳的处理方案。该方案通过在确定视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值,并根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值,利用该第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理,达到了无需损耗硬件性能亦能实现对视频流中的数据帧的时间戳的跳变进行处理的目的,进而解决了相关技术采用锁相环技术处理视频流的时间戳跳变,将会导致硬件性能损耗较大的技术问题,从而实现了在平滑视频流的数据帧的时间戳跳变的基础上减少硬件性能的损耗的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图15所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,终端还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行视频流的时间戳的处理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,判断视频流的当前数据帧的时间戳是否发生跳变,其中,当前数据帧包括当前音频帧和当前视频帧;
S2,在视频流的当前数据帧的时间戳发生跳变的情况下,获取当前数据帧的时间戳的跳变值;
S3,根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值;
S4,利用第一时间戳跳变值对视频流中的当前数据帧之后的数据帧的时间戳进行处理。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值;在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,从当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值中选择较小的一个确定为第一时间戳跳变值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:比较当前音频帧的时间戳的跳变值与当前视频帧的时间戳的跳变值;在当前音频帧的时间戳的跳变值小于当前视频帧的时间戳的跳变值的情况下,将当前音频帧的时间戳的跳变值确定为第一时间戳跳变值;在当前视频帧的时间戳的跳变值小于当前音频帧的时间戳的跳变值的情况下,将当前视频帧的时间戳的跳变值确定为第一时间戳跳变值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在视频流的当前数据帧的时间戳发生跳变的情况下,在获取当前数据帧的时间戳的跳变值之后,判断当前数据帧的时间戳的跳变值在预定时间内是否发生变化;在当前数据帧的时间戳的跳变值在预定时间内均未发生变化的情况下,根据当前数据帧的时间戳的跳变值确定第一时间戳跳变值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在出现以下情况中的至少之一时,确定视频流的当前数据帧的时间戳发生跳变:当前音频帧的时间戳小于上一个音频帧的时间戳;当前视频帧的时间戳小于上一个视频帧的时间戳;当前音频帧的时间戳比上一个音频帧的时间戳大于第一预定阈值;当前视频帧的时间戳比上一个视频帧的时间戳大于第二预定阈值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在当前音频帧的时间戳发生跳变且当前视频帧的时间戳未发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值;在当前音频帧的时间戳未发生跳变且当前视频帧的时间戳发生跳变的情况下,将当前视频帧的时间戳与上一个视频帧的时间戳的差确定为当前视频帧的时间戳的跳变值在当前音频帧的时间戳与当前视频帧的时间戳均发生跳变的情况下,将当前音频帧的时间戳与上一个音频帧的时间戳的差确定为当前音频帧的时间戳的跳变值,并将当前视频帧的时间戳与上一个视频帧的时间戳的差确定为当前视频帧的时间戳的跳变值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:将视频流中的当前音频帧之后的下一个音频帧的时间戳减去第一时间戳跳变值;将视频流中的当前视频帧之后的下一个视频帧的时间戳减去第一时间戳跳变值,其中,下一个音频帧的时间戳与下一个视频帧的时间戳相同。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种视频流的时间戳的处理方法,其特征在于,包括:
判断视频流的当前数据帧的时间戳是否发生跳变,其中,所述当前数据帧包括当前音频帧和当前视频帧;
在所述视频流的所述当前数据帧的时间戳发生跳变的情况下,获取所述当前数据帧的时间戳的跳变值;
根据所述当前数据帧的时间戳的跳变值确定第一时间戳跳变值;以及
利用所述第一时间戳跳变值对所述视频流中的所述当前数据帧之后的数据帧的时间戳进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前数据帧的时间戳的跳变值确定第一时间戳跳变值包括:
在所述当前音频帧的时间戳发生跳变且所述当前视频帧的时间戳未发生跳变的情况下,将所述当前音频帧的时间戳的跳变值确定为所述第一时间戳跳变值;
在所述当前音频帧的时间戳未发生跳变且所述当前视频帧的时间戳发生跳变的情况下,将所述当前视频帧的时间戳的跳变值确定为所述第一时间戳跳变值;
在所述当前音频帧的时间戳与所述当前视频帧的时间戳均发生跳变的情况下,从所述当前音频帧的时间戳的跳变值与所述当前视频帧的时间戳的跳变值中选择较小的一个确定为所述第一时间戳跳变值。
3.根据权利要求2所述的方法,其特征在于,所述在所述当前音频帧的时间戳与所述当前视频帧的时间戳均发生跳变的情况下,从所述当前音频帧的时间戳的跳变值与所述当前视频帧的时间戳的跳变值中选择较小的一个确定为所述第一时间戳跳变值包括:
比较所述当前音频帧的时间戳的跳变值与所述当前视频帧的时间戳的跳变值;
在所述当前音频帧的时间戳的跳变值小于所述当前视频帧的时间戳的跳变值的情况下,将所述当前音频帧的时间戳的跳变值确定为所述第一时间戳跳变值;
在所述当前视频帧的时间戳的跳变值小于所述当前音频帧的时间戳的跳变值的情况下,将所述当前视频帧的时间戳的跳变值确定为所述第一时间戳跳变值。
4.根据权利要求1所述的方法,其特征在于,
在所述视频流的所述当前数据帧的时间戳发生跳变的情况下,在所述获取所述当前数据帧的时间戳的跳变值之后,所述方法还包括:判断所述当前数据帧的时间戳的跳变值在预定时间内是否发生变化;
所述根据所述当前数据帧的时间戳的跳变值确定第一时间戳跳变值包括:在所述当前数据帧的时间戳的跳变值在所述预定时间内未发生变化的情况下,根据所述当前数据帧的时间戳的跳变值确定所述第一时间戳跳变值。
5.根据权利要求1所述的方法,其特征在于,所述判断视频流的当前数据帧的时间戳是否发生跳变包括:
在出现以下情况中的至少之一时,确定所述视频流的所述当前数据帧的时间戳发生跳变:
所述当前音频帧的时间戳小于上一个音频帧的时间戳;
所述当前视频帧的时间戳小于上一个视频帧的时间戳;
所述当前音频帧的时间戳比所述上一个音频帧的时间戳大于第一预定阈值;
所述当前视频帧的时间戳比所述上一个视频帧的时间戳大于第二预定阈值。
6.根据权利要求1所述的方法,其特征在于,在所述视频流的所述当前数据帧的时间戳发生跳变的情况下,所述获取所述当前数据帧的时间戳的跳变值包括:
在所述当前音频帧的时间戳发生跳变且所述当前视频帧的时间戳未发生跳变的情况下,将所述当前音频帧的时间戳与上一个音频帧的时间戳的差确定为所述当前音频帧的时间戳的跳变值;
在所述当前音频帧的时间戳未发生跳变且所述当前视频帧的时间戳发生跳变的情况下,将所述当前视频帧的时间戳与上一个视频帧的时间戳的差确定为所述当前视频帧的时间戳的跳变值;
在所述当前音频帧的时间戳与所述当前视频帧的时间戳均发生跳变的情况下,将所述当前音频帧的时间戳与上一个音频帧的时间戳的差确定为所述当前音频帧的时间戳的跳变值,并将所述当前视频帧的时间戳与上一个视频帧的时间戳的差确定为所述当前视频帧的时间戳的跳变值。
7.根据权利要求1所述的方法,其特征在于,所述利用所述第一时间戳跳变值对所述视频流中的所述当前数据帧之后的数据帧的时间戳进行处理包括:
将所述视频流中的所述当前音频帧之后的下一个音频帧的时间戳减去所述第一时间戳跳变值;
将所述视频流中的所述当前视频帧之后的下一个视频帧的时间戳减去所述第一时间戳跳变值,其中,所述下一个音频帧的时间戳与所述下一个视频帧的时间戳相同。
8.一种视频流的时间戳的处理装置,其特征在于,包括:
第一判断单元,用于判断视频流的当前数据帧的时间戳是否发生跳变,其中,所述当前数据帧包括当前音频帧和当前视频帧;
获取单元,用于在所述视频流的所述当前数据帧的时间戳发生跳变的情况下,获取所述当前数据帧的时间戳的跳变值;
确定单元,用于根据所述当前数据帧的时间戳的跳变值确定第一时间戳跳变值;以及
处理单元,用于利用所述第一时间戳跳变值对所述视频流中的所述当前数据帧之后的数据帧的时间戳进行处理。
9.根据权利要求8所述的装置,其特征在于,所述确定单元包括:
第一确定模块,用于在所述当前音频帧的时间戳发生跳变且所述当前视频帧的时间戳未发生跳变的情况下,将所述当前音频帧的时间戳的跳变值确定为所述第一时间戳跳变值;
第二确定模块,用于在所述当前音频帧的时间戳未发生跳变且所述当前视频帧的时间戳发生跳变的情况下,将所述当前视频帧的时间戳的跳变值确定为所述第一时间戳跳变值;
第三确定模块,用于在所述当前音频帧的时间戳与所述当前视频帧的时间戳均发生跳变的情况下,从所述当前音频帧的时间戳的跳变值与所述当前视频帧的时间戳的跳变值中选择较小的一个确定为所述第一时间戳跳变值。
10.根据权利要求9所述的装置,其特征在于,所述第三确定模块包括:
比较模块,用于比较所述当前音频帧的时间戳的跳变值与所述当前视频帧的时间戳的跳变值;
第一确定子模块,用于在所述当前音频帧的时间戳的跳变值小于所述当前视频帧的时间戳的跳变值的情况下,将所述当前音频帧的时间戳的跳变值确定为所述第一时间戳跳变值;
第二确定子模块,用于在所述当前视频帧的时间戳的跳变值小于所述当前音频帧的时间戳的跳变值的情况下,将所述当前视频帧的时间戳的跳变值确定为所述第一时间戳跳变值。
11.根据权利要求8所述的装置,其特征在于,
所述装置还包括:第二判断单元,用于在所述视频流的所述当前数据帧的时间戳发生跳变的情况下,在所述获取所述当前数据帧的时间戳的跳变值之后,判断所述当前数据帧的时间戳的跳变值在预定时间内是否发生变化;
所述确定单元包括:第四确定模块,用于在所述当前数据帧的时间戳的跳变值在所述预定时间内未发生变化的情况下,根据所述当前数据帧的时间戳的跳变值确定所述第一时间戳跳变值。
12.根据权利要求8所述的装置,其特征在于,所述第一判断单元包括:
第五确定模块,用于在出现以下情况中的至少之一时,确定所述视频流的所述当前数据帧的时间戳发生跳变:
所述当前音频帧的时间戳小于上一个音频帧的时间戳;
所述当前视频帧的时间戳小于上一个视频帧的时间戳;
所述当前音频帧的时间戳比所述上一个音频帧的时间戳大于第一预定阈值;
所述当前视频帧的时间戳比所述上一个视频帧的时间戳大于第二预定阈值。
13.根据权利要求8所述的装置,其特征在于,所述获取单元包括:
第六确定模块,用于在所述当前音频帧的时间戳发生跳变且所述当前视频帧的时间戳未发生跳变的情况下,将所述当前音频帧的时间戳与上一个音频帧的时间戳的差确定为所述当前音频帧的时间戳的跳变值;
第七确定模块,用于在所述当前音频帧的时间戳未发生跳变且所述当前视频帧的时间戳发生跳变的情况下,将所述当前视频帧的时间戳与上一个视频帧的时间戳的差确定为所述当前视频帧的时间戳的跳变值;
第八确定模块,用于在所述当前音频帧的时间戳与所述当前视频帧的时间戳均发生跳变的情况下,将所述当前音频帧的时间戳与上一个音频帧的时间戳的差确定为所述当前音频帧的时间戳的跳变值,并将所述当前视频帧的时间戳与上一个视频帧的时间戳的差确定为所述当前视频帧的时间戳的跳变值。
14.根据权利要求8所述的装置,其特征在于,所述处理单元包括:
第一处理模块,用于将所述视频流中的所述当前音频帧之后的下一个音频帧的时间戳减去所述第一时间戳跳变值;
第二处理模块,用于将所述视频流中的所述当前视频帧之后的下一个视频帧的时间戳减去所述第一时间戳跳变值,其中,所述下一个音频帧的时间戳与所述下一个视频帧的时间戳相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610958822.XA CN106507217B (zh) | 2016-10-27 | 2016-10-27 | 视频流的时间戳的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610958822.XA CN106507217B (zh) | 2016-10-27 | 2016-10-27 | 视频流的时间戳的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106507217A true CN106507217A (zh) | 2017-03-15 |
CN106507217B CN106507217B (zh) | 2019-07-02 |
Family
ID=58321482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610958822.XA Active CN106507217B (zh) | 2016-10-27 | 2016-10-27 | 视频流的时间戳的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106507217B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109089130A (zh) * | 2018-09-18 | 2018-12-25 | 网宿科技股份有限公司 | 一种调整直播视频的时间戳的方法和装置 |
CN109729404A (zh) * | 2019-01-15 | 2019-05-07 | 晶晨半导体(上海)股份有限公司 | 一种基于嵌入式的播放器的同步调制方法及系统 |
CN109905763A (zh) * | 2019-03-20 | 2019-06-18 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
CN111836071A (zh) * | 2020-07-16 | 2020-10-27 | 全时云商务服务股份有限公司 | 一种基于云会议的多媒体处理方法、装置及存储介质 |
CN111954050A (zh) * | 2019-05-14 | 2020-11-17 | 福州瑞芯微电子股份有限公司 | 一种多设备间视频同步的方法及系统 |
CN112579820A (zh) * | 2019-09-27 | 2021-03-30 | 浙江宇视科技有限公司 | 时间跳变的录像数据处理方法、装置、介质及电子设备 |
CN113573119A (zh) * | 2021-06-15 | 2021-10-29 | 荣耀终端有限公司 | 多媒体数据的时间戳生成方法及装置 |
CN113973215A (zh) * | 2021-10-25 | 2022-01-25 | 北京字节跳动网络技术有限公司 | 数据去重方法、装置及存储介质 |
US11399052B2 (en) | 2020-10-15 | 2022-07-26 | Realtek Semiconductor Corporation | Timestamp processing methods for streaming media |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148304A (en) * | 1997-03-19 | 2000-11-14 | Microsoft Corporation | Navigating multimedia content using a graphical user interface with multiple display regions |
CN101848396A (zh) * | 2009-11-30 | 2010-09-29 | 深圳市致芯微电子股份有限公司 | 传输流音视频同步及防抖动方法 |
US20110063504A1 (en) * | 2009-03-16 | 2011-03-17 | Yoshimasa Honda | Audio and video communications apparatus and communications method thereof |
CN102075803A (zh) * | 2010-12-22 | 2011-05-25 | Tcl通力电子(惠州)有限公司 | 一种播放音视频同步的方法 |
CN102780929A (zh) * | 2012-05-31 | 2012-11-14 | 新奥特(北京)视频技术有限公司 | 一种通过处理时码跳变以使视音频同步的方法 |
US20130251343A1 (en) * | 2012-03-25 | 2013-09-26 | Chun-Ming Lai | Method for performing fluent playback control in response to decoding status, and associated apparatus |
CN104394450A (zh) * | 2014-11-14 | 2015-03-04 | 青岛海信宽带多媒体技术有限公司 | 一种多媒体帧的处理方法及装置 |
-
2016
- 2016-10-27 CN CN201610958822.XA patent/CN106507217B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148304A (en) * | 1997-03-19 | 2000-11-14 | Microsoft Corporation | Navigating multimedia content using a graphical user interface with multiple display regions |
US20110063504A1 (en) * | 2009-03-16 | 2011-03-17 | Yoshimasa Honda | Audio and video communications apparatus and communications method thereof |
CN101848396A (zh) * | 2009-11-30 | 2010-09-29 | 深圳市致芯微电子股份有限公司 | 传输流音视频同步及防抖动方法 |
CN102075803A (zh) * | 2010-12-22 | 2011-05-25 | Tcl通力电子(惠州)有限公司 | 一种播放音视频同步的方法 |
US20130251343A1 (en) * | 2012-03-25 | 2013-09-26 | Chun-Ming Lai | Method for performing fluent playback control in response to decoding status, and associated apparatus |
CN102780929A (zh) * | 2012-05-31 | 2012-11-14 | 新奥特(北京)视频技术有限公司 | 一种通过处理时码跳变以使视音频同步的方法 |
CN104394450A (zh) * | 2014-11-14 | 2015-03-04 | 青岛海信宽带多媒体技术有限公司 | 一种多媒体帧的处理方法及装置 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3852376A4 (en) * | 2018-09-18 | 2021-12-22 | Wangsu Science & Technology Co., Ltd. | METHOD AND DEVICE FOR ADAPTING THE TIME STAMP OF A LIVE RADIO VIDEO |
CN109089130B (zh) * | 2018-09-18 | 2020-05-22 | 网宿科技股份有限公司 | 一种调整直播视频的时间戳的方法和装置 |
CN109089130A (zh) * | 2018-09-18 | 2018-12-25 | 网宿科技股份有限公司 | 一种调整直播视频的时间戳的方法和装置 |
CN109729404A (zh) * | 2019-01-15 | 2019-05-07 | 晶晨半导体(上海)股份有限公司 | 一种基于嵌入式的播放器的同步调制方法及系统 |
CN109729404B (zh) * | 2019-01-15 | 2021-06-04 | 晶晨半导体(上海)股份有限公司 | 一种基于嵌入式的播放器的同步调制方法 |
CN109905763A (zh) * | 2019-03-20 | 2019-06-18 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
CN109905763B (zh) * | 2019-03-20 | 2021-09-10 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
CN111954050A (zh) * | 2019-05-14 | 2020-11-17 | 福州瑞芯微电子股份有限公司 | 一种多设备间视频同步的方法及系统 |
CN112579820B (zh) * | 2019-09-27 | 2023-03-24 | 浙江宇视科技有限公司 | 时间跳变的录像数据处理方法、装置、介质及电子设备 |
CN112579820A (zh) * | 2019-09-27 | 2021-03-30 | 浙江宇视科技有限公司 | 时间跳变的录像数据处理方法、装置、介质及电子设备 |
CN111836071A (zh) * | 2020-07-16 | 2020-10-27 | 全时云商务服务股份有限公司 | 一种基于云会议的多媒体处理方法、装置及存储介质 |
CN111836071B (zh) * | 2020-07-16 | 2021-01-05 | 全时云商务服务股份有限公司 | 一种基于云会议的多媒体处理方法、装置及存储介质 |
US11399052B2 (en) | 2020-10-15 | 2022-07-26 | Realtek Semiconductor Corporation | Timestamp processing methods for streaming media |
TWI783281B (zh) * | 2020-10-15 | 2022-11-11 | 瑞昱半導體股份有限公司 | 串流媒體的時戳處理方法 |
CN113573119A (zh) * | 2021-06-15 | 2021-10-29 | 荣耀终端有限公司 | 多媒体数据的时间戳生成方法及装置 |
CN113973215A (zh) * | 2021-10-25 | 2022-01-25 | 北京字节跳动网络技术有限公司 | 数据去重方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106507217B (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106507217A (zh) | 视频流的时间戳的处理方法和装置 | |
US11606564B2 (en) | Video encoding code rate control method, apparatus, and device, and storage medium | |
US11166330B2 (en) | Data-stream allocation method for link aggregation and related devices | |
CN104918136B (zh) | 视频定位方法和装置 | |
CN104780339A (zh) | 一种即时视频中的表情特效动画加载方法和电子设备 | |
EP2724343B1 (en) | Video remixing system | |
CN105282547B (zh) | 一种视频编码的码率控制方法及装置 | |
CN103841461B (zh) | 信息处理方法、装置及电子设备 | |
CN105677265A (zh) | 一种显示方法及终端 | |
CN105554430B (zh) | 一种视频通话方法、系统及装置 | |
CN106878767A (zh) | 视频播放方法和装置 | |
US10021433B1 (en) | Video-production system with social-media features | |
CN109819161A (zh) | 一种帧率的调整方法、装置、终端及可读存储介质 | |
CN104822008A (zh) | 视频同步方法及装置 | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
CN105516638B (zh) | 一种视频通话方法、装置和系统 | |
CN106162105B (zh) | 一种视频监控系统中的摄像机参数控制方法及装置 | |
CN109147788A (zh) | 本地语音库的更新方法及装置 | |
CN111327908A (zh) | 一种视频处理方法及相关装置 | |
CN106791850A (zh) | 视频编码方法及装置 | |
CN107623833B (zh) | 视频会议的控制方法、装置及系统 | |
CN105872765A (zh) | 制作视频集锦的方法、装置、电子设备、服务器及系统 | |
KR20230008122A (ko) | 동영상 데이터 처리 방법, 장치 및 전자기기 | |
CN104469406A (zh) | 一种网络资源的处理方法及装置 | |
CN103828381A (zh) | 用于音频/视频时钟恢复的自适应pid控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |