背景
用户在选择用网络传输视频时,传输延迟往往是他们非常关心的数据。集成商在探究如何降低视频传输延时,往往专注于网络本身和视频编码的优化,容易忽略视频解码和播出也是整个视频传输过程中非常重要的环节。本文重点讲述了通过调节美乐威NDI®解码器端的解码缓冲(buffer duration)可以明显降低网络传输过程中的延迟。
 
【测试使用设备】
硬件设备:
	- 视频信号源:企鹅极光盒子(1080p60)
 
	- 硬件编码设备:Pro Convert HDMI 4K Plus编码器(固件版本V1.0.567)
 
	- 硬件解码设备:Pro Convert for NDI® to HDMI解码器(固件版本V1.0.571)
 
	- 显示器:两台DELL E2214Hv(下文分别称为显示器1和显示器 2)
 
	- 交换机:新华三 Aoiynk S1208D
 
 
【测试方案】
设备搭建如下图:

我们通过Magewell Pro Convert HDMI 4K Plus编码器(下文简称“美乐威NDI®编码器”)对视频源编码,通过NDI®协议传输到局域网;同时利用这款美乐威NDI®编码器上的环路输出接口连接显示器1,因环路输出不经过任何系统处理,且本测试使用的显示器不带操作系统,故其显示的画面可视为视频源本身,用于和解码显示的画面做对比。
解码端使用的Magewell Pro Convert for NDI® to HDMI(下文简称“美乐威NDI®解码器”)也连接到相同的局域网,解码后的画面通过HDMI接口输出到显示器2显示。
为了测试目的,我们特地制作了可以用于秒表计时的视频。通过记录并对比视频源(显示器1)中的秒表显示时间和解码端(显示器2)显示的时间,可以获得从视频编码到最终完成解码显示需要的时间,即为视频传输延迟。
在搭建完以上测试环境后,我们登录美乐威解码器的Web UI(用户可通过多种方式来访问Pro Convert系列产品的Web UI,详情见cn.magewell.com/kb/005030002/detail),在数据流页面手动添加通道,即在“预设”中点击“添加”即可选择不同传输协议,在弹出界面“缓冲时间”中输入缓冲时间值。此外还可以自动获取NDI®数据流通道,在 “NDI®数据源”的“缓冲时间”中输入缓冲时间值进行统一设置,我们尝试不同的数值(20ms至120ms,每隔10ms变化一次),并记录测试结果如下。

【测试结果】
	
		
			| 
			 序号 
			 | 
			
			 缓冲时间值(ms) 
			 | 
			
			 取流时间(s) 
			(显示器 1) 
			 | 
			
			 解码时间(s) 
			(显示器 2) 
			 | 
			
			 延时(ms) 
			(显示器 1-显示器 2) 
			 | 
			
			 延时平均值 
			(ms) 
			 | 
		
		
			| 
			 1 
			 | 
			
			 20 
			 | 
			
			 00:09.717 
			 | 
			
			 00:09.667 
			 | 
			
			 50 
			 | 
			
			 50 
			 | 
		
		
			| 
			 2 
			 | 
			
			 00:10.433 
			 | 
			
			 00:10.383 
			 | 
			
			 50 
			 | 
		
		
			| 
			 3 
			 | 
			
			 00:11.550 
			 | 
			
			 00:11.500 
			 | 
			
			 50 
			 | 
		
		
			| 
			 4 
			 | 
			
			 30 
			 | 
			
			 00:14.000 
			 | 
			
			 00:13.933 
			 | 
			
			 67 
			 | 
			
			 66.7 
			 | 
		
		
			| 
			 5 
			 | 
			
			 00:15.417 
			 | 
			
			 00:15.350 
			 | 
			
			 67 
			 | 
		
		
			| 
			 6 
			 | 
			
			 00:16.183 
			 | 
			
			 00:16.117 
			 | 
			
			 66 
			 | 
		
		
			| 
			 7 
			 | 
			
			 40 
			 | 
			
			 00:53.900 
			 | 
			
			 00:53.817 
			 | 
			
			 83 
			 | 
			
			 83 
			 | 
		
		
			| 
			 8 
			 | 
			
			 00:54.450 
			 | 
			
			 00:54.367 
			 | 
			
			 83 
			 | 
		
		
			| 
			 9 
			 | 
			
			 00:55.433 
			 | 
			
			 00:55.350 
			 | 
			
			 83 
			 | 
		
		
			| 
			 10 
			 | 
			
			 50 
			 | 
			
			 00:24.350 
			 | 
			
			 00:24.267 
			 | 
			
			 83 
			 | 
			
			 83.3 
			 | 
		
		
			| 
			 11 
			 | 
			
			 00:25.500 
			 | 
			
			 00:25.417 
			 | 
			
			 83 
			 | 
		
		
			| 
			 12 
			 | 
			
			 00:26.217 
			 | 
			
			 00:26.133 
			 | 
			
			 84 
			 | 
		
		
			| 
			 13 
			 | 
			
			 60 
			 | 
			
			 00:07.967 
			 | 
			
			 00:07.883 
			 | 
			
			 84 
			 | 
			
			 83.7 
			 | 
		
		
			| 
			 14 
			 | 
			
			 00:08.700 
			 | 
			
			 00:08.617 
			 | 
			
			 83 
			 | 
		
		
			| 
			 15 
			 | 
			
			 00:09.517 
			 | 
			
			 00:09.433 
			 | 
			
			 84 
			 | 
		
		
			| 
			 16 
			 | 
			
			 70 
			 | 
			
			 00:26.267 
			 | 
			
			 00:26.167 
			 | 
			
			 100 
			 | 
			
			 100 
			 | 
		
		
			| 
			 17 
			 | 
			
			 00:27.750 
			 | 
			
			 00:27.650 
			 | 
			
			 100 
			 | 
		
		
			| 
			 18 
			 | 
			
			 00:28.633 
			 | 
			
			 00:28.533 
			 | 
			
			 100 
			 | 
		
		
			| 
			 19 
			 | 
			
			 80 
			 | 
			
			 00:45.633 
			 | 
			
			 00:45.517 
			 | 
			
			 116 
			 | 
			
			 116.7 
			 | 
		
		
			| 
			 20 
			 | 
			
			 00:46.567 
			 | 
			
			 00:46.450 
			 | 
			
			 117 
			 | 
		
		
			| 
			 21 
			 | 
			
			 00:47.300 
			 | 
			
			 00:47.183 
			 | 
			
			 117 
			 | 
		
		
			| 
			 22 
			 | 
			
			 90 
			 | 
			
			 00:05.733 
			 | 
			
			 00:05.600 
			 | 
			
			 133 
			 | 
			
			 133 
			 | 
		
		
			| 
			 23 
			 | 
			
			 00:06.033 
			 | 
			
			 00:05.900 
			 | 
			
			 133 
			 | 
		
		
			| 
			 24 
			 | 
			
			 00:07.700 
			 | 
			
			 00:07.567 
			 | 
			
			 133 
			 | 
		
		
			| 
			 25 
			 | 
			
			 100 
			 | 
			
			 00:23.517 
			 | 
			
			 00:23.383 
			 | 
			
			 134 
			 | 
			
			 133.3 
			 | 
		
		
			| 
			 26 
			 | 
			
			 00:24.267 
			 | 
			
			 00:24.133 
			 | 
			
			 134 
			 | 
		
		
			| 
			 27 
			 | 
			
			 00:25.533 
			 | 
			
			 00:25.400 
			 | 
			
			 133 
			 | 
		
		
			| 
			 28 
			 | 
			
			 110 
			 | 
			
			 00:40.500 
			 | 
			
			 00:40.350 
			 | 
			
			 150 
			 | 
			
			 150 
			 | 
		
		
			| 
			 29 
			 | 
			
			 00:41.683 
			 | 
			
			 00:41.533 
			 | 
			
			 150 
			 | 
		
		
			| 
			 30 
			 | 
			
			 00:42.317 
			 | 
			
			 00:42.167 
			 | 
			
			 150 
			 | 
		
		
			| 
			 31 
			 | 
			
			 120 
			 | 
			
			 00:06.433 
			 | 
			
			 00:06.283 
			 | 
			
			 150 
			 | 
			
			 150 
			 | 
		
		
			| 
			 32 
			 | 
			
			 00:07.550 
			 | 
			
			 00:07.400 
			 | 
			
			 150 
			 | 
		
		
			| 
			 33 
			 | 
			
			 00:08.333 
			 | 
			
			 00:08.183 
			 | 
			
			 150 
			 | 
		
	
 
通过整理,我们得到以下表格:
	
		
			| 
			 缓冲时间值(ms) 
			 | 
			
			 20 
			 | 
			
			 30 
			 | 
			
			 40 
			 | 
			
			 50 
			 | 
			
			 60 
			 | 
			
			 70 
			 | 
			
			 80 
			 | 
			
			 90 
			 | 
			
			 100 
			 | 
			
			 110 
			 | 
			
			 120 
			 | 
		
		
			| 
			 延时 
			(ms) 
			 | 
			
			 50 
			 | 
			
			 66.7 
			 | 
			
			 83 
			 | 
			
			 83.3 
			 | 
			
			 83.7 
			 | 
			
			 100 
			 | 
			
			 116.7 
			 | 
			
			 133 
			 | 
			
			 133.3 
			 | 
			
			 150 
			 | 
			
			 150 
			 | 
		
	
 
【测试结论】
在相同的网络环境和视频编码下,视频的网络传输延迟和解码端的缓冲设置有直接关系。缓冲设置的越小,整体的传输延迟越小。需要注意的是,交换机和显示器的选择也会影响测试效果,具体内容推荐阅读《交换机、显示器类型对Pro Convert延时影响测试》。