ffmpeg-rockchip RK3588 armbian小盒子上编译rk硬件加速

前置条件需要编译 rkmpp rkrga

rkmpp之前已经编译过了 

# Build RGA

git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga
meson setup  rkrga_build \
    --prefix=/usr \
    --libdir=lib \
    --buildtype=release \
    --default-library=shared \
    -Dcpp_args=-fpermissive \
    -Dlibdrm=false \
    -Dlibrga_demo=false
meson configure rkrga_build
ninja -C rkrga_build install

跑完之后会生成librga.a 和对应的头文件 

编译ffmpeg

github的太慢了 可以 gitee搜索 ffmpeg-rockchip clone下来之后 

编译参数如下:

./configure --prefix=./install \
	--enable-static	\
	--enable-gpl	\
	--enable-version3	\
	--enable-libdrm	\
	--enable-rkmpp	\
	--enable-rkrga	\
	--enable-optimizations	\
	--extra-cflags="-I/home/sdcard/QMCY/ffmpeg-rockchip/install/include"	\
	--extra-ldflags="-L/home/sdcard/QMCY/ffmpeg-rockchip/install/lib"	\
	--disable-doc

缺少啥就安装对应的包就可以 

正常编译安装之后  生成了对应的库和 头文件 

之后再工程中集成 ffmpeg代码  

编译程序  

直接挂了 开发版没gdb  还很难看挂在哪了 今天先到这

### RK3588 平台上的 FFmpeg VPU 硬件加速配置 #### 配置环境准备 为了在RK3588平台上利用FFmpeg进行VPU硬件加速,需要先准备好开发环境。这通常涉及到安装必要的工具链和支持库。对于Rockchip平台来说,推荐使用官方提供的SDK来简化这一过程。 #### 编译带有 Rockchip MPP 支持的 FFmpeg 要使FFmpeg能够访问并利用RK3588内置的多媒体处理单元(VPU),必须重新编译FFmpeg源码,并启用对Rockchip Media Process Platform (MPP)的支持。具体操作如下: 1. 获取最新版本的`ffmpeg-rockchip`仓库中的源代码; 2. 修改configure脚本选项以包含`--enable-mmal`和`--enable-rkmpp`参数[^1]; ```bash ./configure --target-os=linux \ --arch=aarch64 \ --cross-prefix=aarch64-linux-gnu- \ --prefix=/usr/local/ffmpeg \ --extra-cflags="-I${PREFIX}/include" \ --extra-ldflags="-L${PREFIX}/lib" \ --pkg-config=pkg-config \ --disable-static \ --enable-shared \ --enable-libx265 \ --enable-pic \ --enable-cross-compile \ --sysroot=${SYSROOT} \ --enable-rkmpp \ --enable-mmal ``` 上述命令中包含了针对ARM架构交叉编译所需的设置以及开启RKMPP支持的关键选项。 #### 测试编码与解码功能 完成编译后,可以通过简单的测试案例验证新构建的FFmpeg是否能正常调用RK3588的VPU来进行高效的数据压缩或解压工作。例如,尝试播放一段H.264/H.265格式的视频文件时指定采用rkmpp作为解码器: ```bash ffplay -vcodec h264_rkmpp input_video.mp4 ``` 或者执行转码任务时也指明同样的编解码方式: ```bash ffmpeg -i source_file.avi -c:v h264_rkmpp output_file.mp4 ``` 以上命令分别用于启动媒体播放器查看经过优化后的性能表现,或是创建新的输出文件同时应用硬件级别的转换逻辑。 #### 实际应用场景举例 当面对实时流媒体传输需求时,还可以借助GStreamer框架配合FFmpeg实现更复杂的功能组合。比如接收来自网络摄像头或其他设备发送过来的RTSP直播信号,并即时渲染到屏幕上展示给用户观看。此时可参照以下管道定义语句构造完整的数据流转路径[^3]: ```bash gst-launch-1.0 rtspsrc location=<your_rtsp_url> ! rtph264depay ! h264parse ! mppvideodec ! videoconvert ! fpsdisplaysink name=fps0 video-sink="waylandsink" ``` 此段指令集成了多个组件共同作用于输入源解析、帧率统计直至最终呈现整个流程之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QMCY_jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值