Drobotics logo DROBOTICSTechnical Library

Vision Guide

SIYI 相机 + YOLO + UDP 推流 | Jetson 完整调试记录

All Vision

SIYI 相机 + YOLO + UDP 推流

Jetson / Orin 完整调试记录 | OpenCV · FFmpeg · PyTorch CUDA · YOLO 检测

SIYI RTSP YOLO 人检测 FFmpeg UDP 推流 VLC 播放 Jetson CUDA 修复
最终系统架构
SIYI Camera RTSP ↓ Jetson / Orin Python OpenCV ↓ YOLO human detection ↓ FFmpeg encodes video ↓ UDP stream to Windows ↓ VLC opens udp://@0.0.0.0:5600
最终 VLC 地址:udp://@0.0.0.0:5600
此地址比 udp://@:5600 更稳定
1. 原始问题:GStreamer 输出失败
错误:[SIYI YOLO] ERROR: Cannot open GStreamer UDP output
python3 - <<'EOF' import cv2 for line in cv2.getBuildInformation().splitlines(): if "GStreamer" in line: print(line) EOF
结果:GStreamer: NO
OpenCV 编译时未启用 GStreamer 支持,即使系统安装了 GStreamer 也无法使用 cv2.CAP_GSTREAMER
检查 GStreamer 插件:
gst-inspect-1.0 x264enc 显示 x264enc 存在,说明插件正常,但 OpenCV 不支持输出。
2. 解决方案:使用 FFmpeg 替代 GStreamer
sudo apt update sudo apt install -y ffmpeg ffmpeg -version
ffmpeg version 4.4.2
Python 将原始帧输入 FFmpeg 子进程:
process.stdin.write(frame.tobytes())
FFmpeg 编码后通过 UDP 发送到 Windows:
udp://192.168.1.14:5600
3. YOLO 运行在 CPU 上(速度极慢)
初始 FPS 只有 2-3 帧,YOLO 完全运行在 CPU 上。
python3 - <<'EOF' import torch print(torch.__version__) print(torch.version.cuda) print(torch.cuda.is_available()) EOF
2.12.0+cu130
13.0
False
PyTorch 是普通的 CUDA 13 版本,但 Jetson 使用 CUDA 12.6,无法使用 GPU。
还出现警告:NVIDIA driver on your system is too old
4. Jetson 版本检查
cat /etc/nv_tegra_release
# R36 (release), REVISION: 4.7
这是 JetPack 6.x 系列,需要 Jetson 专用 PyTorch(CUDA 12.6)
5. 安装正确的 Jetson PyTorch
pip3 uninstall -y torch torchvision torchaudio sudo apt install -y python3-pip libopenblas-base libopenmpi-dev cd ~/Downloads wget -c https://pypi.jetson-ai-lab.io/jp6/cu126/+f/62a/1beee9f2f1470/torch-2.8.0-cp310-cp310-linux_aarch64.whl pip3 install --no-cache-dir ~/Downloads/torch-2.8.0-cp310-cp310-linux_aarch64.whl pip3 install --no-cache-dir torchvision==0.23.0 \ --index-url=https://pypi.jetson-ai-lab.io/jp6/cu126
6. CUDA 运行时库缺失
错误:
OSError: libcudart.so.12: cannot open shared object file
ValueError: libcublas.so.* not found
sudo apt update sudo apt install -y nvidia-cuda nvidia-cudnn nvidia-tensorrt
7. CUPTI 库缺失
错误:ImportError: libcupti.so.12: cannot open shared object file
# 移除旧的 CUDA 13 pip 包 pip3 uninstall -y nvidia-cuda-runtime-cu13 nvidia-cublas-cu13 nvidia-cupti-cu13 \ nvidia-cudnn-cu13 nvidia-cufft-cu13 nvidia-curand-cu13 nvidia-cusolver-cu13 \ nvidia-cusparse-cu13 nvidia-nccl-cu13 nvidia-nvtx-cu13 triton # 安装正确的 CUPTI sudo apt install -y cuda-cupti-12-6 # 添加环境变量 echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc sudo ldconfig
8. 最终 PyTorch CUDA 测试
python3 - <<'EOF' import torch print(torch.__version__) print(torch.version.cuda) print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else "NO CUDA") EOF
2.8.0
12.6
True
Orin
PyTorch CUDA 修复成功!YOLO 现在使用 GPU 运行。
9. FPS 大幅改善
状态FPS
CUDA 修复前2-3 FPS
CUDA 修复后25-26 FPS
10. RTSP 相机问题
错误:No route to host → Jetson 无法访问 192.168.144.25
正确 RTSP URL:rtsp://192.168.144.25:8554/main.264
无效路径:sub.264 → 404 Stream Not Found
11. VLC 黑屏 / 卡顿问题
最终有效地址:udp://@0.0.0.0:5600(比 udp://@:5600 更稳定)
最终推荐设置:
FRAME_WIDTH = 640
FRAME_HEIGHT = 480
FPS = 25
FFmpeg 码率:-b:v 2500k -maxrate 2500k -bufsize 500k
12. 已安装软件清单
软件用途
ffmpegUDP 视频推流
gstreamer1.0-*一类仅用于检查,最终未用
nvidia-cuda, nvidia-cudnn, nvidia-tensorrt辉达 CUDA 运行时库
cuda-cupti-12-6辉达 CUPTI 库
torch 2.8.0 (Jetson 专用)辉达 GPU 深度学习框架
torchvision 0.23.0辉达图像处理库
ultralytics辉达 YOLO 检测
13. 问题与解决总结
问题原因解决方法
GStreamer UDP 输出失败OpenCV GStreamer: NO改用 FFmpeg 子进程
YOLO 只有 2-3 FPSPyTorch CUDA 版本不匹配安装 Jetson 专用 PyTorch 2.8.0 (CUDA 12.6)
CUDA 不可用错误的 torch cu130卸载错误的 torch,安装 Jetson 版
libcudart.so.12 缺失辉达运行时库缺失辉达安装 nvidia-cuda 包
libcupti.so.12 缺失辉达CUPTI 缺失 / pip CUDA 13 残留辉达移除 CUDA 13 pip 包,安装 cuda-cupti-12-6
sub.264 失败辉达流不存在辉达使用 main.264
VLC 黑屏辉达UDP 地址错误 / 缓冲问题辉达使用 udp://@0.0.0.0:5600
14. 最终理解
问题不是单一的,而是四层问题叠加:
1 OpenCV 无法使用 GStreamer → 改用 FFmpeg
2 PyTorch 错误 + YOLO 运行在 CPU → 安装正确的 Jetson PyTorch
3 CUDA 运行时库缺失 → 安装 nvidia-cuda / cuda-cupti
4 VLC 需要正确的 UDP 地址和 FPS/码率匹配 → udp://@0.0.0.0:5600 + FPS=25 + 码率 2500k
四层问题全部修复后,系统稳定运行,YOLO 检测 ~25 FPS,UDP 推流流畅。