【问题标题】:FFmpeg hardware acceleration on Raspberry PI树莓派上的 FFmpeg 硬件加速
【发布时间】:2016-10-21 11:33:41
【问题描述】:

我正在构建一个程序,它使用 ffmpeg 在互联网上传输网络摄像头内容。我想知道是否可以将 GPU 用于树莓派模型 3 上的流媒体部分。如果可以,我如何在 ffmpeg 上实现这一点?

【问题讨论】:

    标签: ffmpeg gpu raspberry-pi3 hardware-acceleration


    【解决方案1】:

    您需要一些额外的配置选项:

    • --enable-mmal – 通过 MMAL 启用 Broadcom 多媒体抽象层 (Raspberry Pi)。用于 H.264、VC-1、MPEG-2、MPEG-4 的硬件解码。作为依赖项,您需要提供所需的头文件@ 987654324@.

    • --enable-omx-rpi – 为 Raspberry Pi 启用 OpenMAX IL 代码。用于 H.264(编码器名为 h264_omx)和 MPEG-4(mpeg4_omx)的硬件编码。作为依赖项,您需要 libomxil-bellagio (Arch Linux) 或 libomxil-bellagio-dev (Ubuntu) 软件包,它提供所需的头文件 OMX_Core.h

    对于 Arch Linux 用户:

    复制ffmpeg 包的PKGBUILD 文件(如果您愿意,可以通过ABS)。添加上面显示的两个新配置选项,并将提到的两个包添加到depends 行。使用makepkg 命令编译/安装。

    免责声明:我没有这些设备来测试任何这些。大部分信息是从 FFmpeg configure 文件中获取的。

    【讨论】:

      【解决方案2】:

      来自 apt 的 ffmpeg 包现在启用了硬件编解码器,因此您可以使用以下方法安装它:

      apt install ffmpeg
      

      Pi 上有一些支持硬件的编解码器,具体取决于您拥有的型号。这是详细post/thread on the Raspberry Pi Forum的摘录:

      Pi0-3 具有 H264、MPEG4、H263 和 通过 MPEG2 和 VC1 的可选编解码器许可证。

      Pi4 对 H264 具有相同的硬件加速解码,但不是 其他编解码器。它还有一个单独的 HEVC 块。

      有一些 API(v4l2m2mVAAPIOMXMMAL,...)来访问硬件编解码器,但现在主要的是基于 Video Memory-To-Memory Interfaceh264_v4l2m2m,还有基于 [older] h264_omx OMX 的,等等。有关编码和解码运行的编解码器的完整列表:

      ffmpeg -codecs
      

      注意:如果您更改了/boot/config.txt 中的gpu_mem 设置,则它需要大于16,否则您将收到所有硬件编解码器的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-13
        • 2020-07-19
        • 2022-06-13
        • 1970-01-01
        • 2014-04-29
        • 2021-04-05
        相关资源
        最近更新 更多