Gstreamer 2 个设备之间的串行通信

问题描述 投票:0回答:1

我使用连接 2 个 USB 设备(ttyUSB0、ttyUSB1)的 Raspberry PI4,并且我有 h264 相机(Arducam),我的相机有很多端口,/dev/video0 用于 RAW 流,/dev/video2 用于 H264 流。我使用 Gstreamer 命令在第一侧发送视频数据

gst-launch-1.0 -v v4l2src device=/dev/video2 ! video/x-h264,width=640,height=480 ! x264enc tune=zerolatency ! h264parse ! filesink location=/dev/ttyUSB1 blocksize=1024 max-bitrate=19000 sync=false

但是当我尝试在第二台设备上接收并显示该视频时,我遇到了问题。我试图解决它,但无法解决

我正在使用这个命令来接收

gst-launch-1.0 -v filesrc location=/dev/ttyUSB0 ! video/x-h264 ! h264parse ! avdec_h264 ! autovideosink 

命令中是否有任何错误,或者可以使用Python(opencv或其他库)来执行? 。谢谢!

raspberry-pi serial-port gstreamer h.264 arducam
1个回答
0
投票

您正在尝试使用

xh264enc
元素对已编码的流进行编码。如果您知道
/dev/video2
上可以使用 h264 编码流,那么您可以限制分辨率并将其传递到 USB 设备

gst-launch-1.0 -v v4l2src device=/dev/video2 ! video/x-h264,width=640,height=480 ! queue ! filesink location=/dev/ttyUSB1 blocksize=1024 max-bitrate=19000 sync=false

然后使用

播放流
gst-launch-1.0 -v filesrc location=/dev/ttyUSB0 ! video/x-h264,width=640,height=480 ! h264parse ! queue ! avdec_h264 ! autovideosink
© www.soinside.com 2019 - 2024. All rights reserved.