本发明涉及图像传输技术领域,尤其涉及一种模拟多路高清实时音视频传输的装置及其方法。
背景技术:
随着科学技术的快速发展,视频监控已深入到各行各业,大到社会治安、社区监控,小到商店监控、家庭监控。越来越多的视频资源产生,当这些视频资源被访问时,经过网络可能会出现延时、丢包等各种各样的问题;遇到这种情况,在局域网的实验室环境下很难模拟其情况,经常需要到现场排查问题,耗费大量的人力物力。因此需要一款装置可以方便快捷地模拟出现场实际网络环境,快速定位并解决问题。
申请号为CN201410512167.5的中国发明专利《一种基于PCIe的多路高清模拟音视频采集系统》,其主要特点是将高清模拟音频视频信号转换成计算机识别的数字音视频文件,充分利用了PCI协议带宽,不仅能够实时传输高清视频数据,而且具有良好的硬件兼容性。但其存在的问题是仅支持基于PCIe的音视频采集,其视频源局限于PCIe的音视频方式,且在传输时未支持模拟网络发包中出现的延时、丢包、抖动、乱序等现象。
因此,现有技术存在有待改进和发展的空间。
技术实现要素:
本发明的目的就在于针对现有技术存在上述问题,提供一种模拟多路高清实时音视频传输的装置及其方法,通过读取抓包文件来模拟实时音视频传输,实现了延时发包、丢包控制、抖动发包、乱序发包和重复发包策略,保证模拟实时视频传输的同时能提供更丰富的视频流选择,从而模拟现场音视频传输的状态,方便问题的定位与解决。
本发明的目的是这样实现的:
以抓包文件为依据,自动分析文件中是否含有音视频数据包,提取音视频数据包信息,并根据设置策略进行精确发包、延时发包、丢包控制、抖动发包、乱序发包或重复发包,再将数据包通过网络发送,模拟实时音视频传输。
具体地说:
一、模拟多路高清实时音视频传输的装置(简称装置)
本装置包括依次交互的音视频处理模块、解析模块、控制模块和网络传输模块;
音视频处理模块包括依次交互的抓包文件、文件读取模块和文件解析模块;
解析模块包括依次交互的音视频数据包读取模块、音视频数据包的时间戳获取模块和音视频数据包缓存模块;
控制模块包括依次交互的控制策略模块、延时发包模块、丢包控制模块、乱序发包模块、抖动发包模块和重复发包模块;控制策略模块还和精确发包模块交互;
网络传输模块将控制模块中的数据包通过网络发送。
二、模拟多路高清实时音视频传输的方法(简称方法)
本方法包括以下步骤:
①音视频处理模块读取抓包文件,读取文件中的数据,分析抓包文件中是否含有音视频包数据;
②解析模块主要获取音视频包及时间戳,并保存到音视频数据包缓存中;
③控制模块主要控制使用哪种控制方法进行发包;
④传输模块将数据包通过网络发送。
与现有技术相比,本发明具有下列优点和积极效果:
①不局限于某一款视频监控设备,只要是经过网络发送的数据包的视频监控设备,本发明都可有效模拟其音视频传输情况;
②不局限于高清视频格式,只要经过网络传输的数据包,都可真实的还原其音视频传输情况;
③本发明可以同时处理多个的抓包文件,实现多路高清音视频数据并行处理并传输;
④可通过控制策略,实现精确发包、延时发包、丢包控制、抖动发包、乱序发包和重复发包;
⑤可以更好的模拟工程现场的环境,尽快地解决问题。
附图说明
图1 为本装置的结构方框图;
图2 为本方法的步骤图;
图3 为音视频处理模块的流程图;
图4为解析模块的流程图;
图5为控制模块的流程图;
图6为本发明的一个实施例图;
图7为本发明的另一个实施例图。
具体实施方式
下面结合附图和实施例对本发明详细说明。
一、装置
1、总体结构
如图1,本装置包括依次交互的音视频处理模块10、解析模块20、控制模块30和网络传输模块40;
2、功能模块
1)音视频处理模块10
音视频处理模块10包括依次交互的抓包文件11、文件读取模块12和文件解析模块13;
*抓包文件11:音视频处理模块处理输入的抓包文件;
*文件读取模块12:对抓包文件11进行文件读取;
*文件解析模块13:对文件读取模块12读取的文件数据进行分析,检测其文件属性、帧率和帧时间戳信息,解析其是否包含音视频帧,是否为音视频文件。
2)解析模块20
解析模块20包括依次交互的音视频数据包读取模块21、音视频数据包的时间戳获取模块22和音视频数据包缓存模块23;
*音视频数据包读取模块21:对抓包文件11进行读取,读取其中的音视频数据包;
*音视频数据包的时间戳获取模块22:读取音视频数据包读取模块21的音视频数据包对应的时间戳信息;
*音视频数据包缓存模块23:保存音视频数据包读取模块21和音视频数据包的时间戳获取模块22获取的音视频数据包及时间戳信息到缓存中。
3)控制模块30
控制模块30包括依次交互的控制策略模块31、延时发包模块33、丢包控制模块34、乱序发包模块35、抖动发包模块36和重复发包模块37;控制策略模块31还和精确发包模块32交互;
*控制策略模块31:根据控制策略判断进行精确发包还是进行发包控制;
*精确发包模块32:根据控制策略模块31的结果,如果进行精确发包时则进行精确控制发送数据包;
*延时发包模块33:根据控制策略模块31的结果,如果进行延时发包时则根据规定的延时时长进行延时发送数据包;
*丢包控制模块34:根据控制策略模块31的结果,如果进行丢包控制时则根据规定的丢包率进行丢包;
*乱序发包控制35:根据控制策略模块31的结果,如果进行乱序发包时则根据规定的乱序规则发送数据包;
*抖动发包控制36:根据控制策略模块31的结果,如果进行抖动发包时则根据规定的抖动规则发送数据包;
*重复发包控制37:根据控制策略模块31的结果,如果进行重复发包时则根据规定的重复发包的规则发送数据包。
4)网络传输模块40
网络传输模块40将控制模块中的数据包通过网络发送。
二、方法
如图2,本方法包括以下步骤:
①音视频处理模块读取抓包文件,读取文件中的数据,分析抓包文件中是否含有音视频包数据-201;
②解析模块主要获取音视频包及时间戳,并保存到音视频数据包缓存中- 202;
③控制模块主要控制使用哪种控制方法进行发包-203;
④传输模块将数据包通过网络发送-204。
1、步骤①
如图3,本方法步骤①的工作流程:
A、获取抓包文件-301;
B、文件读取模块读取抓包文件-302;
C、文件解析模块解析抓包文件-303,
解析的内容包括是否包含RTP包,是否包含音视频数据包;
D、判断文件是否包含RTP包-304,是则进入步骤E,否则跳转到步骤A;
E、判断RTP包中是否存在音视频包-305,是则进入步骤②,否则跳转到步骤A。
2、步骤②
如图4,本方法步骤②的工作流程:
a、获取文件中音视频帧率-401;
b、获取文件中音视频总时长-402;
c、获取文件中音视频总帧数-403;
d、获取文件的丢包率-404;
e、获取音视频数据包-405;
f、获取音视频数据包的时间戳-406;
g、确定数据包顺序及时间戳信息-407;
h、保存数据包到发送缓存区-408。
3、步骤③
如图5,本方法步骤③的工作流程:
Ⅰ、控制策略模块启动工作-501;
Ⅱ、判断是否进行发包控制-502,是则进入步骤Ⅲ,否则经过精确发包-508后再进入步骤④;
Ⅲ、判断是否进行延时发包-503,是则经过延时发包-509后再进入步骤Ⅳ,否则直接进入步骤Ⅳ;
Ⅳ、判断是否进行丢包控制-504,是则经过丢包控制-510后再进入步骤Ⅴ,否则直接进入步骤Ⅴ;
Ⅴ、判断是否进行抖动发包-505,是则经过抖动发包-511后再进入步骤Ⅵ,否则直接进入步骤Ⅵ;
Ⅵ、判断是否进行乱序发包-506,是则经过乱序发包-512后再进入步骤Ⅶ,否则直接进入步骤Ⅶ;
Ⅶ、判断是否进行重复发包-507,是则经过重复发包-513后再进入步骤④,否则直接进入步骤④。
三、实施例
1、实施例一
本发明的实施例一,是在本方法的基础上针对单个抓包文件进行分析,并根据控制策略进行发包控制的一种方式。
如图6,本实施例的工作流程:
ⅰ、获取抓包文件-601;
ⅱ、音视频处理模块读取抓包文件-602,
读取文件中的数据,分析抓包文件中是否含有音视频包数据;
ⅲ、解析模块获取音视频包及时间戳信息-603;
ⅳ、控制模块判断原始文件信息是否完整-604,是则经过原始文件完整时,控制对缓存包进行延时发包、丢包控制、抖动发包、乱序发包、重复发包策略来发包-605后进入步骤ⅴ,否则经过原始文件不完整时,控制缓存包进行精确发包-606后进入步骤ⅴ;
ⅴ、传输模块将数据包通过网络发送出去-607。
2、实施例二
本发明的实施例二,是在本方法的基础上针对多个抓包文件进行分析,并根据控制策略进行发包控制的另一种方式。
如图7,本实施例的工作流程:
⑴获取抓包文件1、2…N-701;
⑵音视频处理模块读取N个抓包文件-702,
读取文件中的数据,分析抓包文件中是否含有音视频包数据;
⑶解析模块读取抓包文件中音视频包并保存到缓存区PB1、PB2…PBN-703;
⑷控制模块判断原始文件信息是否完整-704,是则经过原始文件完整时,控制对应的PB1到PBN缓存包进行延时发包、丢包控制、抖动发包、乱序发包、重复发包策略来发包-705后进入步骤⑹,否则经过原始文件不完整时,控制对应的缓存包PB1到PBN进行精确发包-706后进入步骤⑹;
⑸传输模块将数据包通过网络发送出去-707,多路高清音视频数据并行处理时,充分利用千兆以太网卡的网络吞吐带宽大的性能来实现多路并行处理。
本发明中的精确发包主要利用硬件定时器提供的精确定时模块来控制发包,可以达到1ms的精准定时效果,从而实现精确发包控制;本发明充分利用Cortex-A53的八核处理器高性能处理能力,从而能处理多个音视频文件。