我即将把我的 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-dev
和libomxil-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
:
为什么 Raspbian repo 提供的 FFmpeg 二进制文件不支持 MMAL 和 OpenMAX 编解码器:
https://www.raspberrypi.org/forums/viewtopic.php?t=184425#p1166882