【问题标题】:Does ffmpeg support GPU acceleration on Jetson platform?ffmpeg 是否支持 Jetson 平台的 GPU 加速?
【发布时间】:2020-12-08 06:20:04
【问题描述】:
  • 我想在 Jetson-nano 上运行 ZoneMinder 作为 IP CAM 服务器,但 Jetson nano 似乎无法处理许多使用 ffmpeg 进行解码的摄像机。

  • 如果我在 ZoneMinder 上打开三个摄像头,CPU 使用率总是 100%,但 GPU 使用率是 0%,我不能打开更多摄像头。

FFMPEG 没有硬件加速?

在这个discussion,NV 版主说

在 Jetson 平台上未启用支持 GPU 的 ffmpeg ...

我知道 NVENC/NVDEC 可以帮助 ffmpeg 硬件加速,但是这些硬件块现在是在 CPU 上执行的,而不是在 GPU 上。

jetson-nano 的自定义 FFMPEG 不支持 GPU 加速?

我找到了这个jetson-ffmpeg repo,这个 repo 可以使用 GPU 加速吗?因为我试过了还是不行(还是用CPU的NVENC/NVDEC加速)。

如果Jetson nano上的GPU确定不支持ffmpeg加速,但我想用ZoneMinder,有没有更好的办法解决这个问题?例如使用 GStreamer?

【问题讨论】:

  • NVENC 不是 GPU 的一项功能吗?你看到this issue了吗?
  • this讨论中,确认NVENC不是Jetson平台GPU的特性。
  • jetson-nano 已指定用于解码视频的硬件,例如 MPEG2, H.264/AVC, HEVC, VP8 and VP9 格式、look bellow。不需要为此使用 GPU!

标签: ffmpeg decoder nvidia-jetson-nano zoneminder


【解决方案1】:

ffmpeg 支持已添加到 Jetson 平台。来自nvidia's docs

To install the ffmpeg binary package
•Enter these commands:
$ sudo apt install ffmpeg

To get source files for the ffmpeg package
•Enter this command:
$ apt source ffmpeg

To include the ffmpeg library in L4T builds
1.Add the following lines to /etc/apt/sources.list:
$ echo "deb https://repo.download.nvidia.com/jetson/ffmpeg main main" |  sudo tee -a /etc/apt/sources.list
$ echo "deb-src https://repo.download.nvidia.com/jetson/ffmpeg main main" |  sudo tee -a /etc/apt/sources.list
2.Enter the command:
$ sudo apt update

为了清楚起见,在标准的 Jetson 图像上附加

deb https://repo.download.nvidia.com/jetson/ffmpeg main main

到您的/etc/apt/sources.list 文件,然后运行 sudo apt update && sudo apt install ffmpeg .

【讨论】:

  • 请注意,他们只集成了 ffmpeg 解码支持。原问题中提到的修补过的ffmpeg github repo也支持jetson上的硬件编码。
【解决方案2】:

使用 (jetson-ffmpeg) 为 jetson-nano 打补丁的 ffmpeg

  • Jetson nano 不需要使用 GPU 进行硬件解码 MPEG2、H.264/AVC、HEVC、VP8 和 VP9

  • 这些格式由特定视频硬件解码器 (NVDEC) 解码,可通过修补上述 ffmpeg 的 L4T 多媒体 API 访问。该硬件与 GPU 分离,您可以将其用于其他目的。

  • 如果您不打算使用编码,也可以使用@Simon Labrecque 回答。虽然我还是更喜欢第一个。

命令行硬件解码jetson-ffmpeg

你在上面的 ffmpeg 上做错了。要使用硬件解码,您必须指定解码器。从他们的 repo README 一些例子。

  • 用于解码 H.264 流/文件ffmpeg -c:v h264_nvmpi -i yourfile\or\stream...

  • 用于解码 HEVC 流/文件ffmpeg -c:v hevc_nvmpi -i yourfile\or\stream...

ZoneMinder

我不使用 Zoneminder,但 MotionProject 也使用 ffmpeg 作为后端库。几个月来,我一直在使用 4 台 IP 摄像机,没有出现任何问题。 8 个 RTSP 流(高分辨率和低分辨率)的 CPU 使用率约为 20%。

对于 ZoneMinder 我不确定,但我认为 DecoderHWAccelNameDecoderHWAccelDevice 参数应该可以解决问题。指定例如 h264_nvmpinvmpi 或您的流所需的任何内容。但我不能准确,因为我不再使用它了。试试他们的docsadding-monitors 部分查找这些参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2019-03-14
    相关资源
    最近更新 更多