在NVIDIA Jetson-TX1/2平台,利用Gstreamer开发

时间:2024-03-19 15:31:02

Jetson 平台关于计算机视觉开发的简介

  • 4 Core A57 CPU,
  • 支持Gstreamer,并且有NV通过的OpenMax硬件加速的API 用于硬件编码、解码(OMX Gstreamer plug-ins, provided by Nvidia)
  • a GPU with 256 CUDA Cores 可用于并行计算,对于流媒体进行处理
  • 支持TensorRT,部署神经网络,通过根据前端的流媒体进行推理。

一般的应用:
video Input: v4l2 (CSI UVC-camera、RTP/RTSP 流)
video Output:Display or proprietary framebuffer

Multimedia APIs:
- gstreamer(high level) : Hawdware Scalling, CODECs(omx)
- NVIDIA L4T Multimedia API(low level): video input,V4L2 API ,buffer management
- OpenCV,Deep Learning Frameworks(TensorRT Yolo )
GPU Integraton
- CUDA
- OpenGL
- Vulkan

开发架构

在NVIDIA Jetson-TX1/2平台,利用Gstreamer开发

实例分析

比如针对一个具体的应用,将采集的一路4K视频和一路HD视频叠加在一起,压缩,然后网络传输出去。 如下图所示。
在NVIDIA Jetson-TX1/2平台,利用Gstreamer开发

在NVIDIA Jetson-TX1/2平台,利用Gstreamer开发
通常来说,这个功能的pipeline构建很容易想的到,但是如果想把这个大的数据量传输好,并保证帧率,就需要对这个pipeline进行仔细优化了。


首先对于视频的H.264/H.265编码可以采用NV提供的Gstreamer omx硬件加速。
对于前端的图像处的合并会涉及大大量的内存操作,如果处理不好,会导致大量的内存拷贝,直观的结果会导致帧率的下降。所以前端可以采用GPU的并行计算,对于图像数据进行处理。
在NVIDIA Jetson-TX1/2平台,利用Gstreamer开发