基于rudp的音视频可靠传输qos方法、系统的制作方法_4

文档序号:9847325阅读:来源:国知局
]没加QOS模块时,两个终端视频通信在有丢包情况下回出现视频帧不完整,播放出现马赛克的现象,本发明中加上QOS模块后,视音频播放流畅,效果大为改善。同时我们为了测试该方案的作用,在发送端人为地分别丢弃10%和20%的视频RUDP包,接收端解码播放效果良好,没有出现马赛克现象。
[0135]尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
【主权项】
1.一种基于RUDP的音视频可靠传输QOS方法,其特征在于,包括: 发送端根据音视频数据长度将音视频打包成一个以上的RUDP包,每个RUDP包中的数据均对应不同帧的音视频内容; 发送端将RUDP包通过udp socket发送,并同时将所述RUDP包拷贝到发送指令对应循环buffer中,以备发送失败时调用重发; 接收端接收所述RUDP包的数据,并同时将接收的所述数据拷贝到接收指令对应循环bufferψ; 接收端根据循环b u f f e r中节点填充情况和节点接收时间确定接收指令对应循环buff er中数据的处理方式,所述处理方式包括:丢弃、解码或重发。2.如权利要求1所述的基于RUDP的音视频可靠传输QOS方法,其特征在于, 所述发送指令对应循环buffer的节点数、所述接收指令对应循环buffer的节点数相等,且均为65536的整数倍。3.如权利要求1所述的基于RUDP的音视频可靠传输QOS方法,其特征在于,所述发送端根据音视频数据长度将音视频打包成一个以上的RUDP包包括: 分析所述音视频的数据长度; 当所述数据长度大于MTU时,将数据长度大于MTU的帧切割,分块封装到多个RUDP包中; 当所述数据长度小于MTU时,将数据直接封装为RUDP包中。4.如权利要求1所述的基于RUDP的音视频可靠传输QOS方法,其特征在于,所述发送端将RUDP包通过udp socket发送,并同时将所述RUDP包拷贝到发送指令对应循环buffer中,以备发送失败时调用重发包括: 从打包的多个RUDP包中提取一个RUDP包; 将所述RUDP包的seq设置为send_seq,通过udp socket发送给接收端; 在发送同时,将所述RUDP包拷贝到所述send_seq对应节点的循环buffer中,以备接收端未成功接收时,调用重发。5.如权利要求1所述的基于RUDP的音视频可靠传输QOS方法,其特征在于,所述接收端接收所述RUDP包的数据,并同时将接收的所述数据拷贝到接收指令对应循环buffer中包括: 接收端接收所述RUDP包的数据; 解析数据的RUDP包头,设置received_seq,并将数据拷贝到received_seq对应循环buffer中,并将该节点的数据flag设置为true; 若received_seq对应的RUDP包的到达时间晚于end_seq对应包的到达时间,则更新end_seq,否则不更新。6.如权利要求1所述的基于RUDP的音视频可靠传输QOS方法,其特征在于,接收端根据循环buf f er中节点填充情况和节点接收时间确定接收指令对应循环buf f er中数据的处理方式包括: 当收到第一个所述RUDP包的数据时,包头的start_seq和end_seq都设置为received—seq; 当收到非第一个所述RUDP包时,进行如下操作: 以设定时间段为间隔单位,循环扫描start_seq和end_seq对应的每个节点; 若当前时间和start_seq对应数据到达时间的差值大于第一阈值,则丢弃start_seq和end_seq之间的每个节点的数据,将每个节点的数据flag设置为€3186,更新8丨31"1:_869为end_seq; 若当前时间和start_seq对应数据到达时间的小于第一阈值,且start_seq对应的节点的下一个节点的数据falg为true,则将该节点的数据送到解码单元,同时将start_seq更新为该节点的seq,并将该节点的flag设置为false; 若flag为false,且当前时间和start_seq对应的数据到达时间的差值小于第二阈值,则该请求发送端将seq对应的RUDP数据重发。7.一种基于RUDP的音视频可靠传输QOS的发送端,其特征在于,包括: 分析模块,用于分析所述音视频的数据长度; 打包模块,用于根据分析模块分析的数据长度来对音视频进行打包,当所述数据长度大于MTU时,将数据长度大于MTU的帧切割,分块封装到多个RUDP包中;当所述数据长度小于MTU时,将数据直接封装为RUDP包中; 发送模块,用于将RUDP包通过udp socket发送; 缓存模块,用于在所述发送模块发送的同时,将所述RUDP包拷贝到发送指令对应循环buff er中,以备发送失败时调用重发; 接收模块,用于接收发送失败的信息,并将所述信息发送给发送模块。8.一种基于RUDP的音视频可靠传输QOS的接收端,其特征在于,包括: 接收单元,用于接收发送端发送的RUDP包的数据; 缓存单元,用于将接收的所述数据拷贝到接收指令对应循环buffer中; 判断单元,用于根据循环buffer中节点填充情况和节点接收时间确定接收指令对应循环buf fer中数据的处理方式,所述处理方式包括:丢弃、解码或重发; 解码单元,用于对RUDP包的数据进行解码获取音视频; 发送单元,用于向发送端发送重发信息。9.如权利要求8所述的基于RUDP的音视频可靠传输QOS的接收端,其特征在于,所述判断单元的执行方式为: 当收到第一个所述RUDP包的数据时,包头的start_seq和end_seq都设置为received—seq; 当收到非第一个所述RUDP包时,进行如下操作: 以设定时间段为间隔单位,循环扫描start_seq和end_seq对应的每个节点; 若当前时间和start_seq对应数据到达时间的差值大于第一阈值,则丢弃start_seq和end_seq之间的每个节点的数据,将每个节点的数据flag设置为€3186,更新8丨31"1:_869为end_seq; 若当前时间和start_seq对应数据到达时间的小于第一阈值,且start_seq对应的节点的下一个节点的数据falg为true,则将该节点的数据送到解码单元,同时将start_seq更新为该节点的seq,并将该节点的flag设置为false; 若flag为false,且当前时间和start_seq对应的数据到达时间的差值小于第二阈值,则该请求发送端将seq对应的RUDP数据重发。10.一种基于RUDP的音视频可靠传输QOS系统,其特征在于,包括:接收端和发送端,其 中, 发送端根据音视频数据长度将音视频打包成一个以上的RUDP包,每个RUDP包中的数据均对应不同帧的音视频内容; 发送端将RUDP包通过udp socket发送,并同时将所述RUDP包拷贝到发送指令对应循环buff er中,以备发送失败时调用重发; 接收端接收所述RUDP包的数据,并同时将接收的所述数据拷贝到接收指令对应循环bufferψ; 接收端根据循环b u f f e r中节点填充情况和节点接收时间确定接收指令对应循环buff er中数据的处理方式,所述处理方式包括:丢弃、解码或重发。
【专利摘要】本发明公开了音视频传输领域,具体为基于RUDP的音视频可靠传输QOS方法、系统、发送端和接收端。该方法包括:发送端根据音视频数据长度将音视频打包成一个以上RUDP包,每个RUDP包中数据均对应不同帧音视频内容;发送端将RUDP包通过udp?socket发送,并同时将RUDP包拷贝到发送指令对应循环buffer中,备发送失败时调用重发;接收端接收RUDP包数据,并将接收数据拷贝到接收指令对应循环buffer中;接收端根据循环buffer中节点填充情况和节点接收时间确定接收指令对应循环buffer中数据处理方式,处理方式包括:丢弃、解码或重发。本发明有效解决了视频传输中网络延迟、拥塞和丢包的现象。
【IPC分类】H04N21/231, H04N21/647, H04N21/643, H04N21/433
【公开号】CN105611424
【申请号】CN201511005154
【发明人】左根宇, 喻西香, 苏永红, 朱光喜
【申请人】武汉鸿瑞达信息技术有限公司
【公开日】2016年5月25日
【申请日】2015年12月28日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1