本文介绍瑞芯微RK3562平台,FFmpeg硬件编解码移植及性能测试方法。
FFmpeg简介与实测数据
- FFmpeg简介
FFmpeg是一套多媒体框架,能够解码、编码、转码、复用、解复用、流、过滤和播放数字音频、视频,提供了录制、转换以及流化音视频的完整解决方案。
- 实测数据
(1)2K视频编解码,视频文件大小为103MB
硬件解码+编码数据:

软件解码+编码数据:

(2)4K视频编解码,视频文件大小为128MB
硬件解码+编码数据:

软件解码+编码数据:

交叉编译与移植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_rk3562_ubuntu2004/ export PKG_CONFIG_PATH=/sysroot_rk3562_ubuntu2004/usr/lib/aarch64-linux-gnu/pkgconfig
(3)创建install目录:
mkdir install
(4)新建configure_rk3562.sh 配置文件并写入:
mkdir configure_rk3562.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/gcc-arm-9.2-2019.12-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_rk3562_ubuntu2204/ \ --extra-cflags="-I/opt/sysroot_rk3562_ubuntu2204/usr/include/aarch64-linux-gnu" \ --extra-ldflags="-B/opt/sysroot_rk3562_ubuntu2204/usr/lib/aarch64-linux-gnu -Wl,-rpath-link=/opt/sysroot_rk3562_ubuntu2204/usr/lib/aarch64-linux-gnu"
gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu工具下载
地址:
https://developer.arm.com/downloads/-/gnu-a
(5)编译配置文件:
./configure_rk3562.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 │ ├── libpostproc.a │ ├── libpostproc.so -> libpostproc.so.58.3.100 │ ├── libpostproc.so.58 -> libpostproc.so.58.3.100 │ ├── libpostproc.so.58.3.100 │ ├── libswresample.a │ ├── libswresample.so -> libswresample.so.5.3.100 │ ├── libswresample.so.5 -> libswresample.so.5.3.100 │ ├── libswresample.so.5.3.100 │ ├── libswscale.a │ ├── libswscale.so -> libswscale.so.8.3.100 │ ├── libswscale.so.8 -> libswscale.so.8.3.100 │ ├── libswscale.so.8.3.100 │ └── pkgconfig └── share ├── doc ├── ffmpeg └── man
(9)将install 目录打包:
cd install tar -cvf ffmpeg_install.tar ./*
(10)另外将ffmpeg编译生成文件拷贝到
/opt/ffmpeg_rk3562_ubuntu20/,用于交叉编译应用程序:
sudo mkdir -p /opt/ffmpeg_rk3562_ubuntu20/ sudo cp ./* /opt/ffmpeg_rk3562_ubuntu20/ -rf
- 移植至主板端(以下操作在主板端进行)
(1)卸载主板默认的 ffmpeg:
sudo dpkg -r ffmpeg
(2)将刚才打包的ffmpeg_install.tar拷贝到主板上解压:
sudo mkdir /usr/local/ffmpeg sudo tar -xvf ffmpeg_install.tar -C /usr/local/ffmpeg/
(3)设置环境变量,在/home/industio/.bashrc文件末尾增加代码:
export PATH=/usr/local/ffmpeg/bin:$PATH export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
(4)执行生效:
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
至此,RK3562 FFmpeg的移植和测试教程已完成,关注触觉智能,还有RK系列RK3562、RK3568、RK3576、RK3588的FFmpeg测试对比!
产品介绍
为了帮助各位工程师朋友用更低的价格入手国产热门嵌入式开发板,触觉智能推出瑞芯微RK系列开发板优惠活动,包括RK3506、RK3562、RK3576。从入门到高端,到手低至129元!
-
瑞芯微
+关注
关注
27文章
699浏览量
53451 -
RK3568
+关注
关注
5文章
628浏览量
7571 -
RK3588
+关注
关注
8文章
490浏览量
7045 -
rk3576
+关注
关注
1文章
227浏览量
1368 -
RK3562
+关注
关注
0文章
88浏览量
599
发布评论请先 登录
迅为瑞芯微RK3562开发板主频2.0内置NPU算力达1TOPS,核心板扩展更多功能
迅为瑞芯微RK3562开发板/核心板应用于人脸跟踪、身体跟踪、视频监控、自动语音识别
迅为瑞芯微RK3562开发板/核心板介绍可应用于人脸跟踪、视频监控、自动语音识别(ASR)等
瑞芯微米尔RK3562国产核心板,ARM中量级多面手
迅为瑞芯微RK3562开发板/核心板流畅运行Android13、Debian11、Buildroot、Ubuntu22系统
新一代低价开发板芯片RK3562来啦! — 触觉智能RK3562开发板
NPU性能深度评测:瑞芯微RK3588、RK3576、RK3568、RK3562
瑞芯微RK3562核心板的性能和应用

瑞芯微RK3562平台FFmpeg硬件编解码移植及性能测试实战攻略
评论