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

ok113i——交叉编译音视频动态库

提示:buildroot支持ffmpeg和SDL,但博主的ffmpeg是按下面方法编译通过,SDL使用buildroot直接编译也通过;

1. 下载ffmpeg源码

下载链接:https://github.com/FFmpeg/FFmpeg/tags
根据版本需要自行下载压缩包,这里下载的是n4.4.5版本;
解压:tar -xvf FFmpeg-n4.4.5.tar.gz;
解压后得到FFmpeg-n4.4.5目录,进去;

2. 配置交叉编译器环境变量

# 使用export配置临时环境变量
export PATH=$PATH:/home/forlinx/OK113i-linux-sdk/out/t113_i/ok113i/longan/buildroot/host/bin/ 
# echo查看环境变量
echo $PATH

3. 编译输出动态库文件

参考1(测试通过):https://blog.csdn.net/fangye945a/article/details/112882064
# 交叉编译ffmpeg
./configure --cross-prefix=arm-linux-gnueabi- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabi-gcc --arch=arm --prefix=/home/forlinx/qtProject/FFmpeg-n4.4.5/output --enable-ffmpeg --disable-armv5te --disable-armv6 --disable-armv6t2 --enable-shared --extra-cflags="-fPIC" --extra-cxxflags="-fPIC"
make && make install # 运行完,编译结果就会输出到outpu目录
如果编译失败,则make clean再编译

# 交叉编译ffmpeg, 裁剪
./configure --cross-prefix=aarch64-linux-gnu- --enable-cross-compile --target-os=linux --cc=aarch64-linux-gnu-gcc --arch=arm64 --prefix=/home/disk/fangye/build_amba/ffmpeg_build/FFmpeg-n4.3.1_amba/output --disable-x86asm --enable-parsers --disable-decoders --enable-decoder=h264  --enable-decoder=aac --disable-encoders  --disable-muxers  --enable-muxer=mp4 --disable-demuxers --disable-protocols --enable-protocol=file --disable-filters --disable-bsfs --enable-ffmpeg

参考2:https://blog.csdn.net/yyz_1987/article/details/131076072
# 交叉编译lame,执行命令后没得到输出文件
./configure --host=arm-linux-gnueabihf --prefix=$(pwd)/output cc=arm-fsl-linux-gnueabi-gcc --disable-frontend
make && make install # 运行完,编译结果就会输出到outpu目录

# 交叉编译x264, 执行命令后没得到输出文件
./configure --prefix=build --disable-asm --enable-shared --enable-static --host=arm-linux-gnueabi --cross-prefix=arm-linux-gnueabi-
make && make install # 运行完,编译结果就会输出到outpu目录

# 交叉编译ffmpeg, 包含lame和x264
./configure --prefix=../arm-ffmpegbuild --enable-shared --enable-libmp3lame  --enable-libx264 --enable-gpl --disable-asm --enable-version3 --cross-prefix=arm-fsl-linux-gnueabi-  --target-os=linux --extra-cflags="-I ../lamebuild/include" --extra-ldflags="-L ../lamebuild/lib" --enable-cross-compile   --enable-small --arch=arm --cpu=arm926ej-s --disable-everything --enable-decoder=h264 --enable-parser=h264 --enable-demuxer=rtsp --extra-ldflags="-L/root/test/ffmpeg/x264build/lib" --extra-cflags="-I ../x264build/include"
make && make install # 运行完,编译结果就会输出到outpu目录

编译后报错:WARNING: arm-linux-gnueabi-pkg-config not found, library detection may fail.
直接安装:sudo apt-get install pkg-config-arm-linux-gnueabi
编译后没生成动态库,需要执行:make && make install

4. 验证编译后的ffmpeg

然后将output文件压缩(注意开发板上的tar功能不全,解压缩已知是支持-cvf的压缩包):tar -cvf ffmpeg-output.tar.gz output/
然后在开发板解压缩: tar -xvf ffmpeg-output.tar.gz
验证编译后的程序能不能运行,运行./output/bin/ffmpeg,报错:
./ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
设置库文件的临时环境变量:
export LD_LIBRARY_PATH=/usr/local/lib/
再次运行./output/bin/ffmpeg,会输出版本信息;


http://www.kler.cn/a/558042.html

相关文章:

  • 【AI时代】可视化训练模型工具LLaMA-Factory安装与使用
  • 【Python爬虫(50)】从0到1:打造分布式爬虫项目全攻略
  • 2025最新在GitHub上搭建个人图床,保姆级图文教程,实现图片高效管理
  • mysql之InnoDB 统计信息收集
  • 【Web前端开发精品课 HTML CSS JavaScript基础教程】第二十五章课后题答案
  • MySQL数据库——表的约束
  • 基于数据可视化+SpringBoot+安卓端的数字化施工项目计划与管理平台设计和实现
  • Infuse Pro for Mac v8.1 全能视频播放器 支持M、Intel芯片
  • Lua 面向对象
  • Vue3 前端路由配置 + .NET8 后端静态文件服务优化策略
  • 力扣——杨辉三角
  • 基于数据可视化+SpringBoot+安卓端的数字化OA公司管理平台设计和实现
  • 具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)
  • 模拟实现Java中的计时器
  • 边缘计算网关:圆织机设备数据洞察的 “智慧之眼”
  • 《A++ 敏捷开发》- 20 从 AI 到最佳设计
  • TCP传输可靠性保障:理论讲解→实战面试解析
  • Linux lsblk 命令详解:查看磁盘和分区信息 (中英双语)
  • 区块链相关方法-波士顿矩阵 (BCG Matrix)
  • 《论模型驱动架构设计方法及其应用》审题技巧 - 系统架构设计师