使用buildroot构建ffmpeg,带有ffplay,能够播放音乐和视频

因为我需要ffmpeg支持ffplay功能,一般默认的ffmpeg编译出来的都是不带ffplay,需要依赖库sdl2库,可能还需要其他功能,编解码h264时可能就需要x264库,一个一个编译依赖库太麻烦啦。所以我想到用buildroot来构建ffmpeg。

需求:我的开发板环境是Ubuntu-base16-04系统,已经安装好alsa相关工具,我也不想替换整个根文件系统,只拷贝ffmpeg的bin文件和库文件。这里使用buildroot编译出来的没有带头文件,哪位仁兄知道也可以在评论区指点一下。

首先是buildroot源码网址,https://buildroot.org/

 点击download,

 我选的是长期支持版,2024.02.06.

接下来就是解压源码到Ubuntu,我的Ubuntu版本为18.04,

执行make menuconfig打开图形配置界面。

 以下就是一些具体的配置:

 以上是对目标平台的一些配置还是比较好理解。

 以上就是对于交叉编译链的配置,一般都是选择自己本地的交叉编译链。

 进入上述图片箭头所指的位置,

 播放mp3文件需要libmp3lame库,所以需要选中lame。

然后进入ffmpeg,我是全选。

 因为我的开发板是alsa框架,所以进入libraries.

 

 因为我需要编解码h264功能,所以需要x264库。

 

 上述alsa-lib全选,因为我的开发板本来就有alsa环境,所以不做详细说明。

 以上为我的所有配置。正常编译出来的根文件系统路径是buildroot-2024.02.6/output/images

 拷贝解压rootfs.tar,把usr路径下的lib和bin拷贝到自己的路径,然后移植到开发板即可。

然而按照上述方法编译出来的ffplay,一直报sun4i-i2s 1c22800.i2s: ASoC: can't set 1c22800.i2s hw params: -22,这里我选择升级sdl2库的版本,这个buildroot编译的ffmpeg版本为4.4.4,默认的sdl2库版本为2.28.5,这里我选择2.30.5,至于为什么选2.30.5这个版本是因为之前的交叉编译ffmpeg4.3.8版本时用的就是这个版本的sdl2库,是可以的,所以自然而然就选择这个版本。

因为系统默认的版本是2.28.5,所以我需要修改版本。

进入buildroot-2024.02.6/package/sdl2,编辑sdl2.mk.

进入buildroot-2024.02.6/package/sdl2,编辑sdl2.hash 

 其中关于sha256哈希值的计算我用到的指令是openssl dgst -sha256 SDL2-2.30.5.tar.gz

其中LICENSE.txt文件是SDL2-2.30.5.tar.gz。

其中有一些小建议点,要是下载的软件包速度太慢啦,可以自己手动下载,下载下来放在路径为

buildroot-2024.02.6/dl对应的模块文件夹下,以sdl2举例如下:

 经过上述一系列操作之后我的ffplay功能终于得偿所愿,所以记录一下,算是避坑,也分享给大家参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hqb_newfarmer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值