AGX Xavier 搭建360环视教程【一、先确认方案】

发布于:2025-07-13 ⋅ 阅读:(13) ⋅ 点赞:(0)

设备默认自带 NVIDIA 硬件编解码能力(NVDEC/NVENC),但是需要你在 OpenCV FFmpeg 里正确启用 + 调通 GStreamer nvmpi,才真正能用起来!

这里的硬解码是核心:

Jetson 平台的硬解码,要么走 GStreamer(nvv4l2)要么走 RidgeRun 的 nvmpi(FFmpeg 插件),否则就只能 CPU 软解。

 推荐的技术路线(实战稳定)

【1】 RTSP → GPU 硬解(输入)

选项 1:GStreamer nvv4l2(官方推荐)

gst-launch-1.0 rtspsrc location=rtsp://... ! rtph264depay ! h264parse ! nvv4l2decoder ! nvvidconv ! appsink

然后在 OpenCV 中用

 cv::VideoCapture("your_pipeline", cv::CAP_GSTREAMER)

直接拿到。

选项 2:FFmpeg + nvmpi
如果 GStreamer 用不了(极少数),就自己编 nvmpi + FFmpeg。


【2】 remap + 拼接(处理)

  • 保留 OpenCV remap

  • 若想用 GPU 做 remap,需要用 OpenCV CUDA 模块cv::cuda::remap),
    但要编译时 WITH_CUDA=ON WITH_CUBLAS=ON


【3】 拼接后 → RTSP 推流(输出)

✅ 用 FFmpeg 的 libx264(CPU 编码) → ffmpeg -f rawvideo -pix_fmt bgr24 -i pipe:0 ...
✅ 用 GStreamer nvvidconv + nvv4l2h264enc(GPU 编码)→ RTSP server


⚡ 必须重装的组件

1️⃣ OpenCV 必须重新编译

cmake \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D WITH_OPENGL=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
..

🚩 一定要确认 WITH_GSTREAMER=ONWITH_CUDA=ON

2️⃣ FFmpeg(可选)
如果你走 nvmpi 路线,要重新编译 FFmpeg:

./configure --enable-nonfree --enable-nvmpi --enable-shared ...

🎯 推荐实战路线(总结)

✅ 1)输入 → GStreamer(nvv4l2)GPU 硬解 → OpenCV VideoCapture
✅ 2)处理 → OpenCV CUDA(可选)做 remap → 拼接
✅ 3)输出 → 用 FFmpeg/GStreamer nvv4l2h264enc 硬编码 → rtsp-simple-servermediamtx


🚦 一句话:

Jetson NX 在 JetPack 4.5 下,最稳的组合就是:GStreamer 负责硬解码 + 硬编码,OpenCV 只做逻辑,不做解码/编码。


网站公告

今日签到

点亮在社区的每一天
去签到