[发明专利]一种基于H.264编码的实时流媒体多路转发控制方法有效

专利信息
申请号: 201610540068.8 申请日: 2016-07-11
公开(公告)号: CN106210923B 公开(公告)日: 2018-10-30
发明(设计)人: 刘迎;赵霞;李海生;刘泽;王宸禹;王雪 申请(专利权)人: 北京工商大学
主分类号: H04N21/63 分类号: H04N21/63;H04N21/6437;H04L29/06
代理公司: 北京万象新悦知识产权代理事务所(普通合伙) 11360 代理人: 贾晓玲
地址: 100048 北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于H.264编码的实时流媒体多路转发控制方法,该方法主要包括如下内容:(1)客户端申请实时视频,服务器端转发最新的历史IDR帧视频数据给申请实时视频的客户端;(2)服务器端每路视频只保留2帧IDR范围内的最新实时视频数据;(3)客户端每路视频只保留2帧IDR范围内的最新实时视频数据;(4)服务器端和客户端各采用双线程,服务器子线程用于流媒体转发功能,客户端子线程用于视频流播放功能,线程间采用线程锁,以便控制多个线程共用公共视频数据;(5)客户端云控视频采样设备时,服务器端和客户端分别清空除云控频道外的所有其他非云控频道历史视频数据,并分别从IDR帧重新开始继续转发/播放。
搜索关键词: 一种 基于 264 编码 实时 流媒体 转发 控制 方法
【主权项】:
1.一种基于H.264编码的实时流媒体多路转发控制方法,其步骤包括:A.服务器端缓冲区设计为两类链表,具体内容如下:A1服务器端维护一个双向环形大链表A作为缓冲区,用于记录从视频采样设备上获取到的H.264编码的视频流数据包属性;A2.每个视频采样设备维护一个双向环形小链表B,该链表主要记录一个指针,该指针指向在大链表A上属于特定某个视频采样设备的视频流节点;B.客户端申请实时视频,服务器端转发最新的历史IDR帧及其后视频数据给申请实时视频客户端,其具体实现方法为:B1.客户端正确登录服务器后,由服务器端发送给该客户端可以访问的视频采样设备列表;B2.客户端选择某个视频采样设备向服务器端发送实时视频请求;B3.服务器端接到客户端实时视频请求后,检查当前是否有客户端请求的视频流,没有则向视频采样设备发送获取视频请求;服务器端软件将获取到的H.264编码的一包视频流数据加入链表A并构造相应链表B的一个节点增加到链表B中;B4.每个视频采样设备永远保留2帧最新的IDR帧及其以后视频数据包,当客户端请求实时视频流时,不论保留的最新IDR帧是否已经发送过,都立即优先发送该路视频最新IDR帧及其后视频流数据包给客户端,直至链表A未发送的节点处停止这种优先级别的发送;C.服务器端每路视频只保留2帧IDR范围内的最新实时视频数据,具体实现步骤如下:C1.服务器端获取H.264编码的视频采样设备的视频流数据包bag;C2.数据包bag连接到链表A的尾部,同时构建链表B相应一个节点;C3.服务器端每路视频分别维护一个IDR帧计数IDRCount;C4.判断数据包bag是否是IDR帧,如果是IDR帧,则IDR帧计数IDRCount加1;C5.检查IDR帧计数IDRCount,如果该计数大于给定阈值2,则从链表A尾部逆向遍历,找到该路视频的倒数第2个IDR帧,删除有关该路视频倒数第2个IDR帧以前的所有历史视频数据;D.客户端缓冲区设计为两类链表,具体内容如下:D1客户端维护一个双向环形链表CA作为接收缓冲区,用于记录服务器端转发的未分包的视频流数据,链表CA的节点主要包含但不限于如下成员:视频流指针和视频流长度;D2客户端维护一个双向环形链表CB作为播放缓冲区,用于链表CA中已经分包的各路视频数据包,链表CB的节点主要包含但不限于如下成员:视频流指针、视频流长度、视频采样设备;E.客户端每路视频只保留2帧IDR范围内的最新实时视频数据,具体实现步骤是:E1.客户端每路视频分别维护一个IDR帧计数IDRCount;E2.客户端获取分包后的视频流,判断是否是IDR帧;E3.分包后的视频流如果是IDR帧,则IDR帧计数IDRCount加1;E4.如果IDR帧计数IDRCount大于给定阈值2,则从链表CB尾部逆向查找倒数第2个IDR帧,删除链表CB倒数第2个IDR帧之前的该频道的所有历史视频数据包;F.服务器端采用双线程及缓冲区方法转发实时视频流,以解决网速和服务器端软件从视频采样设备上获取到的视频流速度不一致的问题,具体实施步骤如下:F1.服务器端软件运行时,同时启动子线程T;F2.子线程T专用于服务器端和客户端视频流转发;F3.服务器端主线程、子线程共用链表A,采用线程锁技术以保证公共链表A数据的一致性,对链表A的增删读写都要使用线程锁机制;G.客户端采用双线程及缓冲区方法预览播放实时和视频,以便解决从服务器端获取的视频流速度和客户端播放器播放速度不一致的问题,具体实现步骤如下:G1.客户端软件运行时,同时启动子线程CT;G2.子线程CT专用于播放器播放视频数据;G3.客户端主线程、子线程共用链表CB,采用线程锁技术以保证公共链表CB数据的一致性,对链表CB的增删读写都要使用线程锁机制;H.客户端云控视频采样设备时,服务器端和客户端分别清空除云控频道外的所有其他频道历史视频数据,并分别从IDR帧重新开始继续转发,具体实现步骤如下:H1.客户端通过TCP协议向服务器端发送某个视频采样设备的云控命令;H2.客户端从链表CB尾部开始倒序遍历,只保留云控频道的视频流数据,其他频道视频流数据清空,云控时,用户注意力集中在云控频道,清空其他频道,是为了让云控频道尽快实时播放云控后的视频画面以改善用户的实时性体验;H3.服务器端接到云控命令后,从链表A的尾部开始逆序遍历,清空除云控频道外所有其他频道的视频数据;H4.服务器端的非云控频道从各自的新的IDR帧开始继续加入链表A并重新开始转发。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工商大学,未经北京工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610540068.8/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top