在Raspberry PI上进行FFmpeg硬件加速

时间:2016-10-21 11:33:42

标签: ffmpeg gpu raspberry-pi3 hardware-acceleration

我正在构建一个程序,使用ffmpeg通过Internet流式传输网络摄像头内容。我想知道是否可以在覆盆子pi模型3上使用GPU作为流媒体部分。如果是,我怎么能在ffmpeg上实现这个?

2 个答案:

答案 0 :(得分:3)

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

  • --enable-mmal - 通过MMAL启用Broadcom多媒体抽象层(Raspberry Pi)。用于H.264,VC-1,MPEG-2,MPEG-4的硬件解码。作为依赖项,您需要 linux-raspberrypi-headers (Arch Linux)或 linux-headers - * - raspi2 (Ubuntu)包,它提供所需的头文件{ {1}}。

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

对于Arch Linux用户:

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

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

答案 1 :(得分:2)

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

apt install ffmpeg

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

<块引用>

Pi0-3 具有适用于 H264、MPEG4、H263 和的硬件加速解码 通过 MPEG2 和 VC1 的可选编解码器许可证。

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

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

ffmpeg -codecs

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