BSP:在嵌入式系统中,板级支持包(英语:board support package,简称BSP)用作初始化与运行操作系统并用于评估板(Evaluation Board)的简易代码。它通常包含了以基础支持代码来加载操作系统的引导程序(英语:bootloader),以及主板上所有设备的驱动程序。
JetPack SDK:是用于构建 AI 应用程序的综合资源,包括 Jetson Linux 以及加速软件库、API、示例应用程序、开发人员工具和文档.
L4T:是linux for tegra的缩写,Tegra是集成了ARM架构的CPU和NVIDIA的GPU的处理器芯片,所以L4T Ubuntu就是为运行在基于arm架构的Tegra芯片上的linux ubuntu版本的操作系统,它是专门为Tegra定制的Ubuntu特殊版本。
流程
1.设备型号类型:Jetson modules 和 Jetson developer kits从NVIDIA获得型号
-
NVIDIA ® Jetson AGX OrinTM模块和 Jetson AGX Orin 开发工具包
-
NVIDIA ® Jetson Xavier™ NX系列模块和 Jetson Xavier NX 开发者套件
-
NVIDIA ® Jetson AGX Xavier™系列模块和 Jetson AGX Xavier 开发者套件
有关这些 Jetson 设备的详细信息,请参阅 NVIDIA Edge Computing 网站 的Jetson 软件文档 页面 和Jetson 常见问题解答。
2.准备工作:
-
设置Jetson developer kit
-
Flash 软件到Jetson developer kit
-
一台主机和电缆、USB hub
-
Linux 主机通过开发工具包的相应 USB 端口连接以进行刷写。
对于 NVIDIA Jetson AGX Xavier Developer Kit,使用电源按钮旁边的 USB-C 端口。
对于其他 Jetson 开发人员套件,请使用微型 USB 端口
设置环境变量
编译内核
使用ffmpeg
解码流程
-
调用
nvv4l2dec_init_decoder()
以在设备节点上创建新的 V4L2 视频解码器对象/dev/nvhost-nvdec
。 -
调用
subscribe_event()
以订阅分辨率更改事件。 -
调用
set_output_plane_format()
以设置输出平面上的格式。 -
调用
capture_thread()
以启动捕获线程。 -
调用
set_capture_plane_format()
以设置捕获平面上的格式。 -
调用
nvv4l2dec_decode()
从 ffmpeg 读取缓冲区并开始解码过程。 -
调用
nvv4l2dec_decoder_get_frame()
以获取硬件加速的解码数据并将其传递给ffmpeg
转储。 -
调用
nvv4l2dec_decoder_close()
以销毁缓冲区并关闭设备。
加速使用GStreamer
安装gstreamer1.0
$ 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
视频解码器
视频编码器
一些NVIDIA的专有插件
gst-V4L2解码示例
$ gst-launch-1.0 filesrc location=<filename_h264.mp4> ! \
qtdemux ! queue ! h264parse ! nvv4l2decoder ! nv3dsink -e
(在使用视频解码管道之前需要输入以下命令)
$ export DISPLAY=:0