如何在 Raspberry Pi 上使用 h264_omx?

如何在 Raspberry Pi 上使用 h264_omx?

我使用 Raspberry Pi 1gen B+,通过 rtmp 将流推送到 Web。但我发现我的 CPU 使用率高达 90% 以上。以下是我的使用方式:

ffmpeg -re -f concat -safe 0 -i playlist.txt -vcodec copy -acodec aac -f flv "rtmp://example.com:1060"

所以我想使用 GPU 进行解码/编码。经过谷歌研究,我找到了“h264_omx”,并实现了 h264_omx:

pi@pi:/usr/src/ffmpeg $ sudo ./configure --enable-omx --enable-omx-rpi
sudo make
sudo make install

所以我使用:

ffmpeg -re -f concat -safe 0 -i playlist.txt -vcodec h264_omx -acodec aac -f flv "rtmp://example.com:1060"

输出在这里:

图像

但CPU占用率还是高达90%以上,更糟糕的是,视频变得不清晰,只有5fps。

那么,这有什么问题?1gen B+ 可以转换为硬件编解码器吗?

答案1

我认为我找到了你要找的东西。
我使用我的设置从我的电脑以~50000KBit ~720p H264 的速度将视频流传输到运行 nginx/rtmp 服务器的 RaspberryPi3 本地,然后通过带硬件加速的 ffmpeg 压缩视频流,再以 3500KBit 的速度发送此视频流到 twitch。
这就是你要找的东西吗?乍一看,我认为你缺少解码加速。

流 #0:1 -> #0:0 (h264 (nativ) -> h264 (h264_omx))
您使用软件编解码器解码流,然后使用硬件编解码器再次编码。软件编解码器导致 CPU 不稳定。

流 #0:1 -> #0:0 (h264 (h264_mmal) -> h264 (h264_omx))
这样您便使用 h264_mmal 硬件加速进行解码,使用 h264_omx 硬件加速进行编码。

我正在为此设置编写安装脚本,并愿意分享。如果这就是你正在寻找的,我可以帮助你。
你可以在我的 twitch 频道上查看结果https://www.twitch.tv/jeezz

相关内容