【问题标题】:How are ARM GPUs supported by Video display/decoding/encoding Programs?视频显示/解码/编码程序如何支持 ARM GPU?
【发布时间】:2020-10-15 09:49:28
【问题描述】:

我经常看到基于 ARM 的芯片宣传板载 GPU,例如带有“Broadcom VideoCore IV @ 250 MHz”的 RPI3 和带有“Mali-450 GPU”的 OdroidC2。这些芯片宣传诸如“解码 4k/30FPS、编码 1080p、30FPS”之类的东西,作为 GPU 编码和解码视频的能力。

我的问题是——像 Kodi、VLC 或 FFMPEG 这样的程序是如何利用这些 GPU 进行实际编码和解码的?例如,当我研究如何使用 Mali-450 GPU 时,我发现了一些深奥且记录不充分的 C 示例,它们将压缩帧发送到 GPU 并将解码帧返回。如果我要使用像 OdroidC2 这样的设备并在其上安装 VLC,VLC 如何利用 GPU?是否有人必须将逻辑写入 VLC 以使用 Mali GPU 公开的特定编码/解码 API 才能使用它,或者这些 GPU 是否遵循所有 GPU 公开的某种一致 API,而 VLC/Kodi 可以针对这个系统API?

我问这个问题的原因是 VLC 和 Kodi 倾向于支持这些 GPU Mali GPU 系列。为什么 VLC/Kodi 支持编码/解码而不是 FFMPEG?如果这些 GPU 难以编程并且必须使用他们自定义的深奥 API 而不是 libavcodec 之类的东西,为什么这些制造商声称支持广泛的解码和编码?

我希望我的问题是有道理的,我想我很好奇的是大多数系统上的 GPU,无论是 Intel HD Graphics、Nvidia 卡、AMD 卡等,似乎都会被大多数视频播放器自动使用,但是当在对这些设备使用 FFMPEG 之类的东西时,这个过程变得更加复杂,您需要自定义编译构建并提供特殊标志以按预期使用设备。我在这里缺少什么吗? VLC 是否经过编程以利用所有这些不同类型的 GPU?在这种情况下,为什么 FFMEPG 不支持开箱即用的 Mali GPU?

【问题讨论】:

  • 一句话... openmax

标签: ffmpeg libavcodec mali


【解决方案1】:

Mali GPU 只是用于实时图形 API OpenGL ES、Vulkan 等的 GPU。它与压缩或解压缩视频无关,但可以读取通过其他方式解压缩的视频帧。

【讨论】:

    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 2021-09-15
    • 2019-04-03
    • 2017-06-07
    相关资源
    最近更新 更多