当前位置: 首页 > news >正文

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

本文介绍瑞芯微RK3588平台,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_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的移植和测试教程已完成,关注触觉智能CSDN,提供RK系列RK3562、RK3568、RK3576、RK3588的FFmpeg测试对比

http://www.dtcms.com/a/495632.html

相关文章:

  • 外贸做企业什么网站wordpress在线计算程序
  • 开发个网站开票名称是什么网站的策划分析
  • swift不同的语言环境使用不同的AppName,CFBundleDisplayName
  • php建站程序合肥网站建设讯息
  • 创建网站需要准备哪些资料广汉网站建设ghxhwl
  • SD comfy:教程1
  • 第三十六篇|东方国际学院的教育数据建模实践:首都圈日本语学校的费用结构、生源分布与治理参数分析
  • 保障数据采集稳定性:设计针对淘宝 API 的熔断、降级与重试机制
  • 物流公司网站方案wordpress 文章链接
  • 题解:P14063 [PO Final 2022] 海滩 / Badstrand
  • 虎扑的网站是用什么技术做的短视频推广
  • 潍坊 网站六安网站排名优化电话
  • 编程猫官方网站济南 网站推广
  • macOS 常用快捷键
  • @JsonProperty 注解详解
  • 【系统分析师】高分论文:原型法及其在信息系统开发中的应用
  • 民治做网站的公司网店代运营哪里好
  • 网站视频背景怎么做网站开发人员职能
  • 【Next】配置环境变量
  • 机器学习十大经典算法解析与对比
  • 铜仁搜狗推广企业seo推广的绝密诀窍曝光
  • 两部门明确:治理价格无序竞争,报价竞标不得低于成本
  • 进行材料水蒸气吸附稳定性测试的比表面及孔径分析仪推荐
  • 西安网站制作西安搜推宝网络seo专员的工作内容
  • 蓝潮网站建设成都市制作企业网站
  • 博客安全攻防演练:从实战视角构建全方位防护体系
  • 应⽤层⾃定义协议与序列化
  • MySQL 逗号分隔的字符串查询的集中方式
  • 第12章 STM32 ADC采集内部温度传感器和基准电压的配置和测试
  • 网站推广公司 wordpress.net做网站之前设置