zynq gst-launch-1.0相关

本文详细介绍了如何使用GStreamer工具(如gst-launch-1.0)进行视频源的处理,包括RGB888、JPEG图像、H.264编码、NV12格式转换,以及HDMI输出和特殊分辨率显示等操作,适合对Gstreamer技术感兴趣的开发者和系统管理员。
摘要由CSDN通过智能技术生成

三 视频管道:

1,gst-launch-1.0:

1)RGB888显示:
gst-launch-1.0 videotestsrc pattern=1 ! video/x-raw,format=RGB,width=1920,height=1080,framerate=60/1 ! kmssink plane_id=36 render-rectangle="<0,0,1920,1080>" bus-id="a0070000.v_mix"

gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! video/x-raw,format=RGB,width=1920,height=1080,framerate=60/1 ! kmssink plane_id=36 render-rectangle="<0,0,1920,1080>" bus-id="a0070000.v_mix"
2)gst播放图像显示:
gst-launch-1.0 filesrc location=/media/sd-mmcblk1p1/1.jpg ! jpegdec ! imagefreeze ! videoconvert ! kmssink plane_id=36 render-rectangle="<0,0,1545,842>" bus-id="a0070000.v_mix"

gst-launch-1.0 filesrc location=/media/sd-mmcblk1p1/1.jpg ! jpegdec ! videoscale ! video/x-raw,width=320,height=240 ! imagefreeze ! videoconvert ! kmssink plane_id=36 render-rectangle="<0,0,320,240>" bus-id="a0070000.v_mix"
3) 播视频:
root@zcu106_vcu_trd:~# gst-launch-1.0 uridecodebin uri="file:///media/card/bbb_sunflower_1080p_60fps_normal_avc.mp4" ! queue max-size-bytes=0 ! kmssink bus-id="a0070000.v_mix"
4) hdmi rx显示到tx:
modetest  -D a0070000.v_mix  -s 43:1920x1080-60@AR24
modetest -D a0070000.v_mix -s 40:1920x1080-60@BG24 &

xmedia-ctl -d /dev/media7 -V "\"a0080000.v_proc_ss\":0  [fmt:RBG888_1X24/1920x1080 field:none]"
xmedia-ctl -d /dev/media7 -V "\"a0080000.v_proc_ss\":1  [fmt:VYYUYY8_1X24/1920x1080 field:none]"

v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat='NV12'

gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! video/x-raw, width=1920, height=1080, format=NV12, framerate=60/1 ! omxh265enc qp-mode=auto gop-mode=basic gop-length=60 b-frames=0 target-bitrate=60000 num-slices=8 control-rate=constant prefetch-buffer=true low-bandwidth=false filler-data=true latency-mode=normal ! video/x-h265, profile=main ! h265parse ! omxh265dec internal-entropy-buffers=5 latency-mode=normal ! queue max-size-bytes=0 ! kmssink bus-id="a0070000.v_mix"
5) 从hdmi rx获取视频保存:
5-1.抓取视频并压缩成h265格式:
1080P:
xmedia-ctl -d /dev/media7 -V "\"a0080000.v_proc_ss\":0  [fmt:RBG888_1X24/1920x1080 field:none]"
xmedia-ctl -d /dev/media7 -V "\"a0080000.v_proc_ss\":1  [fmt:VYYUYY8_1X24/1920x1080 field:none]"
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! video/x-raw, format=NV12,width=1920,height=1080,framerate=60/1 ! omxh265enc qp-mode=auto gop-mode=basic gop-length=60 b-frames=0 target-bitrate=60000 num-slices=8 control-rate=constant prefetch-buffer=true low-bandwidth=false filler-data=true latency-mode=normal ! queue ! mpegtsmux alignment=7 name=mux ! filesink location="/media/usb/test.ts"
6) 测试图像:
gst-launch-1.0 videotestsrc !  kmssink bus-id="a0070000.v_mix"
7) 设置偏移位以及图层:
gst-launch-1.0 videotestsrc pattern=3 ! video/x-raw,format=NV12,width=1920,height=1080,framerate=60/1 ! kmssink plane_id=30 render-rectangle="<1920,0,1920,1080>" bus-id="a0070000.v_mix"
8) 冻结摄像头图像然后显示:
gst-launch-1.0 v4l2src device=/dev/video2 io-mode=2 ! video/x-raw, format=RGB,width=1920,height=1080,framerate=60/1 ! imagefreeze ! kmssink plane_id=36 render-rectangle="<0,540,960,540>" bus-id="a0070000.v_mix"
9) 特殊分辨率显示(需要添加render-rectangle配置):
gst-launch-1.0 videotestsrc pattern=1 ! video/x-raw,format=RGB,width=1440,height=1080,framerate=60/1 ! kmssink plane_id=35 render-rectangle="<0,0,1440,1080>" bus-id="a0070000.v_mix"
10)录像可播放视频:
vcu-demo-camera-encode-file.sh -v "/dev/video5" -s 1920x1080 -n 1000

root@lingmou:/media/sd-mmcblk1p1# which vcu-demo-camera-encode-file.sh 
/usr/bin/vcu-demo-camera-encode-file.sh
11)录制RGB格式时会用CPU软转换RGB->YUV420,会卡。
gst-launch-1.0 v4l2src device=/dev/video3 ! video/x-raw, format=RGB,width=1920,height=1080,framerate=60/1 ! videoconvert ! video/x-raw,format=NV12 ! omxh264enc control-rate=constant b-frames=2 gop-length=60 periodicity-idr=60 prefetch-buffer=true target-bitrate=5500 ! video/x-h264, alignment=au ! h264parse ! mpegtsmux name=mux mux. ! filesink location=videotestsrc1.mkv
12)NV16 H264编码录制视频 (需要拷贝到本地播放,不然VLC会卡)(不加绝对路径/usr/bin/gst-launch-1.0会录制失败):
#!/bin/sh
/usr/bin/gst-launch-1.0 v4l2src device=/dev/video3 io-mode=4 ! video/x-raw, format=NV16,width=1440,height=1080,framerate=60/1 ! omxh264enc qp-mode=auto gop-mode=basic gop-length=60 periodicity-idr=60 b-frames=0 target-bitrate=60000 num-slices=8 control-rate=constant prefetch-buffer=TRUE low-bandwidth=false filler-data=0 cpb-size=1000 initial-delay=500 ! queue ! mpegtsmux alignment=7 name=mux ! filesink location=test-nv16-h264.ts

转载请注明出处

Zynq-7000是Xilinx推出的一款全新的可编程系统芯片(SoC),其核心特点是将ARM Cortex-A9处理器与可编程逻辑器件(FPGA)集成在一起。ZED是由Digilent和Avnet合作生产的一款基于Zynq-7000 SoC的开发板。 关于Zynq-7000-ZED的资料,您可以从以下几个方面进行了解和获取: 1. 官方文档:Xilinx官方网站提供了针对Zynq-7000 SoC的详细技术资料和应用指南,包括技术手册、用户指南、应用笔记等。这些资料涵盖了硬件设计、软件开发、调试和测试等方面的内容,非常全面详细。 2. 社区论坛:在Xilinx官方网站上,您可以加入或搜索Xilinx社区论坛。这个论坛是一个交流平台,可以与其他用户分享经验和解决问题。在论坛上,您可以找到很多关于使用Zynq-7000-ZED进行开发的实际案例和技术讨论。 3. 参考设计和开发板说明:Digilent和Avnet官方网站上提供了基于Zynq-7000-ZED开发板的一些参考设计和示例代码。这些参考设计涵盖了不同的应用领域,包括图像处理、通信、机器学习等。通过研究这些设计,您可以更好地了解如何使用Zynq-7000-ZED进行应用开发。 4. 在线教程和视频:在互联网上,有许多第三方的在线教程和视频可以帮助您快速入门Zynq-7000-ZED的开发。这些教程和视频通常以实际的项目为例,展示了如何进行硬件设计、软件开发和调试等过程。 总之,Zynq-7000-ZED的资料非常丰富,包括官方文档、社区论坛、参考设计、在线教程等多种渠道。只要您愿意花时间去研究和学习,就能够轻松掌握Zynq-7000-ZED的开发技术和应用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值