瑞芯微RK3576平台FFmpeg硬件编解码移植及性能测试实战攻略 触觉智能RK3576开发板演示

描述

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

演示设备:触觉智能RK3576开发板

FFmpeg简介与实测数据

 

  • FFmpeg简介

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

 

  • 实测数据

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

硬件解码+编码数据:

rk3576

软件解码+编码数据:

rk3576

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

硬件解码+编码数据:

rk3576

软件解码+编码数据:

rk3576

交叉编译与移植FFmpeg

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

 

  • 下载7.1版本ffmpeg源码:

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

 

  • 交叉编译FFmpeg

 

(1)进入FFmpeg源码目录:

cd ffmpeg-rockchip

 

(2)设置pkgconfig 环境变量:

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

 

(3)创建install目录:

mkdir install

 

(4)执行configure_rk3576.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_rk3576_ubuntu2204/ \ --extra-cflags="-I/opt/sysroot_rk3576_ubuntu2204/usr/include/aarch64-linux-gnu" \ --extra-ldflags="-B/opt/sysroot_rk3576_ubuntu2204/usr/lib/aarch64-linux-gnu -Wl,-rpath-link=/opt/sysroot_rk3576_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_rk3576.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

至此,RK3576 FFmpeg的移植和测试教程已完成,关注触觉智能,将为您带来RK系列RK3562、RK3568、RK3576、RK3588的FFmpeg测试对比,敬请期待!

产品介绍

触觉智能RK3576开发板,可提供邮票孔或板对板连接器两种封装的核心板,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。助力全国产Arm高阶应用! 支持工业级摄像机高清图像输入与4K HDMI超清录屏,赋能工控视觉、AIOT等场景;8核与6T高算力,流畅运行视频、AI应用及多任务处理,兼顾低功耗与工业稳定性,全能型高阶方案就选TA!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分