当前位置: 首页 > news >正文

jetson上使用opencv的gstreamer进行MIPI和USB摄像头的连接以及udp推流

文章目录

  • 1. 连接MIPI相机(IMX219-A(接到CSI0) )
    • 1.1 使用nvgstcapture-1.0
    • 1.2 gst命令行连接
    • 1.3 在opencv中使用VideoCapture连接
    • 1.4 直接udp推流
  • 2. 连接USB相机
    • 2.1 gst命令行连接
    • 2.2 在opencv中使用VideoCapture连接
    • 2.3 直接udp推流
  • 3. 使用opencv对处理完成的图像使用VideoWriter进行UDP推流
  • 4. 推流结果查看
    • 4.1 gst命令行连接
      • 4.1.1 jetson设备
      • 4.1.2 非jetson设备:
    • 4.2 在opencv中使用VideoCapture获取推流结果
      • 4.2.1 jetson设备
      • 4.2.2 非 jetson设备
  • 5. 所有源码

1. 连接MIPI相机(IMX219-A(接到CSI0) )

1.1 使用nvgstcapture-1.0

使用nvgstcapture-1.0可以直接打开相机。

1.2 gst命令行连接

用于复制:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1'! nvvidconv ! autovideosink sync=false

用于查看:

gst-launch-1.0 \
nvarguscamerasrc sensor-id=0 ! \
'video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1'! \
nvvidconv ! \
autovideosink sync=false

1.3 在opencv中使用VideoCapture连接

opencv需要带gstreamer编译。

std::string pipeline = "nvarguscamerasrc sensor-id=0 ! video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1 ! nvvidconv ! video/x-raw,format=BGRx ! appsink drop=true";
cv::VideoCapture cap(pipeline, cv::CAP_GSTREAMER);

这个获取到的是4通道图像,如果要进一步转为3通道,使用如下:

std::string pipeline = "nvarguscamerasrc sensor-id=0 ! video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1 ! nvvidconv ! video/x-raw,format=BGRx ! videoconvert ! video/x-raw,format=BGR ! appsink drop=true";

1.4 直接udp推流

用于复制:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1' ! nvvidconv ! video/x-raw,format=I420 ! x264enc tune=zerolatency bitrate=5000 speed-preset=superfast ! rtph264pay config-interval=1 pt=96 ! udpsink host=192.168.1.135 port=5000 sync=false

用于查看:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! \
'video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1' ! \
http://www.lryc.cn/news/613208.html

相关文章:

  • PyTorch RNN 名字分类器
  • 解决 npm i node-sass@4.12.0 安装失败异常 npm i node-sass异常解决
  • QT的拖拽功能
  • vue-plugin-hiprint 打印模版使用
  • DicomObjects COM 8.XX
  • 云平台运维工具 ——AWS 原生工具
  • 008 前端vue
  • 解决React白板应用中的画布内容丢失问题
  • [盛最多水的容器]
  • 【关于Java中==和equals( )和hashCode( )三者异同】
  • Java中接口与抽象类
  • 国内使用 npm 时配置镜像源
  • 2025年 IT 服务管理(ITSM)工具市场分析:选型逻辑与企业适配趋势报告
  • Spring Cloud系列—LoadBalance负载均衡
  • 边缘算力×AI应用:如何在2025年实现爆发式增长
  • 酉矩阵(Unitary Matrix)和随机矩阵
  • “认知裂缝边缘”地带
  • PyTorch LSTM文本生成
  • 基于深度学习的污水新冠RNA测序数据分析系统
  • 进程Linux
  • TSMaster-C小程序使用
  • 深度学习之opencv篇
  • change和watch
  • GPT-5 将在周五凌晨1点正式发布,王炸模型将免费使用??
  • 16.Home-懒加载指令优化
  • [C++20]协程:语义、调度与异步 | Reactor 模式
  • 在 Linux 系统上安装 Docker 的步骤如下(以 Ubuntu/Debian为例)
  • 深度学习(1):pytorch
  • Android-Kotlin基础(Jetpack②-Data Binding)
  • 内存杀手机器:TensorFlow Lite + Spring Boot移动端模型服务深度优化方案