一种实时视频传输装置及方法_2

文档序号:9220123阅读:来源:国知局
建立连接;
[0018] (3)、当offset_num大于TL且小于TH,将计算出的AC进行平滑处理;并将计算 得到的反馈给采集端。
[0019] 本发明实现实时视频传输的具体过程为:采集端将采集的视频数据进行编码后以 UDP方式将视频数据传输到流媒体服务器端,流媒体服务器端将从采集端传过来的视频数 据进行实时的流化处理,依据RTP协议规则将视频数据打包成标准RTP数据包,然后使用 RTSP协议与播放端进行交互,将RTP包发送到播放端,播放端播放接收到的视频数据;对实 时视频传输的装置播放视频数据进行延时测试表明视频播放延时由2160ms降低到863ms, 视频播放过程流畅没有出现中断和花屏的现象。
[0020] 本发明与现有技术相比,在基于流媒体服务器的实时视频传输系统中,采用实时 处理逻辑和自适应重传机制,减少视频实时传输延时,防止视频播放中断,其结构简单,原 理可靠,具有良好的视频传输稳定性和视频播放流畅性,易于推广应用。
【附图说明】:
[0021] 图1为本发明涉及的实时处理逻辑模块工作原理示意图。
[0022] 图2是本发明涉及的自适应重传机制工作原理示意图。
[0023]图3是本发明涉及的自适应调节模块工作原理示意图。
[0024] 图4是本发明涉及的流媒体服务器端结构原理示意图。
【具体实施方式】:
[0025] 下面通过实施例并结合附图对本发明做进一步描述。
[0026] 实施例:
[0027] 本实施例涉及的实时视频传输的装置的主体结构包括采集端、流媒体服务器端和 播放端,采集端将采集的视频数据进行编码后以UDP(用户数据报协议)方式将视频数据传 输到流媒体服务器端;流媒体服务器端由视频数据接口、实时处理逻辑模块、数据缓冲区、 重传模块、自适应调节模块、数据源处理模块、RTP(实时传输协议)编码模块、会话管理模 块和RTSP(实时流传输协议)交互模块按照电学原理连接组成,视频数据接口接收UDP视 频数据并将其保存到数据缓冲区中,实时处理逻辑模块对接收到的UDP视频数据进行实时 化处理,重传模块根据缓冲区是否接收到新的视频数据判断是否重传视频数据以保持视频 数据的连续性,重传模块配合自适应调节模块对采集端视频数据发送速率进行动态调节并 创建对应于实时视频数据的视频Source(数据源),Source用于实时视频传输的装置中所 有读取实时视频数据的操作,RTSP交互模块与播放端交互,播放端发送DESCRIBE(描述) 请求后获取到对应的流媒体信息的SDP(会话描述协议)描述信息并发送给播放端,播放端 发送SETUP(设置)请求后向会话管理模块请求建立新的Session(会话)和Sink(视频数 据消费对象),Sink用于实时视频传输的装置中所有发送数据的操作,一个Session表示一 个服务器与播放端的连接,同时建立一个Source与Sink之间的连接,播放端发送PLAY(播 放)请求后,RTP编码模块对视频数据进行RTP打包,视频数据通过Source与Sink之间的 连接被发送到播放端;播放端用于播放接收到的视频数据。
[0028] 本实施例涉及的实时处理逻辑模块将从采集端传到流媒体服务器端的视频数据 通过H264编码转换成视频数据流,H264视频数据流的格式开头为SPS(字符串处理系统) 和PPS(视频平台),接着是编码器的参数信息,然后是I帧,流媒体服务器端将H264视频数 据流中的SPS、PPS和I帧截取并保存到缓冲区中,然后实时刷新缓冲区,以保证数据的实时 性;没有播放请求时,缓冲区内缓存帧数达到设定数目后缓冲区清空接收到的视频数据,有 播放请求时,缓冲区将接收到的最新的视频数据传给流媒体服务器端,以确保流媒体服务 器端传给播放端的视频数据是最新的,实现视频数据的实时传输;涉及的缓冲区根据其保 存的Iframe_num(I帧的个数)来判定是否刷新,当缓冲区内I帧数达到设定值时,缓冲区 刷新和清空接收到的视频数据;设定Iframe_num=N,表明缓冲区内有N个I帧,当有播放 请求时,播放端从第一个I帧开始播放,实际上最新的视频数据是第N个I帧,这样就会产 生N帧的延迟,Iframe_num设置过大,数据传输相对稳定,但是时延会变大,满足不了视频 传输实时性的要求;如果Iframe_num设置过小,时延会小,但是视频数据不能及时被传到 流媒体服务器端,视频播放出现中断;将Iframe_num设为1,播放端请求播放时的延时是最 小的,为保证视频数据传输的稳定性,同时考虑缓冲区中视频数据到达速率与读取速率,将 Iframe_num重置为 3〇
[0029] 本实施例涉及的实时处理逻辑模块工作过程为:
[0030](1)、将采集端传过来的视频数据开头部分的SPS、PPS和I帧截取并保存到缓冲区 中;
[0031] (2)、在播放端请求播放前将Iframe_num设为1 ;
[0032] (3)、监听流媒体服务器端与播放端是否建立连接,如果没有连接,刷新缓冲区并 继续监听,如果已连接,将Iframe_num重置为3 ;
[0033] (4)、监听流媒体服务器端与播放端是否断开连接,如果没有断开,保持Iframe_ num为3,如果断开,将Iframe_num设定为1,以确保下一次实时视频传输的时延最小。
[0034] 本实施例涉及的重传模块判断流媒体服务器端的缓冲区接收到新视频数据时数 据源正常读取数据并进行实时传送,重传模块判断流媒体服务器端的缓冲区没有接收到新 视频数据时数据源中用于读取视频数据的指针往回偏移并重传已经保存的视频数据,以保 持视频数据的连续性,防止视频播放的中断,如果流媒体服务器端的缓冲区一直没有接收 到新视频数据,重传模块循环执行偏移操作并记录〇fTset_num(重传次数);涉及的自适应 调节模块是以重传模块记录的offset_num为输入参数,将采集端视频码流发送速率的调 节幅度设为AC,根据实际采用的视频编码格式选用相应的编码选项和相关参数,建立AC 与offset_num的对应关系,自适应调节模块根据offset_num判断视频数据从采集端到流 媒体服务器端的传输状况采用粗粒度判别方式对视频数据传输做出实时调整,〇ffset_num 设定两个阀值TL和TH,视频数据传输状况根据offset_num划分为3个区域,区域statel 表示offset_num较小,视频数据重传对视频的播放影响不大,不需要对采集端的发送速率 进行调整;区域state2表示offset_num对视频的播放产生影响,出现部分花屏现象,需要 对采集端的发送速率进行调整;区域state3表示offset_num超过最高限值,表明采集端与 流媒体服务器端的连接出现故障,较长时间内没有视频数据传送过来,需要断开并重新建 立连接,实现对视频数据传输状况的一个粗粒度的判别和划分,AC和offset_num的对应 关系算法表达式为:
[0035]
[0036] (1)、AC是根据offset_num划分的3种数据传输状况来计算的,Range(调节范 围)根据实际需要预先设定权值a来实现不同的调节幅度,以满足实际传输情况的需要,如 果AC过大会引起采集端发送视频数据瞬时产生巨大波动,为了避免出现这种频繁的波动 对AC进行平滑处理,用平滑处理后的AC对采集端发送视频的发送速率进行调节,平滑计 算式为:AC'=(l_t)XAC(n_l)+tAC(n) (0<t<1)
[0037] (2)、AC'是本次平滑处理后的调节幅度,AC(n-l)是上一次平滑处理后的调节 幅度,AC(n)是本次计算得到的调节幅度,当t增加时,AC(n)对结果的影响增大;当t减 小时,AC(n-l)对结果的影响增大。
[0038] 本实施例涉及的自适应调节模块的工作过程为:
[0039] (1)、根据重传模块记录的offset_num来判别当前数据传输的状况;
[0040] (2)、根据数据传输状况计算AC,预先设定TL和TH,当offset_num小于阀值TL, 表明视频数据的重传对播放的影响忽略不计,不需要的对采集端视频码流的发送速率进行 调节,g卩AC= 0 ;当offset_num大于TL且小于TH,表明视频数据的重传对视频播放会 产生影响,出现花屏现象,需要对采集端视频码流的发送速率进行调节,调节幅度△c=aXRange;当offset_num大于TH,表明视频数据重传对视频播放产生较大影响,出现卡屏 现象,视频数据的传输出现问题,需要中断并重新建立连接;
[0041] (3)、当offset_num大于TL且小于TH,将计算出的AC进行平滑处理;
[0042] (4)、将AC'反馈给采集端。
[0043] 本实施例涉及的实时视频传输的装
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1