概述
条件
当前编译环境:国产UOS系统(基于linux),CPU是ARM架构
需要安装ffmpeg 3.4版本。
通过源码编译进行安装使用
下载源码
在github上将ffmpeg源码下载到本地:下载地址
git clone https://github.com/FFmpeg/FFmpeg.git
然后在终端,切入到ffmpeg目录,查看远程分支:
git branch -a
接着将我们需要的版本代码迁出来:
$ git checkout -b 3.4 origin/release/3.4
修改configure
修改配置的目的是为了让最终生成的库更简洁,不要生成相关的链接库(生成标准的 .so,而不是 .so.xxx)
如果不修改的话,默认会生成以下的库文件:
这样文件太多,不方便管理,所以我们只需要生成.so就好啦。
在ffmpeg目录下找到 configure文件,然后找到以下字段并修改如下:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
如下:
添加编译配置
在源码根目录新建一个脚本 auto.sh ,然后输入:
#!/bin/sh
./configure
--enable-shared
--prefix=/usr/bin/ffmpeg_ARM
--enable-demuxers
--enable-parsers
--enable-ffprobe
注意:ffmpeg_ARM是配置最终要安装的目录,可自行设置。
--enable-demuxers
--enable-parsers
--enable-ffprobe
这三项配置主要解决一个重要问题:
当调用 avformat_open_input
接口的时候会报错:
返回-1094995529 “Invalid data found when processing input”
所以在编译时一定要加上这个配置,否则调用这个接口就会报错啦。
开始编译
ok,以上全部准备完成后就可以开始编译啦。
直接运行脚本 : sudo ./auto.sh
然后执行 :
make
sudo make install
安装完就可以在配置的目录下找到相关的库和头文件了
这里重要的是编译配置,一开始我就没有配,后来在使用过程中就出现错误,在网上找了好多资料最终解决这个问题。
参考资料:
FFmpeg 详尽编译过程
avformat_open_input返回-1094995529 “Invalid data found when processing input“
最后
以上就是柔弱跳跳糖为你收集整理的UOS系统下FFmpeg源码编译安装及注意事项的全部内容,希望文章能够帮你解决UOS系统下FFmpeg源码编译安装及注意事项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复