直播中减少观众端画面卡顿的方法及装置以及客户端与流程

文档序号:12498362阅读:550来源:国知局

本发明涉及实时视频传输技术领域,特别是涉及一种直播中减少观众端画面卡顿的方法及装置以及客户端。



背景技术:

互联网直播日益盛行,视频直播需要占用大量上传带宽,然而我国电信运营商能够提供的网络上传带宽却一直没有量的变化,网络经常会有抖动,主流的直播协议是rtmp协议,这个协议的基础是tcp协议,根据tcp协议当网络发生波动时,发送端没有发送成功的数据包会等到网络恢复平稳后继续发送,在主播端就会造成数据包堆积,这样客户端观看到的直播流就会变成主播之前一小段时间的流,为减小时延,本发明人同日申请提出了在主播端根据网络抖动主动丢帧的策略,但是,能减少时延的同时,如何对客户端的画面进行恢复,减少客户端画面发生卡顿情况成为急需解决的问题。



技术实现要素:

本发明的目的是针对现有技术中存在的技术缺陷,而提供一种直播中减少观众端画面卡顿的方法。

为实现本发明的目的所采用的技术方案是:

一种直播中减少观众端画面卡顿的方法,包括,

有缺帧时,当缺帧为缺B帧或P帧,则根据前后帧进行补齐,如果缺帧为I帧,则复制上一组的正常画面进行播放。

还包括根据上一帧和下一帧的时间戳及数据包序号计得缺失帧的时间戳。

所述的时间戳的计算方法为上一帧和下一帧的时间戳的差值除以对应数据包的包序号的差值得到时间戳间隔,根据时间戳间隔得出缺帧的时间戳。

若缺少B帧时,则根据播放的画面根据相邻的P帧的图像做差值进行图像补齐,如相邻的P帧也缺,则根据相邻的P帧和I帧进行B帧补齐;

如果缺帧为P帧则根据相邻I帧的画面做差值进行图像补齐。

一种直播中减少观众端画面卡顿的装置,包括,

缺帧处理模块,当缺帧为缺B帧或P帧,则根据前后帧进行补齐,如果缺帧为I帧,则复制上一组的正常画面进行播放。

时间戳计算模块,当有缺帧时,其根据上一帧和下一帧的时间戳及数据包序号计得时间戳,

所述的时间戳的计算方法为上一帧和下一帧的时间戳的差值除以对应数据包的包序号的差值得到时间戳间隔,根据时间戳间隔得出缺帧的时间戳。

若缺少B帧时,则根据播放的画面根据相邻的P帧的图像做差值进行图像补齐,如相邻的P帧也缺,则根据相邻的P帧和I帧进行B帧补齐;

如果缺帧为P帧则根据相邻I帧的画面做差值进行图像补齐。

一种具有所述的直播中减少观众端画面卡顿的装置的直播客户端。

与现有技术相比,本发明的有益效果是:

本发明的播放器对于丢帧进行补齐,补齐的方案就是相邻图像的公差计算。如果只是B帧缺,P帧不缺,则利用相邻的P帧,如果此段P帧也缺,就利用相邻的I帧和P帧。补齐的B帧也进行了差值运算,差值为相邻的(P-I或P)/(B帧数量+1),这样图像的流畅效果更好。视频数据每秒钟25帧图像画面,在缺少B帧数据恢复时,人眼不会有任何不连贯的感觉,在恢复连续丢失I帧数据时,也就是网络很差的时候,人眼才会有比较明显的卡顿的感觉,因为图像基本都一样。但是声音一直都是连贯的。

具体实施方式

以下结合具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

直播技术流程:主播端直播时分为3个大的模块,音视频数据采集,编码,推送。观众端相应的也分为3个模块,音视频数据接收,解码,播放。

造成直播延时的原因,原始图像数据通常很大,通过h.264视频压缩算法进行压缩,通过rtmp协议封装成数据包,进行网络传输,图像数据虽然进行了压缩,但是数据量仍然相当大,当网络出现抖动或者其他异常时,根据rtmp协议,数据要缓存在发送端等待网络恢复时一并发送,这样就会到导致观众端的播放器在某个时间没有数据,过一会数据恢复了陆续播出的时候造成了延时。

为了降低网络抖动引起的时延,在主播端采用监控数据包队列数量然后进行选择性丢包不使其进入队列的方式,有效解决了网络抖动时主播端的数据拥堵的问题。

本发明进一步公开了当客户端收到不完整的有缺失的数据包流时减少观众端画面卡顿的方法,包括,

当有缺帧时,根据上一帧和下一帧的时间戳及数据包序号计得时间戳,且,

当缺帧为缺B帧或P帧,则根据前后帧进行补齐,如果缺帧为I帧,则复制上一组的正常画面进行播放。

首选,每个数据包都有时间戳,在客户端即播放端,播放丢弃了部分数据包的视频视频时会出现时间戳的断档,则首先根据上一帧和下一帧的时间戳及数据包序号计得时间戳,其中,所述的上一帧和下一帧是指实际接收到的数据帧,然后根据上一个和下一个视频帧的时间戳和相应的数据包序号来重新计算丢弃了视频帧的时间戳,计算方法为时间戳的差值除以包序号的差值得到时间戳间隔,根据间隔,进行正确播放。数据包分为音频数据包和视频数据包,音频数据量很小微乎其微,所以在主播端丢包时不做处理,视频的数据量很大,是网络抖动时主要是视频数据发送不出去,所以要选在发送队列选择性丢弃,音频视频同步主要是通过数据包头的时间戳信息来同步的,丢弃一部分视频包,并不会影响其他视频包的时间戳,所以不会影响同步的问题,第一步时间戳的补齐计算,则是同时时间戳分辨出缺少帧的类型和数量,以便后续进行补齐处理。

如果丢弃的是B帧画面播放的画面会根据相邻的P帧进行补齐恢复,如果相邻的P帧也有缺失,则根据相邻的I帧和P帧的图像做差值进行图像恢复播放;如果丢弃的P帧会根据相邻I帧进行恢复。如果丢弃的是I帧,就复制上一组的已有画面进行播放,视频数据每秒钟25帧图像画面,在缺少B帧数据恢复时,人眼不会有任何不连贯的感觉,在恢复连续丢失I帧数据时,也就是网络很差的时候,人眼才会有比较明显的卡顿的感觉,因为图像基本都一样。但是声音一直都是连贯的。

本发明公开了一种直播中减少观众端画面卡顿的装置,包括,

时间戳计算模块,当有缺帧时,其根据上一帧和下一帧的时间戳及数据包序号计得时间戳,所述的时间戳的计算方法为上一帧和下一帧的时间戳的差值除以对应数据包的包序号的差值得到时间戳间隔,根据时间戳间隔得出缺帧的时间戳。

缺帧处理模块,当缺帧为缺B帧或P帧,则根据前后帧进行补齐,如果缺帧为I帧,则复制上一组的正常画面进行播放。

具体地,若缺少B帧时,则根据播放的画面根据相邻的P帧的图像做差值进行图像补齐,如相邻的P帧也缺,则根据相邻的P帧和I帧进行B帧补齐;

如果缺帧为P帧则根据相邻I帧的画面做差值进行图像补齐。

缺失了B帧、P帧或者I帧,通常播放器的方案是会直接跳过缺失了的数据,播放存在的B帧、P帧或者I帧,会出现明显的卡顿的现象。本发明的播放器对于丢帧方案是进行补齐,补齐的方案就是相邻图像的公差计算。如果只是B帧缺,P帧不缺,则利用相邻的P帧,如果此段P帧也缺,就利用相邻的I帧和P帧。补齐的B帧也进行了差值运算,差值为相邻的(P-I或P)/(B帧数量+1),这样图像的流畅效果更好。视频数据每秒钟25帧图像画面,在缺少B帧数据恢复时,人眼不会有任何不连贯的感觉,在恢复连续丢失I帧数据时,也就是网络很差的时候,人眼才会有比较明显的卡顿的感觉,因为图像基本都一样。但是声音一直都是连贯的。

同时,本发明还公开了具有所述的直播中减少观众端画面卡顿的装置的直播客户端,采用该直播客户端,优化了发送端数据包发送机制,提高了其对网络抖动的适应性,有效提高了直播的实时性。

以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1