[发明专利]基于webrtc的多路录像回放同步系统及其处理方法有效
申请号: | 201910554001.3 | 申请日: | 2019-06-25 |
公开(公告)号: | CN110381350B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 陈尚武 | 申请(专利权)人: | 杭州叙简科技股份有限公司 |
主分类号: | H04N21/43 | 分类号: | H04N21/43;H04N21/433;H04N21/472;H04N21/6373;H04N21/845;H04N21/8547 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 310012 浙江省杭州市余杭区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 webrtc 录像 回放 同步 系统 及其 处理 方法 | ||
1.一种基于webrtc的多路录像回放同步系统,其特征在于,包括:视频存储模块(1),视频帧同步模块(2),Webrtc发包模块(3),回放评估模块(4),回放控制模块(5),视频源(6),浏览器的回放代理模块(7),浏览器的webrtc收包模块(8),浏览器的webrtc解码模块(9),浏览器的webrtc渲染模块(10);
视频存储模块(1):视频的存储与读取模块,负责把多路视频源(6)的视频进行存储,为视频帧同步模块(2)发送历史回放视频的视频帧,向回放评估模块(4)提供各个视频源(6)的历史回放视频的帧率;接收回放控制模块(5)的回放速度控制,进行回放控制请求;
视频帧同步模块(2):多路视频的帧同步模块,使用丢帧策略与延时测试使多路视频图像回放同步;从视频存储模块(1)接收历史录像,接收回放评估模块(4)的丢帧控制与延时发送帧策略,同步多路视频的历史回放视频,向webrtc发包模块(3)转发历史回放视频;视频帧同步模块(2)丢帧控制通过丢弃视频帧的P帧与保留I帧,保证图像的连续与同步;
Webrtc发包模块(3):webrtc视频回放服务发包模块,通过webrtc的srtp协议把多路历史回放视频的视频帧发送给浏览器的webrtc收包模块(8);Webrtc发包模块(3)把各个历史回放视频的视频帧的发送队列长度实时上报给回放评估模块(4);
回放评估模块(4):接收视频存储模块(1)的历史回放视频的帧率,接收Webrtc发包模块(3)的发送队列长度,通过回放控制模块(5)与回放代理模块(7)收集webrtc收包模块(8)的丢包率、webrtc解码模块(9)的帧数、webrtc渲染模块(10)的延时渲染帧数来计算多路历史回放视频的时间差,选择延时居中历史回放视频做基准,对偏差较小延时较大的历史回放视频进行通知视频帧同步模块(2)进行丢帧处理,对延时较小的历史回放视频进行通知视频帧同步模块(2)进行延时发帧处理;偏差较大延时较大的历史回放视频通过回放控制模块(5)通知回放代理模块(7)重置webrtc收包模块(8)、webrtc解码模块(9)、webrtc渲染模块(10),进行强行同步;回放评估模块(4)接收回放控制模块(5)的快进与慢进进行调整丢帧策略,当检测到快进模块导致码流递增引发wetrtc视频回放服务丢包率过高时,对所有历史回放视频进行通知视频帧同步模块(2)进行丢帧处理;
回放控制模块(5):回放控制模块(5)接收回放代理模块(7)的回放速度控制,视频帧同步模块(2)通知视频存储模块(1)读取回放速度数据,通知视频帧同步模块(2)按照回放速度进行同步控制;回放控制模块(5)接收回放代理模块(7)收集浏览器的webrtc收包模块(8)的丢包率、webrtc解码模块(9)的帧数、webrtc渲染模块(10)的延时渲染帧数,转发给回放评估模块(4);
视频源(6):能产生视频数据的设备,包括监控视频摄像头、移动单兵设备或执法记录仪;视频源(6)把历史视频存储到视频存储模块(1);
回放代理模块(7):回放代理模块(7)收集webrtc收包模块(8)的丢包率、webrtc解码模块(9)的帧数、webrtc渲染模块(10)的延时渲染帧数发送给回放控制模块(5);接收用户的回放控制请求发送给回放控制模块(5);接收回放控制模块(5)的重置请求,重置webrtc收包模块(8)、webrtc解码模块(9)、webrtc渲染模块(10);
webrtc收包模块(8):webrtc收包模块(8)接收Webrtc发包模块(3)的视频包,并统计丢包率,发送给回放代理模块(7);
webrtc解码模块(9):接收webrtc收包模块(8)的视频包,进行解码,解码后视频数据发送给webrtc渲染模块(10);webrtc解码模块(9)统计解码帧数发送给回放代理模块(7);
webrtc渲染模块(10):接收webrtc解码模块(9)的视频数据进行渲染,webrtc渲染模块(10)发送延时渲染帧数。
2.一种基于权利要求1所述的基于webrtc的多路录像回放同步系统的同步处理方法,其特征在于,包括如下步骤:
步骤(1)、视频存储模块(1)接收视频源(6)的视频数据存储为文件,并使用独立索引文件记录I帧位置与时间;
步骤(2)、视频存储模块(1)接收回放控制模块(5)的回放控制请求,根据索引文件快速找到播放时间文件数据,实现回放速度控制;视频存储模块(1)把视频数据按照视频帧并携带该帧时间戳发送给视频帧同步模块(2);
步骤(3)、回放控制模块(5)接收回放代理模块(7)的回放速度控制,视频帧同步模块(2)通知视频存储模块(1)读取回放速度数据,通知视频帧同步模块(2)按照回放速度进行同步控制;
步骤(4)、回放控制模块(5)接收回放代理模块(7)收集浏览器的webrtc收包模块(8)的丢包率、webrtc解码模块(9)的帧数、webrtc渲染模块(10)的延时渲染帧数,转发给回放评估模块(4);
步骤(5)、视频存储模块(1)统计视频源的历史数据码流,向回放评估模块(4)提供各个视频源(6)的历史回放的帧率;
步骤(6)、回放评估模块(4)接收视频存储模块(1)的历史回放视频的帧率,接收Webrtc发包模块(3)的发送帧数,webrtc解码模块(9)的帧数、webrtc渲染模块(10)的延时渲染帧;计算多路历史回放视频的时间差;
回放时间差计算方式:((接收Webrtc发包模块(3)的发送帧数-webrtc解码模块(9)的解码帧数)+webrtc渲染模块(10)的延时渲染帧数)/帧率;
步骤(7)、回放评估模块(4)选择回放时间差为平均值的历史回放视频做基准,对延时比平均值大于L1到L2范围的历史回放视频进行通知视频帧同步模块(2)进行丢帧处理,对延时比平均值小于L3的历史回放视频进行通知视频帧同步模块(2)进行延时发帧处理;对于比延时平均值大于L2的历史回放视频通过回放控制模块(5)通知回放代理模块(7)重置webrtc收包模块(8)、webrtc解码模块(9)、webrtc渲染模块(10);
步骤(8)、回放评估模块(4)收集webrtc收包模块(8)的丢包率,做为网络带宽评估依据,多路回放导致码流递增引发wetrtc视频传递丢包率过高时,对所有历史回放视频进行通知视频帧同步模块(2)进行丢帧处理;
步骤(9)、视频帧同步模块(2)接收视频存储模块(1)的视频数据的视频帧与帧时间戳,保存到帧队列中;
步骤(10)、视频帧同步模块(2)接收回放控制模块(5)的回放速度控制指令,视频帧同步模块(2)获取回放视频中帧率最高作为基准帧率;视频帧同步模块(2)对所有回放录像按照基准帧率fr进行发送,发送周期为1/(基准帧率fr×回放速度),在每个发送周期视频帧同步模块(2)检测帧队列的视频帧的时间戳小于等于基准发送时间戳,全部发送视频帧给webrtc发送模块;
步骤(11)、视频帧同步模块(2)接收回放评估模块(4)的丢帧控制时,则只发送该视频源的I帧与丢弃P帧,降低减低该路视频源的历史视频码流;保证高码流高延时的视频源与其他视频源的历史回放同步回放;
步骤(12)、视频帧同步模块(2)接收回放评估模块(4)的延时T秒后发送帧,在每个发送周期视频帧同步模块(2)检测该视频源的视频帧的时间戳+延时T秒小于等于基准发送时间戳,符合则发送视频帧给webrtc发送模块,保证低码流低延时视频源与其他视频源的历史回放同步回放;
步骤(13)、回放代理模块(7)收集webrtc收包模块(8)的丢包率、webrtc解码模块(9)的帧数、webrtc渲染模块(10)的延时渲染帧数发送给回放控制模块(5);
步骤(14)、回放代理模块(7)接收用户的回放控制请求发送给回放控制模块(5);
步骤(15)、回放代理模块(7)接收回放控制模块(5)的重置请求,重置webrtc收包模块(8)、webrtc解码模块(9)、webrtc渲染模块(10);当一路图像已经出现严重不同步时,通过清除收包缓存区,与渲染队列来进行快速同步恢复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州叙简科技股份有限公司,未经杭州叙简科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910554001.3/1.html,转载请声明来源钻瓜专利网。