1. 安装ffmpeg
通过 apt 安装的 FFmpeg 是通用的软件版本,而 ffmpeg-rockchip 则是为 Rockchip(瑞芯微)RK35xx 系列芯片“量身定制”的硬件加速版本,支持硬件加速视频处理,包括MPP硬件编码器、解码器,以及RGA滤镜加速。
- ffmpeg-rockchip 仓库地址:https://github.com/nyanmisaka/ffmpeg-rockchip
- ffmpeg-rockchip Wiki地址:https://github.com/nyanmisaka/ffmpeg-rockchip/wiki
1.1 安装依赖
在板卡执行以下命令,安装依赖:
sudo apt update
sudo apt install git meson cmake pkg-config gcc libasound2-dev libdrm-dev ninja-build libv4l-dev -y
1.2 安装MPP库
这是 Rockchip 的媒体处理平台,它直接调用芯片内部的硬件解码器(H.264/HEVC/AV1等)和硬件编码器(H.264/HEVC)。这使得它可以轻松应对8K视频的解码或编码,而CPU几乎处于空闲状态。 在板卡执行以下命令,编译MPP库:
mkdir -p ~/ffmpeg && cd ~/ffmpeg
git clone -b jellyfin-mpp --depth=1 https://github.com/nyanmisaka/mpp.git rkmpp
mkdir -p rkmpp/rkmpp_build && cd rkmpp/rkmpp_build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DBUILD_TEST=OFF ..
sudo make -j$(nproc)
sudo make install
查看rkmpp解码器:
armsom@armsom:~/ffmpeg/rkmpp/rkmpp_build$ ffmpeg -decoders | grep rkmpp
ffmpeg version 03498fe Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04.2)
configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga --enable-alsa --enable-libv4l2
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
V..... av1_rkmpp Rockchip MPP (Media Process Platform) AV1 decoder (codec av1)
V..... h263_rkmpp Rockchip MPP (Media Process Platform) H263 decoder (codec h263)
V..... h264_rkmpp Rockchip MPP (Media Process Platform) H264 decoder (codec h264)
V..... hevc_rkmpp Rockchip MPP (Media Process Platform) HEVC decoder (codec hevc)
V..... mjpeg_rkmpp Rockchip MPP (Media Process Platform) MJPEG decoder (codec mjpeg)
V..... mpeg1_rkmpp Rockchip MPP (Media Process Platform) MPEG1VIDEO decoder (codec mpeg1video)
V..... mpeg2_rkmpp Rockchip MPP (Media Process Platform) MPEG2VIDEO decoder (codec mpeg2video)
V..... mpeg4_rkmpp Rockchip MPP (Media Process Platform) MPEG4 decoder (codec mpeg4)
V..... vp8_rkmpp Rockchip MPP (Media Process Platform) VP8 decoder (codec vp8)
V..... vp9_rkmpp Rockchip MPP (Media Process Platform) VP9 decoder (codec vp9)
1.3 安装RGA库
这是一个2D图形加速引擎。当你需要进行视频缩放、格式转换(如YUV转RGB)、裁剪或旋转时,RGA可以像“加速卡”一样瞬间完成,比用CPU处理快得多。 在板卡执行以下命令,编译RGA库:
mkdir -p ~/ffmpeg && cd ~/ffmpeg
git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga
meson setup rkrga rkrga_build --prefix=/usr --libdir=lib --buildtype=release -Dcpp_args=-fpermissive -Dlibdrm=false -Dlibrga_demo=false
meson configure rkrga_build
sudo ninja -C rkrga_build install
查看rkrga:
armsom@armsom:~/ffmpeg$ ffmpeg -filters | grep rkrga
ffmpeg version 03498fe Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04.2)
configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga --enable-alsa --enable-libv4l2
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
... overlay_rkrga VV->V Rockchip RGA (2D Raster Graphic Acceleration) video compositor
... scale_rkrga V->V Rockchip RGA (2D Raster Graphic Acceleration) video resizer and format converter
... vpp_rkrga V->V Rockchip RGA (2D Raster Graphic Acceleration) video post-process (scale/crop/transpose)
1.4 安装ffmpeg-rockchip
如果你使用的是RK3576、RK3588等Rockchip芯片的设备,并且需要进行高分辨率视频转码、实时流媒体处理(如搭建家庭监控、直播推流),或者希望大幅降低CPU负载,那么这个版本是唯一的选择。 在板卡执行以下命令,编译ffmpeg-rockchip:
mkdir -p ~/ffmpeg && cd ~/ffmpeg
git clone --depth=1 https://github.com/nyanmisaka/ffmpeg-rockchip.git ffmpeg-rockchip
cd ffmpeg-rockchip
./configure --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga --enable-alsa --enable-libv4l2
make -j$(nproc)
sudo make install
安装完成后验证支持情况:
armsom@armsom:~/ffmpeg/ffmpeg-rockchip$ ffmpeg -decoders | grep rkmpp
ffmpeg version 03498fe Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04.2)
configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga --enable-alsa --enable-libv4l2
libavutil 58. 29.100 / 58. 29.100
libavcodec 60. 31.102 / 60. 31.102
libavformat 60. 16.100 / 60. 16.100
libavdevice 60. 3.100 / 60. 3.100
libavfilter 9. 12.100 / 9. 12.100
libswscale 7. 5.100 / 7. 5.100
libswresample 4. 12.100 / 4. 12.100
libpostproc 57. 3.100 / 57. 3.100
V..... av1_rkmpp Rockchip MPP (Media Process Platform) AV1 decoder (codec av1)
V..... h263_rkmpp Rockchip MPP (Media Process Platform) H263 decoder (codec h263)
V..... h264_rkmpp Rockchip MPP (Media Process Platform) H264 decoder (codec h264)
V..... hevc_rkmpp Rockchip MPP (Media Process Platform) HEVC decoder (codec hevc)
V..... mjpeg_rkmpp Rockchip MPP (Media Process Platform) MJPEG decoder (codec mjpeg)
V..... mpeg1_rkmpp Rockchip MPP (Media Process Platform) MPEG1VIDEO decoder (codec mpeg1video)
V..... mpeg2_rkmpp Rockchip MPP (Media Process Platform) MPEG2VIDEO decoder (codec mpeg2video)
V..... mpeg4_rkmpp Rockchip MPP (Media Process Platform) MPEG4 decoder (codec mpeg4)
V..... vp8_rkmpp Rockchip MPP (Media Process Platform) VP8 decoder (codec vp8)
V..... vp9_rkmpp Rockchip MPP (Media Process Platform) VP9 decoder (codec vp9)