一种流媒体实时播放方法及装置制造方法及图纸

技术编号:20050322 阅读:48 留言:0更新日期:2019-01-09 05:59
本申请实施例公开一种流媒体实时播放方法及装置,该方法中,首先接收流媒体的数据包之后,对数据包进行解析,获取各个数据帧,并将数据帧缓存至缓冲区;然后获取缓冲区内的数据帧的数量,并计算缓存至缓冲区的数据帧的平均缓存帧间隔;将缓冲区内的数据帧的数量与预设的缓存帧阈值相比较,并根据比较结果以及平均缓存帧间隔,确定实际提取帧间隔;根据实际提取帧间隔,从缓冲区中提取数据帧,并将提取的数据帧传输至播放器件,以便播放器件播放提取的数据帧。该方案能够在进行流媒体播放的客户端中缓存数据帧,并根据缓存的数据帧的数量调整向播放器件传输数据帧的速度,从而提高了流媒体播放的稳定性,实现了流媒体的平滑播放。

【技术实现步骤摘要】
一种流媒体实时播放方法及装置
本申请涉及媒体播放
,尤其涉及一种流媒体实时播放方法及装置。
技术介绍
流媒体,又可称为流式媒体,是多媒体的一种。通过流媒体技术,能够在视频传播的过程中进行播放,实现边传边播,极大地方便了用户的工作和生活。其中,在流媒体播放过程中,通常需要编码器、服务器和客户端共同协作。编码器用于对原始的媒体流进行压缩编码;服务器对压缩编码后的数据进行处理,将其封装成数据包,并将处理后的数据包传输至客户端;客户端在接收到数据包之后,获取数据包对应的数据帧,并由客户端的播放器件播放各个数据帧,实现流媒体的播放。但是,专利技术人在本申请的研究过程中发现,在流媒体播放的过程中,受到网络抖动等因素的影响,往往会导致播放器件获取到的数据帧的数量不稳定,进一步影响流媒体播放的稳定性。例如,若出现网络抖动,通常导致客户端无法及时接收到数据包,也就是说,在播放完客户端已获取的数据帧之后,客户端往往还未获取到新的数据帧,播放器件获取到的数据帧变为零,从而导致播放画面出现卡顿。
技术实现思路
本申请实施例公开一种流媒体实时播放方法及装置,以解决通过现有技术播放流媒体时,受到网络抖动等因素的影响,所导致的流媒体在播放过程中出现不稳定的问题。在第一方面,本申请实施例公开一种流媒体实时播放方法,包括:在接收流媒体的数据包之后,通过对所述数据包进行解析,获取各个数据帧,并将所述数据帧缓存至缓冲区;获取所述缓冲区内的数据帧的数量,并计算缓存至所述缓冲区的数据帧的平均缓存帧间隔;将所述缓冲区内的数据帧的数量与预设的缓存帧阈值相比较,并根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔;根据所述实际提取帧间隔,从所述缓冲区中提取数据帧,并将提取的数据帧传输至播放器件,以便所述播放器件播放所述提取的数据帧。可选的,所述根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔,包括:若所述数据帧的数量大于所述缓存帧阈值,确定所述实际提取帧间隔小于所述平均缓存帧间隔;若所述数据帧的数量小于所述缓存帧阈值,确定所述实际提取帧间隔大于所述平均缓存帧间隔;若所述数据帧的数量等于所述缓存帧阈值,确定所述实际提取帧间隔等于所述平均缓存帧间隔。可选的,所述根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔,包括:根据以下公式计算本次的偏差系数:S=S0+N;其中,S表示本次的偏差系数;若首次确定所述实际提取帧间隔,S0为零,若并非首次确定所述实际提取帧间隔,S0表示上一次计算得到的偏差系数;N表示预设的间隔调整幅度,若所述缓冲区内的数据帧的数量大于所述缓存帧阈值,N为大于0的数值,若所述缓冲区内的数据帧的数量小于所述缓存帧阈值,N为小于0的数值,若所述缓冲区内的数据帧的数量等于所述缓存帧阈值,N为0;根据以下公式计算所述实际提取帧间隔:T=T0+S;其中,T表示所述实际提取帧间隔;T0表示所述平均缓存帧间隔。可选的,所述计算缓存至所述缓冲区的数据帧的平均缓存帧间隔,包括:获取所述缓冲区内的数据帧的缓存时间;计算所述缓冲区内的数据帧的数量与所述缓存时间的比值,所述比值为所述缓冲区的数据帧的平均缓存帧间隔。可选的,所述数据帧包括:I帧、P帧和/或B帧。在第二方面,本申请实施例公开一种流媒体实时播放装置,包括:数据帧获取模块,用于在接收流媒体的数据包之后,通过对所述数据包进行解析,获取各个数据帧,并将所述数据帧缓存至缓冲区;缓存帧间隔计算模块,用于获取所述缓冲区内的数据帧的数量,并计算缓存至所述缓冲区的数据帧的平均缓存帧间隔;实际提取帧间隔确定模块,用于将所述缓冲区内的数据帧的数量与预设的缓存帧阈值相比较,并根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔;数据帧传输模块,用于根据所述实际提取帧间隔,从所述缓冲区中提取数据帧,并将提取的数据帧传输至播放器件,以便所述播放器件播放所述提取的数据帧。可选的,所述实际提取帧间隔确定模块具体用于,若所述数据帧的数量大于所述缓存帧阈值,确定所述实际提取帧间隔小于所述平均缓存帧间隔,若所述数据帧的数量小于所述缓存帧阈值,确定所述实际提取帧间隔大于所述平均缓存帧间隔,若所述数据帧的数量等于所述缓存帧阈值,确定所述实际提取帧间隔等于所述平均缓存帧间隔。可选的,所述实际提取帧间隔确定模块包括:第一偏差系数计算单元,用于根据以下公式计算本次的偏差系数:S=S0+N;其中,S表示本次的偏差系数;若首次确定所述实际提取帧间隔,S0为零,若并非首次确定所述实际提取帧间隔,S0表示上一次计算得到的偏差系数;N表示预设的间隔调整幅度,若所述缓冲区内的数据帧的数量大于所述缓存帧阈值,N为大于0的数值,若所述缓冲区内的数据帧的数量小于所述缓存帧阈值,N为小于0的数值,若所述缓冲区内的数据帧的数量等于所述缓存帧阈值,N为0;第一实际提取帧间隔计算单元,用于根据以下公式计算所述实际提取帧间隔:T=T0+S;其中,T表示所述实际提取帧间隔;T0表示所述平均缓存帧间隔。可选的,所述缓存帧间隔计算模块包括:缓存时间获取单元,用于获取所述缓冲区内的数据帧的缓存时间;缓存帧间隔计算单元,用于计算所述缓冲区内的数据帧的数量与所述缓存时间的比值,所述比值为所述缓冲区的数据帧的平均缓存帧间隔。可选的,所述通过对所述数据包进行解析,获取各个数据帧,包括:所述数据帧包括:I帧、P帧和/或B帧。本申请实施例公开一种流媒体实时播放方法及装置,该方法中,在实时接收流媒体的数据包之后,通过对所述数据包进行解析,获取各个数据帧,并将所述数据帧缓存至缓冲区;获取所述缓冲区内的数据帧的数量,并计算缓存至所述缓冲区的各个数据帧的平均缓存帧间隔;将所述缓冲区内的数据帧的数量与预设的缓存帧阈值相比较,并根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔;根据所述实际提取帧间隔,从所述缓冲区中提取数据帧,并将提取的数据帧传输至播放器件,以便所述播放器件播放所述提取的数据帧。通过本申请实施例公开的方案,能够在进行流媒体播放的客户端中缓存数据帧,并能够根据缓存的数据帧的数量调整向播放器件传输数据帧的速度,从而使播放器件获取到数据帧的数量在较为稳定的范围内,解决现有流媒体播放技术中,客户端获取到的数据帧不稳定的问题,从而提高了流媒体播放的稳定性,实现了流媒体的平滑播放。附图说明为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种流媒体实时播放方法的工作流程示意图;图2为本申请实施例提供的一种流媒体实时播放方法中缓冲区的缓存示意图;图3(a)为现有技术提供的流媒体实时播放方法中,发生网络抖动时,数据帧与时间轴的关系示意图;图3(b)为本申请实施例提供的一种流媒体实时播放方法中,发生网络抖动时,数据帧与时间轴的关系示意图;图4为本申请实施例提供的一种流媒体实时播放方法的结构示意图。具体实施方式为了解决通过现有技术播放流媒体时,受到网络抖动等因素的影响,所导致的流媒体在播放过程中不稳定的问题,本申请实施例公开一种流媒体实时播放方法及装置。在本申请实施例中,公开一种流媒体实时播放方法,该方法通常应用于能本文档来自技高网...

【技术保护点】
1.一种流媒体实时播放方法,其特征在于,包括:在接收流媒体的数据包之后,通过对所述数据包进行解析,获取各个数据帧,并将所述数据帧缓存至缓冲区;获取所述缓冲区内的数据帧的数量,并计算缓存至所述缓冲区的数据帧的平均缓存帧间隔;将所述缓冲区内的数据帧的数量与预设的缓存帧阈值相比较,并根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔;根据所述实际提取帧间隔,从所述缓冲区中提取数据帧,并将提取的数据帧传输至播放器件,以便所述播放器件播放所述提取的数据帧。

【技术特征摘要】
1.一种流媒体实时播放方法,其特征在于,包括:在接收流媒体的数据包之后,通过对所述数据包进行解析,获取各个数据帧,并将所述数据帧缓存至缓冲区;获取所述缓冲区内的数据帧的数量,并计算缓存至所述缓冲区的数据帧的平均缓存帧间隔;将所述缓冲区内的数据帧的数量与预设的缓存帧阈值相比较,并根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔;根据所述实际提取帧间隔,从所述缓冲区中提取数据帧,并将提取的数据帧传输至播放器件,以便所述播放器件播放所述提取的数据帧。2.根据权利要求1所述的流媒体实时播放方法,其特征在于,所述根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔,包括:若所述数据帧的数量大于所述缓存帧阈值,确定所述实际提取帧间隔小于所述平均缓存帧间隔;若所述数据帧的数量小于所述缓存帧阈值,确定所述实际提取帧间隔大于所述平均缓存帧间隔;若所述数据帧的数量等于所述缓存帧阈值,确定所述实际提取帧间隔等于所述平均缓存帧间隔。3.根据权利要求1所述的流媒体实时播放方法,其特征在于,所述根据比较结果以及所述平均缓存帧间隔,确定实际提取帧间隔,包括:根据以下公式计算本次的偏差系数:S=S0+N;其中,S表示本次的偏差系数;若首次确定所述实际提取帧间隔,S0为零,若并非首次确定所述实际提取帧间隔,S0表示上一次计算得到的偏差系数;N表示预设的间隔调整幅度,若所述缓冲区内的数据帧的数量大于所述缓存帧阈值,N为大于0的数值,若所述缓冲区内的数据帧的数量小于所述缓存帧阈值,N为小于0的数值,若所述缓冲区内的数据帧的数量等于所述缓存帧阈值,N为0;根据以下公式计算所述实际提取帧间隔:T=T0+S;其中,T表示所述实际提取帧间隔;T0表示所述平均缓存帧间隔。4.根据权利要求1至3任一项所述的流媒体实时播放方法,其特征在于,所述计算缓存至所述缓冲区的数据帧的平均缓存帧间隔,包括:获取所述缓冲区内的数据帧的缓存时间;计算所述缓冲区内的数据帧的数量与所述缓存时间的比值,所述比值为所述缓冲区的数据帧的平均缓存帧间隔。5.根据权利要求1至3任一项所述的流媒体实时播放方法,其特征在于,所述数据帧包括:I帧、P帧和/或B帧。6.一种流媒体实时播放装置,其特征在于,包括:数据帧获取模块,用于在接收流媒体...

【专利技术属性】
技术研发人员:王本强
申请(专利权)人:青岛海信电器股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1