此工具包包含 NVIDIA ® 多媒体 API 示例应用程序,您可以将它们用作构建块,为您的产品用例构建应用程序,例如
这些示例应用程序演示了如何使用多媒体 API 和其他库,例如
下表描述了这些示例。
目录位置(相对于 ll_samples/samples) | 描述 |
---|---|
00_video_decode(视频解码) | 从本地文件解码 H.264、H.265、VP8、VP9、MPEG4 和 MPEG2 视频,然后与 egl 渲染器共享 YUV 缓冲区。 |
01_video_encode(视频编码) | 从本地文件编码 YUV 位流,然后将基本 H.264/H.265 写入文件。 |
02_video_dec_cuda(使用解码的 CUDA 处理) | 从本地文件解码 H.264/H.265 视频,然后与 CUDA 共享 YUV 缓冲区,在左上角绘制一个黑色方框。 |
03_video_cuda_enc(使用编码的 CUDA 处理) | 使用 CUDA 在 YUV 缓冲区中绘制一个黑色方框,然后将其馈送到视频编码器以生成 H.264/H.265 视频文件。 |
04_video_dec_trt(TensorRT 视频解码) | 使用简单的 TensorRT 调用将边界框信息保存到文件。 |
05_jpeg_encode(JPEG 编码) | 使用 libjpeg-8b API 从软件分配的缓冲区编码 JPEG 图像。 |
06_jpeg_decode(JPEG 解码) | 使用 libjpeg-8b API 从软件分配的缓冲区解码 JPEG 图像。 |
07_video_convert(NvBuffer 转换) | 使用 V4L2 API 进行视频格式转换和视频缩放。 |
08_video_dec_drm(Direct Rendering Manager,直接渲染管理器) | 使用 NVIDIA® Tegra® Direct Rendering Manager (DRM) 渲染视频流或 UI。 |
09_camera_jpeg_capture (libargus & libjpeg-8b) | 同时使用 Libargus API 预览摄像头流,并使用 libjpeg-8b API 编码 JPEG 图像。 |
10_camera_recording(libargus 捕获) | 从 Libargus API 获取实时摄像头流,并将其馈送到视频编码器以生成 H.264/H.265 视频文件。 |
12_camera_v4l2_cuda(摄像头捕获 CUDA 处理) | 从 V4L2 摄像头捕获图像,并与 CUDA 引擎共享流,在左上角绘制一个黑色方框。 |
13_multi_camera(多图像捕获和合成) | 捕获多个摄像头并将它们合成为一个帧。 |
14_multivideo_decode(多视频解码) | 从本地文件解码多个 H.264、H.265、VP8、VP9、MPEG4 和 MPEG2 视频,并将 YUV 缓冲区写入到相应的文件中。 |
15_multivideo_encode(多视频编码) | 从本地文件编码多个 YUV 位流,并将基本 H.264/H.265/VP8/VP9 写入到相应的文件中。 |
16_multivideo_encode(多视频转码) | 从本地文件转码多个位流,并将基本 H.264/H.265/VP8/VP9 写入到相应的文件中。 |
unittest_samples/camera_unit_sample(使用 libv4l2_nvargus 捕获) | 单元级别示例;使用 libv4l2_nvargus 预览摄像头流。 |
unittest_samples/decoder_unit_sample(视频解码单元示例) | 单元级别示例;从本地文件解码 H.264 视频,并转储原始 YUV 缓冲区。 |
unittest_samples/encoder_unit_sample(视频编码单元示例) | 单元级别示例;从本地文件编码 YUV 位流,并将基本 H.264 位流写入到文件中。 |
unittest_samples/transform_unit_sample(nvbuf_utils 像素格式转换) | 单元级别示例;使用 nvbuf_utils 实用程序将一种颜色空间的 YUV 位流转换为另一种。 |
backend(视频分析) | 对四个并发视频流执行智能视频分析,这些视频流通过使用片上解码器进行解码、使用片上标量进行视频缩放和 GPU 计算的过程。 |
frontend(TensorRT 多通道视频捕获) | 对来自摄像头的四种不同分辨率的视频捕获执行独立处理。 |
v4l2cuda(CUDA 格式转换) | 使用 V4L2 图像捕获和 CUDA 格式转换。 |
下图说明了 L4T 软件堆栈。在多媒体框(中心,底部)中,多媒体 API 提供了以下组件
使用这些组件,您可以访问其他库,例如 TensorRT 和 cuDNN。