本文介绍瑞芯微RK3588平台,FFmpeg硬件编解码移植及性能测试方法。

FFmpeg简介与实测数据

FFmpeg是一套多媒体框架,能够解码、编码、转码、复用、解复用、流、过滤和播放数字音频、视频,提供了录制、转换以及流化音视频的完整解决方案。

(1)2K视频编解码,视频文件大小为103MB

硬件解码+编码数据:

FFmpeg在RK3588平台上的性能测试方法_瑞芯微RK3588 FFmpeg硬件编解码移植教程_FFmpeg 教程

软件解码+编码数据:

FFmpeg 教程_FFmpeg在RK3588平台上的性能测试方法_瑞芯微RK3588 FFmpeg硬件编解码移植教程

(2)4K视频编解码,视频文件大小为128MB

硬件解码+编码数据:

瑞芯微RK3588 FFmpeg硬件编解码移植教程_FFmpeg 教程_FFmpeg在RK3588平台上的性能测试方法

软件解码+编码数据:

FFmpeg 教程_FFmpeg在RK3588平台上的性能测试方法_瑞芯微RK3588 FFmpeg硬件编解码移植教程

交叉编译与移植FFmpeg

以下操作在PC端虚拟机里面进行

git clone -b 7.1 --single-branch  https://gitee.com/work_public/ffmpeg-rockchip.git

(1)进入FFmpeg源码目录:

cd ffmpeg-rockchip

(2)设置pkgconfig 环境变量:

export PKG_CONFIG_SYSROOT_DIR=/sysroot_rk3588_ubuntu2204/
export PKG_CONFIG_PATH=/sysroot_rk3588_ubuntu2204/usr/lib/aarch64-linux-gnu/pkgconfig

(3)创建install目录:

mkdir install

(4)执行configure_rk3588.sh 并写入如下参数:

./configure 
  --prefix=$(pwd)/install 
  --enable-gpl 
  --enable-version3 
  --enable-libdrm 
  --enable-rkmpp 
  --enable-rkrga 
  --enable-libv4l2 
  --enable-cross-compile 
  --target-os=linux 
  --arch=aarch64 
  --cross-prefix=/opt/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- 
  --enable-static 
  --enable-shared 
  --enable-ffmpeg 
  --enable-ffplay 
  --enable-ffprobe 
  --pkg-config=/usr/bin/pkg-config 
  --sysroot=/opt/sysroot_rk3588_ubuntu2204/ 
  --extra-cflags="-I/opt/sysroot_rk3588_ubuntu2204/usr/include/aarch64-linux-gnu" 
  --extra-ldflags="-B/opt/sysroot_rk3588_ubuntu2204/usr/lib/aarch64-linux-gnu -Wl,-rpath-link=/opt/sysroot_rk3588_ubuntu2204/usr/lib/aarch64-linux-gnu"

arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu

工具下载地址:

https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads/11-3-rel1

(5)编译配置文件:

./configure_rk3588.sh

(6)开始编译:

make -j8

(7)安装

make install

(8)安装完成后,安装文件保存在install目录:

├── bin
│   ├── ffmpeg
│   ├── ffplay
│   └── ffprobe
├── include
│   ├── libavcodec
│   ├── libavdevice
│   ├── libavfilter
│   ├── libavformat
│   ├── libavutil
│   ├── libpostproc
│   ├── libswresample
│   └── libswscale
├── lib
│   ├── libavcodec.a
│   ├── libavcodec.so -> libavcodec.so.61.19.101
│   ├── libavcodec.so.61 -> libavcodec.so.61.19.101
│   ├── libavcodec.so.61.19.101
│   ├── libavdevice.a
│   ├── libavdevice.so -> libavdevice.so.61.3.100
│   ├── libavdevice.so.61 -> libavdevice.so.61.3.100
│   ├── libavdevice.so.61.3.100
│   ├── libavfilter.a
│   ├── libavfilter.so -> libavfilter.so.10.4.100
│   ├── libavfilter.so.10 -> libavfilter.so.10.4.100
│   ├── libavfilter.so.10.4.100
│   ├── libavformat.a
│   ├── libavformat.so -> libavformat.so.61.7.100
│   ├── libavformat.so.61 -> libavformat.so.61.7.100
│   ├── libavformat.so.61.7.100
│   ├── libavutil.a
│   ├── libavutil.so -> libavutil.so.59.39.100
│   ├── libavutil.so.59 -> libavutil.so.59.39.100
│   ├── libavutil.so.59.39.100

(1)将刚才打包的ffmpeg_install.tar拷贝到主板上解压:

sudo mkdir /usr/local/ffmpeg
sudo tar -xvf ffmpeg_install.tar -C /usr/local/ffmpeg/

(2)设置环境变量,修改/home/industio/.bashrc,在末尾增加:

export PATH=/usr/local/ffmpeg/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH

(3)执行生效:

source /home/industio/.bashrc

编解码测试

(1)测试时,需要主板端开启性能模式,且主板接上风扇散热,开启性能模式指令:

echo performance | tee $(find /sys/ -name *governor);

(2)测试时查看CPU使用率:

top -d 1

(1)解码1080P的mp4视频

time ffmpeg -stream_loop -1 -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -i ./LG_1080p_60fps.mp4 -an -sn -vframes 5000 -f null -

(2)解码4K(3840*2160)mp4视频:

time ffmpeg -stream_loop -1 -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -i ./LG_2160p_30fps.mp4 -an -sn -vframes 5000 -f null -

(1)1080P H.264, CQP rate control:

time ffmpeg -f lavfi -i testsrc2=s=1920x1080,format=nv12 -c:v h264_rkmpp -qp_init 26 -profile:v main -level 4.1 -g:v 100 -vframes 5000 -y /tmp/tmp.mp4

(2)2160p H.265, CQP rate control:

time ffmpeg -f lavfi -i testsrc2=s=3840x2160,format=nv12 -c:v hevc_rkmpp -qp_init 26 -profile:v main -level 4.1 -g:v 100 -vframes 5000 -y /tmp/tmp.mp4

至此,RK3588 FFmpeg的移植和测试教程已完成,关注触觉智能,提供RK系列RK3562、RK3568、RK3576、RK3588的FFmpeg测试对比,链接如下:瑞芯微RK35XX系列FFmpeg硬件编解码实测,详细性能对比!

产品介绍

触觉智能RK3588开发板,配套核心板SOM3588(板对板连接器封装)。

搭载4核A76+4核A55 8核处理器、Mali-G610 GPU,以及6Tops算力NPU、48MP ISP,为强大的AI视觉性能奠定坚实硬件基础,助力国产Arm高阶应用!

免责声明:本站为个人博客,博客所发布的一切修改补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 访问和下载本站内容,说明您已同意上述条款。本站为非盈利性站点,VIP功能仅仅作为用户喜欢本站捐赠打赏功能,本站不贩卖软件,所有内容不作为商业行为。