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

文档序号:9220123
一种实时视频传输装置及方法
【技术领域】:
[0001] 本发明属于实时视频传输技术领域,具体涉及一种基于流媒体服务器实时视频传 输装置及方法,提高视频传输的实时性。
【背景技术】:
[0002] 随着无线通信技术的发展,以智能手机为代表的便携式移动终端的高度普及为构 建面向移动环境的实时视频传输提供了便利条件,在网络视频聊天、视频会议和医疗示教 等对视频传输实时性要求较高的领域,视频传输的延时成为衡量实时视频传输系统性能的 关键指标;目前,以智能手机作为视频采集设备的实时视频传输系统有较大的延时,因为要 使流媒体服务器支持实时视频传输,需要新建可以从内存中读取数据的数据源代替原有的 数据源,新建的数据源从流媒体服务器缓冲区中读取数据,某一时间段内,采集端设备的数 据处理能力下降或者网络出现拥塞时数据就不会被及时传送到服务器接收缓存区中,导致 数据源读取不到数据,出现实时视频传输延时,视频播放中断或出现马赛克图像,存在实时 视频传输的质量得不到有效保障的问题,例如live555开源项目默认的数据传输逻辑是基 于视频文件点播的,要想实现实时的视频传输,一方面要在缓冲区中对数据进行实时化处 理,另一方面要修改live555中的数据传输结构、抽象数据源和接口;现有技术中的重传方 法不适用实时性要求较高的视频传输系统。因此,研发一种适用于实时性要求较高场合的 实时视频传输装置和方法,实现视频在实时传输中延时少,在播放中不中断,很有社会价值 和应用前景。

【发明内容】

[0003] 本发明的目的在于克服现有技术存在的缺点,设计一种适用于实时性要求较高场 合的实时视频传输装置和方法,使视频在实时传输中不延时,在播放中不中断,提高视频传 输的稳定性和视频播放的质量。
[0004] 为了实现上述目的,本发明所述实时视频传输装置的主体结构包括采集端、流媒 体服务器端和播放端,采集端将采集的视频数据进行编码后以UDP(用户数据报协议)方 式将视频数据传输到流媒体服务器端;流媒体服务器端由视频数据接口、实时处理逻辑模 块、数据缓冲区、重传模块、自适应调节模块、数据源处理模块、RTP(实时传输协议)编码 模块、会话管理模块和RTSP(实时流传输协议)交互模块按照电学原理连接组成,视频数 据接口接收UDP视频数据并将其保存到数据缓冲区中,实时处理逻辑模块对接收到的UDP 视频数据进行实时化处理,重传模块根据缓冲区是否接收到新的视频数据判断是否重传视 频数据以保持视频数据的连续性,重传模块配合自适应调节模块对采集端视频数据发送速 率进行动态调节并创建对应于实时视频数据的视频Source(数据源),Source用于实时视 频传输的装置中所有读取实时视频数据的操作,RTSP交互模块与播放端交互,播放端发送 DESCRIBE(描述)请求后获取到对应的流媒体信息的SDP(会话描述协议)描述信息并发送 给播放端,播放端发送SETUP(设置)请求后向会话管理模块请求建立新的Session(会话) 和Sink(视频数据消费对象),Sink用于实时视频传输的装置中所有发送数据的操作,一个Session表示一个服务器与播放端的连接,同时建立一个Source与Sink之间的连接,播放 端发送PLAY(播放)请求后,RTP编码模块对视频数据进行RTP打包,视频数据通过Source 与Sink之间的连接被发送到播放端;播放端用于播放接收到的视频数据。
[0005] 本发明涉及的实时处理逻辑模块将从采集端传到流媒体服务器端的视频数据通 过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〇
[0006] 本发明涉及的实时处理逻辑模块工作过程为:
[0007](1)、将采集端传过来的视频数据开头部分的SPS、PPS和I帧截取并保存到缓冲区 中;
[0008](2)、在播放端请求播放前将Iframe_num设为1;
[0009] (3)、监听流媒体服务器端与播放端是否建立连接,如果没有连接,刷新缓冲区并 继续监听,如果已连接,将Iframe_num重置为3 ;
[0010] (4)、监听流媒体服务器端与播放端是否断开连接,如果没有断开,保持Iframe_ num为3,如果断开,将Iframe_num设定为1,以确保下一次实时视频传输的时延最小。 [0011] 本发明涉及的重传模块判断流媒体服务器端的缓冲区接收到新视频数据时数据 源正常读取数据并进行实时传送,重传模块判断流媒体服务器端的缓冲区没有接收到新视 频数据时数据源中用于读取视频数据的指针往回偏移并重传已经保存的视频数据,以保持 视频数据的连续性,防止视频播放的中断,如果流媒体服务器端的缓冲区一直没有接收到 新视频数据,重传模块循环执行偏移操作并记录〇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的对应关 系算法表达式为:
[0012]
[0013] (1)、AC是根据offset_num划分的3种数据传输状况来计算的,Range(调节范 围)根据实际需要预先设定权值a来实现不同的调节幅度,以满足实际传输情况的需要,如 果AC过大会引起采集端发送视频数据瞬时产生巨大波动,为了避免出现这种频繁的波动 对AC进行平滑处理,用平滑处理后的AC对采集端发送视频的发送速率进行调节,平滑计 算式为:AC'=(l_t)XAC(n_l)+tAC(n) (0<t<1)
[0014] (2)、AC'是本次平滑处理后的调节幅度,AC(n-l)是上一次平滑处理后的调节 幅度,AC(n)是本次计算得到的调节幅度,当t增加时,AC(n)对结果的影响增大;当t减 小时,AC(n-l)对结果的影响增大。
[0015] 本发明涉及的自适应调节模块的工作过程为:
[0016] (1)、根据重传模块记录的offset_num来判别当前数据传输的状况;
[0017](2)、根据数据传输状况计算AC,预先设定offset_num的最小值TL和最大值TH, 当offset_num小于TL时,表明视频数据的重传对播放的影响忽略不计,不需要的对采集端 视频码流的发送速率进行调节,即AC= 0 ;当offset_num大于TL且小于TH,表明视频数 据的重传对视频播放会产生影响,出现花屏现象,需要对采集端视频码流的发送速率进行 调节,调节幅度AC=aXRange;当offset_num大于TH,表明视频数据重传对视频播放产 生较大影响,出现卡屏现象,视频数据的传输出现问题,需要中断并重新
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1