如何在运行 Ubuntu 的 Raspberry Pi 4 上使用 ffmpeg(h264_omx)中的硬件编码

如何在运行 Ubuntu 的 Raspberry Pi 4 上使用 ffmpeg(h264_omx)中的硬件编码

我即将把我的 RPi4 4GB 迁移到带有 Gnome 的 Ubuntu 19.10 - 它的运行情况比我想象的要好。

目前我还有一个障碍:使用 h264_omx 硬件编码器和 ffmpeg(目前可以与 h264 软件编码器配合使用)。本质上,我试图将我的一个摄像头直播到 Youtube,之前在 Raspbian 上运行良好。

这是我正在运行的命令:

ffmpeg -nostdin -r 14.5 -i http://192.168.1.250:8080/html/cam_pic_new.php?pDelay=66666 -f lavfi -i anullsrc -b:v 2M -b:a 128k -c:v h264_omx -ar 22050 -f flv rtmp://a.rtmp.youtube.com/live2/<CODE>

输出为:

[h264_omx @ 0xaaaac8884580] libOMX_Core.so not found
[h264_omx @ 0xaaaac8884580] libOmxCore.so not found
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

我今天广泛地使用 Google 搜索,安装/编译了各种东西。

我尝试安装libomxil-bellagio-devlibomxil-bellagio-bin在 RPi 上编译 ffmpeg 的众多指南,但都无济于事。我似乎永远无法通过初始 C 编译器测试……它失败并出现错误,例如gcc: error: missing argument to '-mcpu='

有人有什么想法吗...这真的让我很烦,因为如果没有 70% 以上的 CPU 使用率,我现在就无法进行 Youtube 流!

答案1

您可能需要构建自定义版本的 FFmpeg 才能在 Raspberry Pi 上使用硬件编码器。配置 FFmpeg 构建时,请确保启用--enable-omx--enable-omx-rpi标志(请参阅下面的链接了解构建步骤)。这些标志表示使用 Raspberry Pi 特定的 OpenMAX 编码器构建 FFmpeg,这与普通版本的 OpenMAX 编码器略有不同(例如,它们依赖于不同的 .so 库)。

也可以看看

使用编码器为 RPi 构建 FFmpeg 的步骤h264_omx

http://www.redhenlab.org/home/the-cognitive-core-research-topics-in-red-hen/the-barnyard/hardware-encoding-with-the-raspberry-pi

为什么 Raspbian repo 提供的 FFmpeg 二进制文件不支持 MMAL 和 OpenMAX 编解码器:

https://www.raspberrypi.org/forums/viewtopic.php?t=184425#p1166882

相关内容