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?”在前,“图睿?”在后。
有关更多的信息请看后续文章… …