树莓派4+Arducam 64MP相机GStreamer搭建RTSP流失败求助
树莓派4 + Arducam 64MP 搭建GStreamer RTSP流解决方案
问题根源
从你贴的日志能明确看到核心问题:
- libcamera给Arducam 64MP选择了
SRGGB10_1X10(RAW原始格式)作为传感器输出,但你直接在管道里要求I420格式,格式不匹配导致管道预加载(preroll)失败,无法生成可用的媒体流。 - 传感器属性警告只是因为libcamera默认数据库没收录这款相机的预设配置,不影响基本功能,后续可按需优化。
解决步骤
1. 修正GStreamer管道
替换原管道为以下版本,重点解决格式转换和低延迟适配:
./test-launch --gst-debug=3 '( libcamerasrc ! video/x-raw,width=1280,height=720,format=NV12,framerate=10/1 ! videoconvert ! video/x-raw,format=I420 ! queue ! x264enc tune=zerolatency bitrate=2000000 ! queue ! h264parse ! rtph264pay name=pay0 pt=96 )'
关键调整点:
- 让
libcamerasrc先输出树莓派ISP处理更高效的NV12格式,再通过videoconvert转成x264enc兼容的I420格式 - 给
x264enc添加tune=zerolatency参数,适配RTSP的低延迟需求 - 可选:
bitrate=2000000控制码率(单位bps),避免带宽占用过高
2. 消除libcamera传感器警告(可选)
下载Arducam官方提供的传感器配置文件,放到libcamera的配置目录:
# 创建配置目录(若不存在) sudo mkdir -p /usr/share/libcamera/ipa/rpi/vc4 # 编辑配置文件 sudo nano /usr/share/libcamera/ipa/rpi/vc4/arducam_64mp.json
粘贴以下配置内容(对应Arducam 64MP相机):
{ "arducam_64mp": { "model": "arducam_64mp", "sensor": "imx519", "orientation": 0, "pixelArraySize": [9152, 6944], "testPatternMode": 0, "colorFilter": "RGGB", "bitDepth": 10, "minFrameDuration": [1, 20], "maxFrameDuration": [1, 1], "pixelRate": 150000000, "lineLength": 10000, "exposureRange": [10, 66000], "gainRange": [100, 800], "awb": { "redCoeff": 1.90, "blueCoeff": 1.50 } } }
保存后重启设备,传感器警告即可消除。
3. 系统基础检查
- 确认树莓派相机接口已开启:通过
raspi-config进入Interface Options->Camera开启 - 更新libcamera组件:
sudo apt update && sudo apt upgrade libcamera-dev libcamera-apps -y
- 32位系统的64位原子操作警告可直接忽略,不影响功能运行
验证与后续对接
启动RTSP流后,在另一台电脑的VLC中输入地址:rtsp://[你的树莓派IP]:8554/test即可验证播放;后续对接NVIDIA Deepstream时,直接使用该RTSP地址作为数据源即可。
内容的提问来源于stack exchange,提问作者jduff1075
相关产品推荐
相关产品推荐

