本文介紹瑞芯微RK3562平臺,F(xiàn)Fmpeg硬件編解碼移植及性能測試方法。
FFmpeg簡介與實(shí)測數(shù)據(jù)
- FFmpeg簡介
FFmpeg是一套多媒體框架,能夠解碼、編碼、轉(zhuǎn)碼、復(fù)用、解復(fù)用、流、過濾和播放數(shù)字音頻、視頻,提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。
- 實(shí)測數(shù)據(jù)
(1)2K視頻編解碼,視頻文件大小為103MB
硬件解碼+編碼數(shù)據(jù):

軟件解碼+編碼數(shù)據(jù):

(2)4K視頻編解碼,視頻文件大小為128MB
硬件解碼+編碼數(shù)據(jù):

軟件解碼+編碼數(shù)據(jù):

交叉編譯與移植FFmpeg
以下操作在PC端虛擬機(jī)里面進(jìn)行
- 下載7.1版本ffmpeg源碼:
git clone -b 7.1 --single-branch https://gitee.com/work_public/ffmpeg-rockchip.git
- 交叉編譯FFmpeg
(1)進(jìn)入FFmpeg源碼目錄:
cd ffmpeg-rockchip
(2)設(shè)置pkgconfig 環(huán)境變量:
export PKG_CONFIG_SYSROOT_DIR=/sysroot_rk3562_ubuntu2004/ export PKG_CONFIG_PATH=/sysroot_rk3562_ubuntu2004/usr/lib/aarch64-linux-gnu/pkgconfig
(3)創(chuàng)建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/,用于交叉編譯應(yīng)用程序:
sudo mkdir -p /opt/ffmpeg_rk3562_ubuntu20/ sudo cp ./* /opt/ffmpeg_rk3562_ubuntu20/ -rf
- 移植至主板端(以下操作在主板端進(jìn)行)
(1)卸載主板默認(rèn)的 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)設(shè)置環(huán)境變量,在/home/industio/.bashrc文件末尾增加代碼:
export PATH=/usr/local/ffmpeg/bin:$PATH export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
(4)執(zhí)行生效:
source /home/industio/.bashrc
編解碼測試
- 測試常見命令(以下操作在主板端進(jìn)行)
(1)測試時(shí),需要主板端開啟性能模式,且主板接上風(fēng)扇散熱,開啟性能模式指令:
echo performance | tee $(find /sys/ -name *governor);
(2)測試時(shí)查看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的移植和測試教程已完成,關(guān)注觸覺智能,還有RK系列RK3562、RK3568、RK3576、RK3588的FFmpeg測試對比!
產(chǎn)品介紹
為了幫助各位工程師朋友用更低的價(jià)格入手國產(chǎn)熱門嵌入式開發(fā)板,觸覺智能推出瑞芯微RK系列開發(fā)板優(yōu)惠活動,包括RK3506、RK3562、RK3576。從入門到高端,到手低至129元!
-
瑞芯微
+關(guān)注
關(guān)注
27文章
708瀏覽量
53628 -
RK3568
+關(guān)注
關(guān)注
5文章
628瀏覽量
7610 -
RK3588
+關(guān)注
關(guān)注
8文章
503瀏覽量
7101 -
rk3576
+關(guān)注
關(guān)注
1文章
230瀏覽量
1395 -
RK3562
+關(guān)注
關(guān)注
0文章
88瀏覽量
612
發(fā)布評論請先 登錄
迅為瑞芯微RK3562開發(fā)板主頻2.0內(nèi)置NPU算力達(dá)1TOPS,核心板擴(kuò)展更多功能
迅為瑞芯微RK3562開發(fā)板/核心板應(yīng)用于人臉跟蹤、身體跟蹤、視頻監(jiān)控、自動語音識別
迅為瑞芯微RK3562開發(fā)板/核心板介紹可應(yīng)用于人臉跟蹤、視頻監(jiān)控、自動語音識別(ASR)等
瑞芯微米爾RK3562國產(chǎn)核心板,ARM中量級多面手
迅為瑞芯微RK3562開發(fā)板/核心板流暢運(yùn)行Android13、Debian11、Buildroot、Ubuntu22系統(tǒng)
為什么說RK3562可以碾壓PX30?
新一代低價(jià)開發(fā)板芯片RK3562來啦! — 觸覺智能RK3562開發(fā)板
Linux系統(tǒng)連接藍(lán)牙、WiFi方法分享,適用瑞芯微RK3562等主板產(chǎn)品
NPU性能深度評測:瑞芯微RK3588、RK3576、RK3568、RK3562
瑞芯微RK3562核心板的性能和應(yīng)用

瑞芯微RK3562平臺FFmpeg硬件編解碼移植及性能測試實(shí)戰(zhàn)攻略
評論