当前位置: 代码迷 >> 综合 >> NVIDIA Jetson: GStreamer 和 openMAX(gst-omx) 插件
  详细解决方案

NVIDIA Jetson: GStreamer 和 openMAX(gst-omx) 插件

热度:25   发布时间:2023-12-12 15:21:02.0

Nvidia 的 GPU 产品的开发工具包叫做 DeepStream,是基于 GStreamer 开发。因此,掌握 DeepStream,必须从 GStreamer 入手。先看看这货如何安装的吧!

1 安装 GStreamer-1.0

安装步骤如下:

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \ gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev \ libgstreamer-plugins-good1.0-dev \ libgstreamer-plugins-bad1.0-dev

2 查看 GStreamer-1.0 版本

命令如下:

gst-inspect-1.0 --version

3 GStreamer 插件

GStreamer 是靠插件组合成媒体流管道的,具体介绍可以参考《GStreamer官方入门课程一览表,快速帮你找到自己需要的范例》。本文来点实际的,聊聊那些可以用在Nvidia Jetson 上的非常实用的插件。

3.1 OpenMAX 插件

OpenMax 是开放多媒体加速层(英语:Open Media Acceleration,缩写为OpenMAX),一个不需要授权、跨平台的软件抽象层,以C语言实现的软件接口,用来处理多媒体。它是由Khronos Group提出的标准,也由他们来维持,目标在于创造一个统一的接口,加速大量多媒体资料的处理。

GStreamer 提供了一组基于 OpenMAX 的插件,名字叫做 gst-omx

3.1.1 视频解码器

视频解码器 说明
omxh265dec OpenMAX IL H.265 Video decoder
omxh264dec OpenMAX IL H.264 Video decoder
omxmpeg4videodec OpenMAX IL MPEG4 Video decoder
omxmpeg2videodec OpenMAX IL MPEG2 Video decoder
omxvp8dec OpenMAX IL VP8 Video decoder
omxvp9dec OpenMAX IL VP9 video decoder

3.1.2 视频编码器

视频编码器 说明
omxh264enc OpenMAX IL H.264/AVC video encoder
omxh265enc OpenMAX IL H.265/AVC video encoder
omxvp8enc OpenMAX IL VP8 video encoder (supported with NVIDIA? Jetson? TX2/TX2i and NVIDIA? Jetson Nano?; not supported with NVIDIA? Jetson AGX Xavier?)
omxvp9enc OpenMAX IL VP9 video encoder (supported with Jetson TX2 and Jetson AGX Xavier; not supported with Jetson Nano)

3.1.3 sink

视频 Sink 说明
nvoverlaysink OpenMAX IL videosink element

我写了个例子,可以获取 Nvidia Nona 上的 CSI 接口摄像头的视频信息,用 omxh264enc 编码,然后再用 omxh264dec 解码,最后送屏幕显示。

gst-launch-1.0  nvarguscamerasrc ! omxh264enc ! h264parse ! omxh264dec ! autovideosink

其中 nvarguscamerasrc(摄像头数据捕获) 、h264parse(h.264编码解析) 后面会继续介绍。如果您对 gst-launch-1.0 和其后面的管道配置参数不熟悉,请参考《深入浅出,快速弄明白 gst-launch-1.0 PIPELINE-DESCRIPTION 管道描述语法》。

3.1.5 gst-omx 不再被推荐使用

然而,Nvidia 的官方说明宣布,Linux for Tegra (L4T) Release 32.1 不推荐使用 gst-omx

我搜了一下,发现还有一个更老的版本叫做 gst-openmax。如果那位朋友晓得 L4T 不推荐它的原因,可以给我留言。

关于 Tegra
2008年2月,早已敏锐洞察到了移动互联网市场的潜力的NVIDIA非常令人震惊的向业界发布了旗下一款重量级跨界产品——。
Tegra是一种采用单片机系统设计(system-on-a-chip)芯片,它集成了ARM架构处理器和NVIDIA的GeforceGPU,并内置了其它功能,产品主要面向小型设备。和Intel以PC为起点的x86架构相比,ARM架构的Tegra更像是以手机处理器为起点做出的发展。它不能运行x86 PC上的Windows XP等操作系统,但在手机上应用多年的ARM架构轻量级操作系统更能适应它高速低功耗的需求。
品牌推广编辑 播报
为了更好地在中国地区开展NVIDIA(英伟达?)的品牌推广活动,使NVIDIA(英伟达?)产品在中国地区更加深入人心并被广泛记忆,从2009年11月30日起,NVIDIA(英伟达?)Tegra?正式在中国启用中文名--“图睿?”。“NVIDIA(英伟达?)Tegra?(图睿?)”的中英文组合名称,被使用于所有的NVIDIA(英伟达?)公关、销售及其他宣传材料中,以及NVIDIA(英伟达?)合作伙伴的公关、销售及其他宣传材料中。“图睿?”须与“Tegra?”英文名称组合使用,不可以单独使用,且顺序不可以颠倒,即“Tegra?”在前,“图睿?”在后。


有关更多的信息请看后续文章… …

  相关解决方案