如何使用GStreamer从串口COM19接收摄像头视频数据?
正确的GStreamer串口视频接收命令
你的问题出在接收端没有明确告知GStreamer接收到的原始视频数据格式——发送端输出的是未封装的BGR格式原始视频流,autovideosink无法自动识别这类无封装数据的分辨率、帧率、像素格式等参数,必须手动指定匹配的caps信息。
基础正确命令
直接匹配发送端的视频参数,添加对应的caps约束即可:
gst-launch-1.0 filesrc location=//.//COM19 ! video/x-raw, width=1280, height=720, framerate=10/1, format=BGR ! videoconvert ! autovideosink
更可靠的串口参数控制(推荐)
如果使用上述命令仍有问题,大概率是串口参数不匹配(波特率、奇偶校验等)。此时建议改用serialsrc插件来精准控制串口参数,同时发送端也建议换成serialsink来统一参数:
发送端修改后的命令
gst-launch-1.0 mfvideosrc device-index=0 ! video/x-raw, width=1280, height=720, framerate=10/1 ! videoconvert ! video/x-raw, format=BGR ! serialsink port=COM20 baudrate=115200 parity=none databits=8 stopbits=1
接收端对应命令
gst-launch-1.0 serialsrc port=COM19 baudrate=115200 parity=none databits=8 stopbits=1 ! video/x-raw, width=1280, height=720, framerate=10/1, format=BGR ! videoconvert ! autovideosink
注意:将命令中的baudrate替换为你实际需要的波特率(必须确保收发两端完全一致),115200为常用值,若视频流过大可尝试更高波特率(如921600)。
内容的提问来源于stack exchange,提问作者Anri
相关产品推荐
相关产品推荐

