本次将尝试使用板子自带的VCU功能,该功能为EV系列芯片的特色功能,使用Edgeboard自带的官方镜像就可以实现VCU的诸多功能,这里我们出于学习目的将自己搭建软硬件平台实现利用VCU播放mp4视频的功能。首先新建vivado工程,然后添加VCU的IP,其配置如下所示:
可以看到VCU将消耗掉大量的带宽,本次例程我们使用PS端的DDR进行缓存,所以需要保留充足的HP接口保证带宽。配置完成后需要进行其他部分的连接,基本结构如下所示:
搭建完工程后,将编译生成hdf文件,结果如下所示:
可以看到VCU的外设还是需要消耗一些可编程逻辑资源,并且使用了VCU的情况下,功耗非常高,直接到了6W左右。下面将搭建petalinux工程,具体过程与之前的移植过程基本相同,不同的是需要在根文件系统中,添加Gstreamer等:
配置完成后进行镜像编译,随便拷贝一个视频进SD卡,然后运行如下命令:
gst-launch-1.0 filesrc location= /home/root/new.mp4 ! qtdemux name=demux demux.video_0 ! h264parse ! omxh264dec ! queue max-size-bytes=0 ! kmssink bus-id=fd4a0000.zynqmp-display fullscreen-overlay=1
得到效果如下所示: