方案调研
OTT设备目前大部分都是基于Android系统的,因此可以直接使用之前文章《一分钟教你Android、iOS如何实现自动化录屏,超实用!》中提到的方法,优点是方便,不需要借助任何外部设备,但缺点也很明显就是需要消耗设备资源,会对系统本身性能产生影响,进而影响到应用启动和页面加载的响应耗时。
另外一种方案是利用OTT的特性,通过外设采集HDMI的输出然后将其转为USB的输入,然后在PC上用ffmpeg采集USB的输入内容即可完成屏幕的录制,这种方案的优点是对系统性能几乎没有任何影响,但缺点的话就是需要额外的硬件设备。
硬件准备
首先我们肯定是需要准备好待测试的OTT设备以及执行自动化测试任务的PC执行机(Linux),然后还需要两个配件:
1、HDMI转USB采集卡
2、HDMI线
软件准备
需要在执行自动化的机器上安装以下两个软件包:
sudo apt install ffmpeg sudo apt install v4l-utils
执行录屏
将HDMI转USB采集卡的USB口连接到我们执行自动化的机器,HDMI口通过HDMI线连接到OTT设备上,首先执行下面的命令查看录屏输入端口:
v4l2-ctl --list-devices USB Video: USB Video (usb-0000:00:14.0-3.1): /dev/video2 /dev/video3
然后就可以在执行自动化的机器上执行下面的命令完成OTT设备的屏幕录制了:
ffmpeg -t 10 -y -f v4l2 -i /dev/video2 output.mp4 -video_size hd720 参数说明: -t 10: 录制时长,单位秒,这里主要是外部传入,实际使用过程中10-15s就可以; -y :强制覆盖,如果文件重名直接覆盖; -f v4l2: 视频挂载的设备,linux下为v4l2; -i /dev/video2 : 指定录屏输入端口 output.mp4: 输出的文件,注意是pc上的文件路径; -video_size hd720: 指定输出视频分辨率