You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Gstreamer实现Jetson Nano摄像头同时供两个应用使用

Jetson Nano IMX219视频流多应用共享方案

这个需求完全可以实现,相比额外配置v4l2loopback,直接使用GStreamer原生的tee插件做流分流是更轻量化的方案,不需要安装额外内核模块,还能充分利用Jetson的硬件编解码能力,性能损耗更低。


方案1:单GStreamer pipeline 同时满足两个需求(适合应用无需独立启停的场景)

你可以直接在原有gst命令的基础上加入tee节点,把一路摄像头流拆成两路独立处理的分支:

gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=3280, height=2464, format=NV12, framerate=21/1' ! tee name=t \
# 第一路分支:硬件编码录mp4
t. ! queue ! nvvidconv ! nvv4l2h264enc bitrate=8000000 ! h264parse ! mp4mux ! filesink location=capture.mp4 \
# 第二路分支:输出给OpenCV处理
t. ! queue ! nvvidconv ! video/x-raw, format=BGR ! appsink

参数说明:

  • tee name=t 定义分流节点,所有分支都以t.开头接入
  • 每个分支前加queue是为了做缓存隔离,避免某一路阻塞影响另一路的正常运行
  • 录制分支全程走Jetson硬件编码,CPU占用不到5%

OpenCV Python读取第二路流的示例代码:

import cv2

# 直接对接GStreamer pipeline,参数和上述分流分支保持一致
cap = cv2.VideoCapture(
    "nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=3280, height=2464, format=NV12, framerate=21/1' ! nvvidconv ! video/x-raw, format=BGR ! appsink drop=1",
    cv2.CAP_GSTREAMER
)

while True:
    ret, frame = cap.read()
    if not ret:
        break
    # 此处添加你的OpenCV处理逻辑
    if cv2.waitKey(1) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

方案2:v4l2loopback虚拟设备方案(适合两个应用需要独立启停的场景)

如果你需要两个应用可以分别启动、关闭,互不影响,可以选择v4l2loopback方案,操作步骤如下:

  1. 安装依赖
sudo apt update && sudo apt install -y v4l2loopback-dkms v4l2loopback-utils
  1. 加载内核模块创建虚拟摄像头设备
# 此处创建编号为10的虚拟设备/dev/video10,可自行修改编号
sudo modprobe v4l2loopback devices=1 video_nr=10 exclusive_caps=1
  1. 把IMX219的摄像头流推送到虚拟设备
gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=3280, height=2464, format=NV12, framerate=21/1' ! nvvidconv ! video/x-raw, format=YUY2 ! v4l2sink device=/dev/video10
  1. 两个应用都可以直接读取/dev/video10使用:
  • OpenCV直接调用cv2.VideoCapture(10)即可读取流
  • 录制脚本可以直接用ffmpeg/gst读取虚拟设备生成mp4文件,示例命令:
ffmpeg -i /dev/video10 -c:v libx264 output.mp4

内容的提问来源于stack exchange,提问作者A_toaster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 11:45:05