CN111083162B - 多媒体流卡顿检测方法和装置 - Google Patents
多媒体流卡顿检测方法和装置 Download PDFInfo
- Publication number
- CN111083162B CN111083162B CN201911396939.3A CN201911396939A CN111083162B CN 111083162 B CN111083162 B CN 111083162B CN 201911396939 A CN201911396939 A CN 201911396939A CN 111083162 B CN111083162 B CN 111083162B
- Authority
- CN
- China
- Prior art keywords
- data
- audio
- time
- audio frame
- frames
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本公开提供了一种多媒体流卡顿检测方法和装置,属于多媒体技术领域。该方法包括:获取多媒体流传输的数据帧并保存数据帧的时间戳;按照多媒体播放规则获取数据帧的时间戳,多媒体播放规则用于指示非卡顿情况下播放的数据帧的数量;基于获取到的数据帧的时间戳确定多媒体流的卡顿情况。通过将多媒体流传输的数据帧并将数据帧的时间戳保存,然后根据多媒体播放规则从本地获取数据帧的时间戳,由于多媒体播放规则指示的是非卡顿情况下播放的数据帧的数量,因此,可以根据实际是否获取到该规则所限定的数量的数据帧的时间戳,以及数据帧的时间戳之间的时间间隔等,确定多媒体流的卡顿情况。
Description
技术领域
本公开涉及多媒体技术领域,特别涉及一种多媒体流卡顿检测方法和装置。
背景技术
随着多媒体技术的发展,观看在线视频和直播成为人们日常生活中必不可少的娱乐活动。
在线视频和直播网站,通过内容分发网络(Content Delivery Network,CDN)将内容发送给用户。因此,内容分发网络推送的多媒体流的质量,影响用户的观看体验。
相关技术中,对于内容分发网络推送的多媒体流的评价,通常是基于通信质量,例如延迟多少、丢包多少,但是这种评价并不能体现出内容分发网络推送的多媒体流在实际观看中是否卡顿等情况。
发明内容
本公开实施例提供了一种多媒体流卡顿检测方法和装置,能够体现出多媒体流在实际观看中是否卡顿等情况。所述技术方案如下:
一方面,本公开实施例提供了一种多媒体流卡顿检测方法,所述方法包括:
获取多媒体流传输的数据帧并保存所述数据帧的时间戳;
按照多媒体播放规则获取所述数据帧的时间戳,所述多媒体播放规则用于指示非卡顿情况下播放的数据帧的数量;
基于获取到的所述数据帧的时间戳确定所述多媒体流的卡顿情况。
可选地,所述获取多媒体流传输的数据帧,包括:
创建数据获取进程;
采用所述数据获取进程周期循环地从服务器获取所述多媒体流传输的数据帧。
可选地,所述数据帧包括音频帧和视频帧;
保存所述数据帧的时间戳,包括:
将所述音频帧的时间戳和所述视频帧的时间戳分别缓存到两个队列中。
可选地,所述按照多媒体播放规则获取所述数据帧的时间戳,包括:
基于所述多媒体播放规则确定周期时间内应该播放的第一音频帧数;
在所述周期时间内,从存储所述音频帧的时间戳的队列中获取所述第一音频帧数的音频帧的时间戳。
可选地,所述多媒体播放规则包括音频参数,所述音频参数用于指示单位时间内播放的数据量;
所述基于所述多媒体播放规则确定周期时间内应该播放的第一音频帧数,包括:
基于所述音频参数和周期时间计算第一数据量;
基于所述第一数据量和每个音频帧的长度,计算帧数;
将所述帧数向上取整得到第一音频帧数。
可选地,所述基于所述音频参数和周期时间计算第一数据量,包括:
采用所述单位时间内播放的数据量和所述周期时间计算得到第二数据量;
获取上一周期的剩余数据量,所述剩余数据量为上一周期进行帧数取整后所述第一音频帧数包括的数据量,相较于上一周期的所述第一数据量多出的数据量;
采用所述剩余数据量加上所述第二数据量,得到所述第一数据量。
可选地,所述基于获取到的所述数据帧的时间戳确定所述多媒体流的卡顿情况,包括:
响应于获取到的音频帧的时间戳的数量小于所述第一音频帧数,确定音频卡顿。
可选地,所述方法还包括:
将被获取到的音频帧的时间戳从存储所述音频帧的时间戳的队列中移除。
可选地,所述按照多媒体播放规则获取所述数据帧的时间戳,包括:
确定每个周期时间从所述音频帧的时间戳的队列中获取到的最后一个音频帧的时间戳;
从存储所述视频帧的时间戳的队列中获取时间戳不超过所述最后一个音频帧的时间戳,且时间戳最大的视频帧的时间戳。
可选地,所述基于获取到的所述数据帧的时间戳确定所述多媒体流的卡顿情况,包括:
响应于连续两次获取到的视频帧的时间戳的时间间隔大于阈值,确定视频卡顿。
另一方面,本公开实施例提供了一种多媒体流卡顿检测装置,所述装置包括:
第一获取模块,被配置为获取多媒体流传输的数据帧并保存所述数据帧的时间戳;
第二获取模块,被配置为按照多媒体播放规则获取所述数据帧的时间戳,所述多媒体播放规则用于指示非卡顿情况下播放的数据帧的数量;
确定模块,被配置为基于获取到的所述数据帧的时间戳确定所述多媒体流的卡顿情况。
另一方面,本公开实施例还提供了一种终端设备,所述终端设备包括:处理器;被配置为存储处理器可执行指令的存储器;其中,所述处理器被配置为被配置为执行如前任一项所述的多媒体流卡顿检测方法。
另一方面,本公开实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端设备的处理器执行时,使得所述终端设备能够执行如前任一项所述的多媒体流卡顿检测方法。
在本公开实施例中,通过将多媒体流传输的数据帧并将数据帧的时间戳保存,然后根据多媒体播放规则从本地获取数据帧的时间戳,由于多媒体播放规则指示的是非卡顿情况下播放的数据帧的数量,因此,可以根据实际是否获取到该规则所限定的数量的数据帧的时间戳,以及数据帧的时间戳之间的时间间隔等,确定多媒体流的卡顿情况。由于获取数据帧的过程实际是模拟实际播放的场景,因此,通过该方法确定出的卡顿情况,可以体现出多媒体流在实际观看中是否卡顿,从而可以基于此对内容分发网络进行优化,提高多媒体流的质量。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种多媒体流卡顿检测方法的流程图;
图2是本公开实施例提供的一种多媒体流卡顿检测方法的流程图;
图3是本公开实施例提供的一种多媒体流卡顿检测装置的框图;
图4示出了本公开一个示例性实施例提供的终端设备的结构框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
图1是本公开实施例提供的一种多媒体流卡顿检测方法的流程图。参见图1,该方法包括:
步骤101:获取多媒体流传输的数据帧并保存所述数据帧的时间戳。
在本公开实施例中,多媒体流可以为视频流(如在线视频流、直播视频流等),视频流的数据帧包括音频帧和视频帧。在其他实施例中,上述多媒体流也可以为音频流,此时数据帧仅为音频帧。
步骤102:按照多媒体播放规则获取所述数据帧的时间戳,所述多媒体播放规则用于指示非卡顿情况下播放的数据帧的数量。
在本公开实施例中,通过获取数据帧来确定数据帧的数量以及时间间隔等数据,基于这些数据可以确定是否存在卡顿。
而多媒体播放规则通常包括一段时间内应该获得的音频帧数量等,所以可以基于多媒体播放规则模拟多媒体播放器的播放数据帧的过程,虽然不执行播放动作,但是可以基于获取到的数据帧的情况,模拟得到播放情况下的卡顿情况。
步骤103:基于获取到的所述数据帧的时间戳确定所述多媒体流的卡顿情况。
对于视频流而言,卡顿情况通常包括视频是否卡顿、音频是否卡顿,以及在卡顿时的卡顿率等。
这里,视频卡顿是指获取的两个视频帧的时间间隔超过预定值,这个预定值通常是人眼能够感受到卡顿的时间长度,通常为200-300ms。音频卡顿则通常是出现丢帧就会有卡顿,并且在播放时伴随有“滋滋”的噪声。
在本公开实施例中,通过将多媒体流传输的数据帧并将数据帧的时间戳保存,然后根据多媒体播放规则从本地获取数据帧的时间戳,由于多媒体播放规则指示的是非卡顿情况下播放的数据帧的数量,因此,可以根据实际是否获取到该规则所限定的数量的数据帧的时间戳,以及数据帧的时间戳之间的时间间隔等,确定多媒体流的卡顿情况。由于获取数据帧的过程实际是模拟实际播放的场景,因此,通过该方法确定出的卡顿情况,可以体现出多媒体流在实际观看中是否卡顿,从而可以基于此对内容分发网络进行优化,提高多媒体流的质量。
图2是本公开实施例提供的一种多媒体流卡顿检测方法的流程图。参见图2,该方法包括:
步骤201:创建数据获取进程。
在本公开实施例中,创建数据获取进程的方式有两种:
第一种,启动一个进程来模拟播放器中的数据获取进程来获取数据。此时,本方法可以由任意客户端执行,只要能够从服务器获取到多媒体流传输的数据即可。
第二种,启动(视频/直播)播放器,创建播放器的数据获取进程,采用播放器的数据获取进程来获取数据。此时,本方法可以由安装由播放器的客户端执行,从而可以从服务器获取到多媒体流传输的数据。
需要说明的是,播放器除了数据获取进程还包括缓存进程,也即播放器会事先缓存一段时间(例如10S)的数据,避免网络情况影响观看。该缓存进程的存在会影响播放过程中,用户对于多媒体流的质量评价。因此,本申请为了保证评价的客观,仅针对播放器的数据获取进程获取的数据进行卡顿情况的评价。
步骤202:采用所述数据获取进程周期循环地从服务器获取所述多媒体流传输的数据帧。
在本公开实施例中,所述数据帧可以包括音频帧和视频帧。
本申请中,数据的获取以及后续的步骤均是周期性执行的,这样一方面,步骤201的进程还可以被用来执行终端设备的其他动作,另一方面,周期性地执行不影响卡顿情况的判断结果。
这里,每个周期的时间可以为5-50毫秒,例如10毫秒,每个10毫秒中,数据获取进程可以在前一段时间中进行数据获取,后一端时间中数据获取进程处于休息状态,避免持续工作,给终端设备带来较大处理负荷。
在本公开实施例中,由于数据获取进程是周期循环地获取数据的,因此该方法还可以包括:每次获取数据开始时的时间。例如,第一次获取数据的开始时间记为time0,第二次获取数据的开始时间记为time1,以此类推。
步骤203:将所述音频帧的时间戳和所述视频帧的时间戳分别缓存到两个队列中。
在本公开实施例中,音频帧的时间戳存在一个队列中,视频帧的时间戳存在一个队列中,每个队列中的帧的时间戳均按照先后顺序排列。
步骤204:基于所述多媒体播放规则确定周期时间内应该播放的第一音频帧数。
在采用播放器播放多媒体流时,在音频参数不变的情况下,每一个音频帧解码出来的音频数据量是固定大小,也即每帧比特数(BytesPerFrame)的数值固定,单位时间应该播放的音频数据量大小也是固定的。例如,音频参数如下:采用频率(samplerate)为44100,通道数(channels)为双通道,音频流位数为16bit。在该音频参数下代表着每一秒有44100个采样,每个采样有两个通道的数据,每个数据样本为16bit,也就是2字节。
在本公开实施例中,多媒体播放规则中记载了上述音频参数。因此,该步骤可以包括:
基于所述音频参数和周期时间计算第一数据量;
基于所述第一数据量和每个音频帧的长度,计算帧数;
将所述帧数向上取整得到第一音频帧数
这里,周期时间是基于两个周期获取数据开始时的时间计算得到的。
例如,当前周期获取数据开始时的时间time2与上一次周期获取数据开始时的时间time1的差值,得到周期时间。基于音频参数和周期时间可以计算出第一数据量。
基于每个音频帧的长度和该周期时间内的第一数据量,基于公式(1)计算出帧数AudioPackets:
AudioPackets=AudioBytes/BytesPerFrame (1)
这里,可以将AudioPackets向上取整得到AudioPackets’作为第一音频帧数。
在本公开实施例中,基于所述音频参数和周期时间计算第一数据量,可以包括:
采用所述单位时间内播放的数据量和所述周期时间计算得到第二数据量;
获取上一周期的剩余数据量,所述剩余数据量为上一周期进行帧数取整后所述第一音频帧数包括的数据量,相较于上一周期的所述第一数据量多出的数据量;
采用所述剩余数据量加上所述第二数据量,得到所述第一数据量。
在本公开实施例中,按照下述公式(2)计算该周期时间内的第二数据量AudioBytes’:
AudioBytes’=(time1-time0)*samplerate*channels*2Byte (2)
这里,samplerate*channels*2Byte为单位时间内播放的数据量。
在本公开实施例中,第一数据量可以采用公式(3)计算得到:
AudioPackets=AudioBytes’+Bytes (3)
Bytes为上一周期的剩余数据量。
在每个周期,将AudioPackets向上取整得到AudioPackets’作为第一音频帧数时,可以计算出取整时多算的剩余数据量Bytes=AudioPackets’*BytesPerFrame-AudioBytes,以供下一周期计算时使用。
步骤205:在所述周期时间内,从存储所述音频帧的时间戳的队列中获取所述第一音频帧数的音频帧的时间戳。当获取到的音频帧的数量小于所述第一音频帧数,确定音频卡顿,并执行步骤206。
如果获取到了第一音频帧数的音频帧,则当前不存在音频卡顿。
步骤206:基于获取到的最后一个音频帧的时间戳以及下一次获取到的第一个音频帧的时间戳的间隔,计算音频卡顿率。
在本公开实施例中,计算音频卡顿率可以采用如下方式:确定设定时间段中音频卡顿时长;将该音频卡顿时长除以设定时间段的长度,得到卡顿率。这里的设定时间段可以根据需要设置,例如为10秒。
在步骤205中,音频卡顿时长可以采用如下方式获取:当获取到的音频帧的数量小于所述第一音频帧数时,可以将获取到的最后一个音频帧的时间戳作为音频卡顿开始,直到再次循环到获取到音频帧的时间戳,此时的音频帧的时间戳记为音频卡顿结束,从音频卡顿开始到音频卡顿结束的时间为卡顿时间。每个设定时间段内可能存在多段卡顿时间,此时可以将多段卡顿时间相加,得到设定时间段中音频卡顿时长。
步骤207:确定每个周期时间从所述音频帧的时间戳的队列中获取到的最后一个音频帧的时间戳。
步骤208:从存储所述视频帧的时间戳的队列中获取时间戳不超过所述最后一个音频帧的时间戳,且时间戳最大的视频帧的时间戳。
在步骤207中获取到当前周期内最后的音频帧的时间戳,此时从队列里获取不超过该最后的音频帧的时间戳的,时间戳最大的视频帧的时间戳,采用获取到的该时间戳来进行卡顿判断。这里,这种获取视频帧时间戳的方式获取的也是该周期时间内的视频帧的时间戳,也即获取的视频帧的时间戳和前文步骤获取音频帧的时间戳是对齐的。从而可以同步判断各个周期时间音、视频是否卡顿。
当连续两次获取到的视频帧的时间戳的时间间隔大于阈值,确定视频卡顿。否则,当前不存在视频卡顿。
这里,阈值可以为200-300ms,例如200ms。
值得说明的是,由于视频帧之间的时间间隔本身就比较长,因此计算视频卡顿时长占比(也即视频卡顿率)的意义不大,当然也可以按照音频的方式计算出视频的卡顿率,这里不做赘述。
当然,对于视频可以统计设定时间内的卡顿次数,从而只是数据分发网络的质量。
这里,步骤206和207+208可以没有先后顺序,可以同时执行。
图3是本公开实施例提供的一种多媒体流卡顿检测装置的框图。参见图3,该装置包括第一获取模块301、第二获取模块302和确定模块303。
其中,第一获取模块301,被配置为获取多媒体流传输的数据帧并保存所述数据帧的时间戳;
第二获取模块302,被配置为按照多媒体播放规则获取所述数据帧的时间戳,所述多媒体播放规则用于指示非卡顿情况下播放的数据帧的数量;
确定模块303,被配置为基于获取到的所述数据帧的时间戳确定所述多媒体流的卡顿情况。
在本公开实施例的一种实现方式中,所述第一获取模块301,包括:
获取子模块311,用于创建数据获取进程;采用所述数据获取进程周期循环地从服务器获取所述多媒体流传输的数据帧。
在本公开实施例的一种实现方式中,所述数据帧包括音频帧和视频帧;
所述第一获取模块301,还包括:
存储子模块312,用于将所述音频帧的时间戳和所述视频帧的时间戳分别缓存到两个队列中。
在本公开实施例的一种实现方式中,所述第二获取模块302,包括:
第一时间戳获取子模块321,用于基于所述多媒体播放规则确定周期时间内应该播放的第一音频帧数;在所述周期时间内,从存储所述音频帧的时间戳的队列中获取所述第一音频帧数的音频帧的时间戳。
在本公开实施例的一种实现方式中,所述多媒体播放规则包括音频参数,所述音频参数用于指示单位时间内播放的数据量;
第一时间戳获取子模块321,用于基于所述音频参数和周期时间计算第一数据量;基于所述第一数据量和每个音频帧的长度,计算帧数;将所述帧数向上取整得到第一音频帧数。
在本公开实施例的一种实现方式中,第一时间戳获取子模块321,用于采用所述单位时间内播放的数据量和所述周期时间计算得到第二数据量;获取上一周期的剩余数据量,所述剩余数据量为上一周期进行帧数取整后所述第一音频帧数包括的数据量,相较于上一周期的所述第一数据量多出的数据量;采用所述剩余数据量加上所述第二数据量,得到所述第一数据量。
在本公开实施例的一种实现方式中,所述确定模块303,用于响应于获取到的音频帧的时间戳的数量小于所述第一音频帧数,确定音频卡顿。
在本公开实施例的一种实现方式中,该装置还包括:
卡顿率计算模块304,用于基于获取到的最后一个音频帧的时间戳以及下一次获取到的第一个音频帧的时间戳的间隔,计算音频卡顿率。
在本公开实施例的一种实现方式中,所述第二获取模块302,还包括:
第二时间戳获取子模块322,用于确定每个周期时间从所述音频帧的时间戳的队列中获取到的最后一个音频帧的时间戳;
从存储所述视频帧的时间戳的队列中获取时间戳不超过所述最后一个音频帧的时间戳,且时间戳最大的视频帧的时间戳。
在本公开实施例的一种实现方式中,所述确定模块303,用于响应于连续两次获取到的视频帧的时间戳的时间间隔大于阈值,确定视频卡顿。
图4示出了本公开一个示例性实施例提供的终端设备400的结构框图。该终端设备400可以是:智能手机、平板电脑、笔记本电脑或台式电脑。终端设备400还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端设备400包括有:处理器401和存储器402。
处理器401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的多媒体流卡顿检测方法。
在一些实施例中,终端设备400还可选包括有:***设备接口403和至少一个***设备。处理器401、存储器402和***设备接口403之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口403相连。具体地,***设备包括:射频电路404、触摸显示屏405、摄像头406、音频电路407、定位组件408和电源409中的至少一种。
***设备接口403可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器401和存储器402。在一些实施例中,处理器401、存储器402和***设备接口403被集成在同一芯片或电路板上;在一些其他实施例中,处理器401、存储器402和***设备接口403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路404包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏405是触摸显示屏时,显示屏405还具有采集在显示屏405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器401进行处理。此时,显示屏405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏405可以为一个,设置终端设备400的前面板;在另一些实施例中,显示屏405可以为至少两个,分别设置在终端设备400的不同表面或呈折叠设计;在再一些实施例中,显示屏405可以是柔性显示屏,设置在终端设备400的弯曲表面上或折叠面上。甚至,显示屏405还可以设置成非矩形的不规则图形,也即异形屏。显示屏405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件406用于采集图像或视频。可选地,摄像头组件406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器401进行处理,或者输入至射频电路404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器401或射频电路404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路407还可以包括耳机插孔。
定位组件408用于定位终端设备400的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件408可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***、俄罗斯的格雷纳斯***或欧盟的伽利略***的定位组件。
电源409用于为终端设备400中的各个组件进行供电。电源409可以是交流电、直流电、一次性电池或可充电电池。当电源409包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端设备400还包括有一个或多个传感器410。该一个或多个传感器410包括但不限于:加速度传感器411、陀螺仪传感器412、压力传感器413、指纹传感器414、光学传感器415以及接近传感器416。
加速度传感器411可以检测以终端设备400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器411可以用于检测重力加速度在三个坐标轴上的分量。处理器401可以根据加速度传感器411采集的重力加速度信号,控制触摸显示屏405以横向视图或纵向视图进行用户界面的显示。加速度传感器411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器412可以检测终端设备400的机体方向及转动角度,陀螺仪传感器412可以与加速度传感器411协同采集用户对终端设备400的3D动作。处理器401根据陀螺仪传感器412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器413可以设置在终端设备400的侧边框和/或触摸显示屏405的下层。当压力传感器413设置在终端设备400的侧边框时,可以检测用户对终端设备400的握持信号,由处理器401根据压力传感器413采集的握持信号进行左右手识别或快捷操作。当压力传感器413设置在触摸显示屏405的下层时,由处理器401根据用户对触摸显示屏405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器414用于采集用户的指纹,由处理器401根据指纹传感器414采集到的指纹识别用户的身份,或者,由指纹传感器414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器414可以被设置终端设备400的正面、背面或侧面。当终端设备400上设置有物理按键或厂商Logo时,指纹传感器414可以与物理按键或厂商Logo集成在一起。
光学传感器415用于采集环境光强度。在一个实施例中,处理器401可以根据光学传感器415采集的环境光强度,控制触摸显示屏405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏405的显示亮度;当环境光强度较低时,调低触摸显示屏405的显示亮度。在另一个实施例中,处理器401还可以根据光学传感器415采集的环境光强度,动态调整摄像头组件406的拍摄参数。
接近传感器416,也称距离传感器,通常设置在终端设备400的前面板。接近传感器416用于采集用户与终端设备400的正面之间的距离。在一个实施例中,当接近传感器416检测到用户与终端设备400的正面之间的距离逐渐变小时,由处理器401控制触摸显示屏405从亮屏状态切换为息屏状态;当接近传感器416检测到用户与终端设备400的正面之间的距离逐渐变大时,由处理器401控制触摸显示屏405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图4中示出的结构并不构成对终端设备400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本公开实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端设备的处理器执行时,使得所述终端设备能够执行如前所述的多媒体流卡顿检测方法。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (5)
1.一种多媒体流卡顿检测方法,其特征在于,所述方法包括:
终端设备采用数据获取进程周期循环地从服务器获取多媒体流传输的数据帧,所述数据帧包括音频帧和视频帧,所述周期的时间为5-50毫秒;
将所述音频帧的时间戳和所述视频帧的时间戳分别缓存到两个队列中;
基于多媒体播放规则确定周期时间内应该播放的第一音频帧数,所述多媒体播放规则用于指示非卡顿情况下播放的数据帧的数量;
在所述周期时间内,从存储所述音频帧的时间戳的队列中获取所述第一音频帧数的音频帧的时间戳;
确定每个周期时间从所述音频帧的时间戳的队列中获取到的最后一个音频帧的时间戳;
从存储所述视频帧的时间戳的队列中获取时间戳不超过所述最后一个音频帧的时间戳,且时间戳最大的视频帧的时间戳;
响应于获取到的音频帧的时间戳的数量小于所述第一音频帧数,确定音频卡顿;
响应于连续两次获取到的视频帧的时间戳的时间间隔大于阈值,确定视频卡顿,所述阈值为200-300毫秒;
基于获取到的最后一个音频帧的时间戳以及下一次获取到的第一个音频帧的时间戳的间隔,计算音频卡顿率。
2.根据权利要求1所述的方法,其特征在于,所述获取多媒体流传输的数据帧,包括:
创建所述数据获取进程。
3.根据权利要求1所述的方法,其特征在于,所述多媒体播放规则包括音频参数,所述音频参数用于指示单位时间内播放的数据量;
所述基于所述多媒体播放规则确定周期时间内应该播放的第一音频帧数,包括:
基于所述音频参数和周期时间计算第一数据量;
基于所述第一数据量和每个音频帧的长度,计算帧数;
将所述帧数向上取整得到第一音频帧数。
4.根据权利要求3所述的方法,其特征在于,所述基于所述音频参数和周期时间计算第一数据量,包括:
采用所述单位时间内播放的数据量和所述周期时间计算得到第二数据量;
获取上一周期的剩余数据量,所述剩余数据量为上一周期进行帧数取整后所述第一音频帧数包括的数据量,相较于上一周期的所述第一数据量多出的数据量;
采用所述剩余数据量加上所述第二数据量,得到所述第一数据量。
5.一种多媒体流卡顿检测装置,其特征在于,所述装置包括:
第一获取模块,被配置为采用数据获取进程周期循环地从服务器获取多媒体流传输的数据帧,所述数据帧包括音频帧和视频帧;将所述音频帧的时间戳和所述视频帧的时间戳分别缓存到两个队列中,所述周期的时间为5-50毫秒;
第二获取模块,被配置为基于多媒体播放规则确定周期时间内应该播放的第一音频帧数,所述多媒体播放规则用于指示非卡顿情况下播放的数据帧的数量;在所述周期时间内,从存储所述音频帧的时间戳的队列中获取所述第一音频帧数的音频帧的时间戳;确定每个周期时间从所述音频帧的时间戳的队列中获取到的最后一个音频帧的时间戳;从存储所述视频帧的时间戳的队列中获取时间戳不超过所述最后一个音频帧的时间戳,且时间戳最大的视频帧的时间戳;
确定模块,被配置为响应于获取到的音频帧的时间戳的数量小于所述第一音频帧数,确定音频卡顿;响应于连续两次获取到的视频帧的时间戳的时间间隔大于阈值,确定视频卡顿,所述阈值为200-300毫秒;基于获取到的最后一个音频帧的时间戳以及下一次获取到的第一个音频帧的时间戳的间隔,计算音频卡顿率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396939.3A CN111083162B (zh) | 2019-12-30 | 2019-12-30 | 多媒体流卡顿检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911396939.3A CN111083162B (zh) | 2019-12-30 | 2019-12-30 | 多媒体流卡顿检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111083162A CN111083162A (zh) | 2020-04-28 |
CN111083162B true CN111083162B (zh) | 2022-08-23 |
Family
ID=70319792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911396939.3A Active CN111083162B (zh) | 2019-12-30 | 2019-12-30 | 多媒体流卡顿检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111083162B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113162895B (zh) * | 2020-12-22 | 2023-04-07 | 咪咕文化科技有限公司 | 动态编码方法、流媒体质量确定方法及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107251008B (zh) * | 2015-02-27 | 2020-11-13 | 帝威视有限公司 | 在实况视频编码和流传输中进行帧复制和帧扩展的***和方法 |
CN107038011B (zh) * | 2016-02-04 | 2021-04-06 | 中兴通讯股份有限公司 | 一种调整显示流畅度的方法及装置、移动终端 |
CN107888938B (zh) * | 2016-09-29 | 2019-02-05 | 视联动力信息技术股份有限公司 | 一种网络视频播放方法及其装置 |
CN109587551B (zh) * | 2017-09-29 | 2020-12-25 | 北京金山云网络技术有限公司 | 一种流媒体直播卡顿的判断方法、装置、设备及存储介质 |
CN108650550B (zh) * | 2018-07-05 | 2021-06-25 | 平安科技(深圳)有限公司 | 网络传输质量分析方法、装置、计算机设备和存储介质 |
CN109348247B (zh) * | 2018-11-23 | 2021-03-30 | 广州酷狗计算机科技有限公司 | 确定音视频播放时间戳的方法、装置及存储介质 |
CN109857559B (zh) * | 2019-01-25 | 2021-04-06 | 维沃移动通信有限公司 | 终端控制方法及终端 |
-
2019
- 2019-12-30 CN CN201911396939.3A patent/CN111083162B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111083162A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109348247B (zh) | 确定音视频播放时间戳的方法、装置及存储介质 | |
CN108966008B (zh) | 直播视频回放方法及装置 | |
CN111372126B (zh) | 视频播放方法、装置及存储介质 | |
CN111093108B (zh) | 音画同步判断方法、装置、终端及计算机可读存储介质 | |
CN109788303B (zh) | 直播视频流的推送方法、装置、电子设备及存储介质 | |
CN110769271B (zh) | 调节多路码流的码率的方法和装置 | |
CN111586431B (zh) | 进行直播处理的方法、装置、设备及存储介质 | |
CN108427630B (zh) | 性能信息获取方法、装置、终端及计算机可读存储介质 | |
CN111107389B (zh) | 确定观看直播时长的方法、装置和*** | |
CN109951398B (zh) | 数据发送方法、装置及计算机设备 | |
CN108616776B (zh) | 直播分析数据获取方法及装置 | |
CN109635133B (zh) | 可视化音频播放方法、装置、电子设备及存储介质 | |
CN112929654B (zh) | 检测音画同步的方法、装置、设备及存储介质 | |
CN112104648A (zh) | 数据处理方法、装置、终端、服务器及存储介质 | |
CN111787347A (zh) | 直播时长计算方法、直播显示方法、装置及设备 | |
CN111092991B (zh) | 歌词显示方法及装置、计算机存储介质 | |
CN110856152A (zh) | 播放音频数据的方法、装置、电子设备及介质 | |
CN109089137B (zh) | 卡顿检测方法及装置 | |
CN108401194B (zh) | 时间戳确定方法、装置和计算机可读存储介质 | |
CN107888975B (zh) | 视频播放方法、装置及存储介质 | |
CN111083162B (zh) | 多媒体流卡顿检测方法和装置 | |
CN110113669B (zh) | 获取视频数据的方法、装置、电子设备及存储介质 | |
CN109688064B (zh) | 数据传输方法、装置、电子设备和存储介质 | |
CN110543403A (zh) | 一种功耗评估的方法及装置 | |
CN111698262B (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 |