如何在 raspberry Pi 4B 上启用对 H.264 编码的硬件支持

How to enable hardware support for H.264 encoding on raspberry Pi 4B

我正在尝试在 raspberry pi 4B 型号上启用对 H264 编码的硬件支持。编译启用配置的 FFmpeg 源

sudo ./configure --arch=armel --target-os=linux --enable-gpl --enable-omx --enable-omx-rpi --enable-nonfree

紧随 link、https://github.com/legotheboss/YouTube-files/wiki/(RPi)-Compile-FFmpeg-with-the-OpenMAX-H.264-GPU-acceleration

但是在使用这些配置正确构建和安装 ffmpeg 后执行编码命令时,我收到以下错误

[h264_omx @ 0x156b6e0] Using OMX.broadcom.video_encode
[h264_omx @ 0x156b6e0] OMX error 80001000
[h264_omx @ 0x156b6e0] err 80001018 (-2147479528) on line 561
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
Conversion failed!

使用的命令:

ffmpeg -i /media/pi/pic_1_org.png -c:v h264_omx -c:a copy -b:v 1500k outputfile.mp4

我只想使用 H.264 编码器将单个 4K 图像编码为 .mp4 文件。 请让我知道如何解决这个问题?

Raspberry Pi4 上的硬件 H.264 编码器仅支持 1920x1080 或更低的分辨率。所以没有硬件支持4k编码。

请用这个简单的命令试试 raspberrypi4 的 ARMv6 NEON 能力

ffmpeg -i 4k-input.mp4  -vf scale=-1:360  360p-output.mp4

什么都不加!

apt 提供的 ffmpeg 版本现在具有硬件编解码器,因此您可以使用以下方式安装它:

apt install ffmpeg

您可以像这样验证他们的存在:

ffmpeg -codecs | grep 'h264_omx\|h264_v4l2m2m'

有两种使用硬件编解码器的方法 - 使用较新的 h264_v4l2m2mh264_omx 基于 OMX 的编解码器。

注意:/boot/config.txt 中的 gpu_mem 设置需要大于 16 - 否则两种编解码器都会出错。