Archive file contains the Design_files directory.
Overview
capabilities of video codec unitVideo Codec Unit (VCU) hard design supports the following video
Sources:
Test pattern generator (TPG) implemented in the PL.
This tutorial contains information about:
How to build all the required components based on the provided source files via detailed step-by-step tutorials.
the Gstreamer applicationMultimedia framework to create it accordingly.
This Tech Tip demonstrates following two use cases .
Use Case 1: HDMI capture pipeline with VCU Encode and streaming
{Us_Case1.JPG}
Overview :
In thisThis use case we will be demonstratingdemonstrates video streaming two ZCU106 boards. The rawboards as show in above use case diagram.
The live/raw video is captured by the( in YUV format ) using HDMI Rx on the first ZCU106 board andBoard1. The captured data is encoded ( in H .265 format) using the VCU Block in H.265 format andBlock. The encoded data is packetized into Ethernet RTP streampackets using RTP stack and sentthese RTP packets are transmitted out to a second ZCU106 board.Board 2.
The secondRTP packets are received ,de-packetized and generates compressed stream using RTP stack on ZCU106 board whichBoard 2 .The compressed data is identified by its IP address runs a GStreamer pipeline which captures the encoded video stream from the network and decodes the encoded video packetsdecoded using VCU block and displays itrendered on to the HDMIdisplay monitor ( which is connected to the HDMI transmit interface.We will beZCU106 Board 2) using the gstreamer application to create this pipeline and execute in the Steps to run instructions provided in further section of this document.HDMI-TX subsystem.
Use Case 2: HDMI capture pipeline with VCU Encode and streaming in bidirectional mode
{design_use_case1.JPG}
Overview:
In thisThis use case we will be demonstratingdemonstrates video streaming ZCU106 boards. The raw
The live/raw video is captured by the( in YUV format ) using HDMI Rx the ZCU106 board1 andBoard1. The captured data is encoded ( in H .265 format) using the VCU Block in H.265 format andBlock. The encoded data is packetized into Ethernet RTP streampackets using RTP stack and sentthese RTP packets are transmitted out to aBoard 2. The RTP packets are received ,de-packetized and generates compressed stream using RTP stack on ZCU106 Board2Board 2 .The ZCU106 Board2 whichcompressed data is identified by its IP address runs a GStreamer pipeline which captures the encoded video stream from the networkdecoded using VCU block and decodes the encoded video packets and displays itrendered on to the HDMIdisplay monitor ( which is connected to the HDMI transmit interface.This scenario happens vice versa
We will beZCU106 Board 2) using HDMI-TX subsystem. This same process happens from the gstreamer applicationBoard 2 to create this pipeline and executeBoard 1 simultaneously in the Steps to run instructions provided in further section of this document.bi-directional mode .
Additional material not hosted on thein this tutorial:
Zynq UltraScale+ MPSoC VCU TRD user guide, UG1250: The UG provides the list of features, software architecture and hardware architecture.
Software Tools and System Requirements
Serial terminal emulator e.g. teraterm
Reference Design Zip File
ZCU106 rev BC or newer:
Download, Installation and Licensing
The Vivado Design Suite User Guide explains how to download and install the Vivado® Design Suite tools, which includes the Vivado Integrated Design Environment (IDE), High Level Synthesis tool, and System Generator for DSP. This guide also provides the information about licensing and administering evaluation and full copies of Xilinx design tools and intellectual property (IP) products. The Vivado Design Suite can be downloaded from here.
Preparing SD card for Board1
Copy BOOT.BIN, image.ub which are prepared above in build steps to SDCard.
Note:For user convenience prebuilt BOOT.bin and image.ub also provided in Design_files/prebuilt_binaries/Board1 directory.Copy them also to SD card in case User want to run the demo with out executing the above build steps.
Mark this as “Board1 SDcard”.
Copy following scripts from Design_files/prebuilt_binaries/Board1 to “Board1 SDCard”
autostart.sh
bin
Note:For user convenience prebuilt BOOT.bin and image.ub also provided in this directory.Copy them also to SD card in case User want to run the demo with out executing the above build steps.
Preparing SD card for Board2
Copy BOOT.BIN, image.ub which are prepared above in built steps to SDCard.
Note:For user convenience prebuilt BOOT.bin and image.ub also provided in this directory.Copy them also to SD card in case User want to run the demo with out executing the above build steps.
Mark this as “Board2 SDcard”.
Copy following scripts from Design_files/prebuilt_binaries/Board2 to “Board2 SDCard”
autostart.sh
bin
Note:For user convenience prebuilt BOOT.bin and image.ub also provided in this directory.Copy them alsoPreparing Memory stick
Copy the video from http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_2160p_30fps_normal.mp4 link to SD card in case User want to run the demo with out executing the above build steps.a pen-drive.
Setting up the ZCU106 Boards:
ZCU 106 Board1 Setup:
Connect 12V Power to the ZCU106 6-Pin Molex connector.
Connect one end of HDMI cable to board’s HDMI-RX (bottom) port,and, the other end to HDMI port of Nvidia shield.
connect the pen-drive prepared above to Nvidia shield.
Connect one end of HDMI cable to board’s HDMI-TX (top) port, and,the other end to HDMI port (it should have support for HDCP 2.2) of 4K monitor
Connect one end of Ethernet cable to Board1’s J67 connector, and connect the other end of Ethernet cable to Board2’s J67 connector Open Tera Term utility on windows machine and Power ON the Client board.
ZCU 106 Board2 Setup:
Follow the procedure of “ ZCU106 Board1 Setup”, but connect the “Board2 SDCard” into the SD card slot J100.
In this case connect one pendrive to each Nvidia sheild.
Connect one end of Ethernet cable to Board2’s J67 connector, and connect the other end of Ethernet cable to Board1’s J67 connector
Below figure show the complete board setup :
{board_setup.JPG}
Executing Use case 1:
both the boardsboards.
After the username and password.
Runpassword.Make sure that HDMI display connected to the Board 2 is locked to 4K60.
Note: If in case display is not locked ,run the below commandsequence of commands one by on Board2
/media/card/receive_data.shto lock the HDMI monitor with HDMI-TX subsystem.After running these commands , observed blue color screen on the monitor.
modetest -M xilinx_drm_mixer -s 36@34:1920x1080@AR24 &
modetest -M xilinx_drm_mixer -s 36@34:3840x2160@AR24 &
kill modetest of 1080p
modetest -M xilinx_drm_mixer -w 32:alpha:0
Run below command on Board1
/media/card/send_data.sh
Now play the video from Nvidia shield.
Below figure shows the execution of Use Case 1
{usecase1_run.JPG}
Power on both the boards. It boots up the linux on both the boards
After the linux is boots up , login with "root" as username and password.
RunNote: If in case displays are not locked ,run the scriptbelow sequence of commands one by on bothto lock the boards
/media/card/receive_data.shHDMI monitor with HDMI-TX subsystem.After running these commands , observed blue color screen on the monitor.
modetest -M xilinx_drm_mixer -s 36@34:1920x1080@AR24 &
modetest -M xilinx_drm_mixer -s 36@34:3840x2160@AR24&
kill modetest of 1080p
modetest -M xilinx_drm_mixer -w 32:alpha:0
Now run the below script on both the boards
/media/card/send_data.sh