Hobbit玩转Zynq MPSoC系列之2:TPG输入+VCU编码+rtp网络传输
Xilinx官方提供了TPG、MIPI、SDI、HDMI和FILE等接口作為圖像的輸入源,在工程中例化為V4L2架構(gòu)設(shè)備,供上層軟件調(diào)用。TPG全稱為Test Pattern Generator,為FPGA邏輯產(chǎn)生的一個(gè)模擬圖像源,可提供一系列不同模式的模擬圖像,對(duì)于初學(xué)者而言是學(xué)習(xí)V4L2架構(gòu)、Gstreamer命令以及調(diào)試流程最合適的開(kāi)端。VCU編碼并通過(guò)rtp網(wǎng)絡(luò)傳輸是很多工程應(yīng)用的基本需求,本文將演示如何將TPG圖像編碼并通過(guò)網(wǎng)絡(luò)傳輸。
平臺(tái)、配件及軟件
ZCU104
Vivado2020.1
Petalinux2020.1
micro usb數(shù)據(jù)線
網(wǎng)線
Vivado工程
??整個(gè)工程的block desigh如下:
?
??VCU的配置和之前一樣,使能Encoder和Decoder,并按照下圖進(jìn)行配置。
?
??TPG和Frame Write配置如下:
?
??VCU的HP口選擇和之前一致,也是接到HP2和HP3,TPG的Frame Write單獨(dú)接到HP1口。
?
Petalinux工程
??按照官方ug1144的命令新建工程、配置工程、編譯工程、生成BOOT.BIN。
??petalinux-create --type project --template --name <PROJECT_NAME>
??petalinux-config --get-hw-description /–get-hw-description=<PATH-TO_XSA Directory>
??xliinx工具已經(jīng)為VCU、TPG生成好了完美的devicetree,不用自己去修改。
??在rootfs下打開(kāi)gstreamer插件和v4l2插件。
??petalinux-build
??petalinux-package --boot --format BIN --fsbl --u-boot -o PATH-TO-OUTPUT-WITH-FILE-NAME
工程演示
??將生成的BOOT.BIN和image.ub復(fù)制到SD卡,插入SD卡,上電啟動(dòng),TPG會(huì)例化為V4l2的設(shè)備掛載到/dev/video0,執(zhí)行如下命令:
??設(shè)置ZCU104板子的IP為192.168.1.101
??root@blog:/mnt# ifconfig eth0 192.168.1.101
??將video0的視頻編碼通過(guò)rtp協(xié)議發(fā)送到網(wǎng)絡(luò)
??root@blog:/mnt# gst-launch-1.0 v4l2src device=/dev/video0 ! “video/x-raw, width=1920, height=1080” ! omxh264enc target-bitrate=20000 ! h264parse config-interval=-1 ! mpegtsmux ! rtpmp2tpay ! udpsink host=192.168.1.99 port=9001 sync=true
??板子上打印信息如下:
root@blog:/mnt# ifconfig eth0 192.168.1.101
root@blog:/mnt# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0A:35:00:22:01
inet addr:192.168.1.101 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::20a:35ff:fe00:2201/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1933 errors:0 dropped:2 overruns:0 frame:0
TX packets:119657 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1088389 (1.0 MiB) TX bytes:163819758 (156.2 MiB)
Interrupt:30
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@blog:/mnt# gst-launch-1.0 v4l2src device=/dev/video0 ! “video/x-raw, width=1920, height=1080” ! omxh264enc target-bitrate=20000 ! h264parse config-interval=-1 ! mpegtsmux ! rtpmp2tpay ! udpsink host=192.168.1.99 port=9001 sync=true
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
Redistribute latency…
[ 1105.839444] xilinx-vtc a0010000.v_tc: Failed to set clk rate: 74250000, actual rate: 75000000
!! Warning : Adapting profile to support bitdepth and chroma mode
!! The specified Level is too low and will be adjusted !!
??設(shè)置PC的IP地址為192.168.1.99,然后打開(kāi)vlc軟件,媒體->打開(kāi)網(wǎng)絡(luò)串流->網(wǎng)絡(luò)->rtp://@:9001->播放。最終顯示效果如下:
代碼及源文件
??交流和合作請(qǐng)發(fā)郵件至humph-hobbit@foxmail.com
————————————————
版權(quán)聲明:本文為CSDN博主「Humph-Hobbit」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhangyanhui2008/article/details/109960311
?
總結(jié)
以上是生活随笔為你收集整理的Hobbit玩转Zynq MPSoC系列之2:TPG输入+VCU编码+rtp网络传输的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 魔兽世界锻造1-300攻略(wow锻造1
- 下一篇: 九江职业大学宿舍管理规定(九江职业大学宿