首先,百度搜索ubuntu编译ffmpeg,有很多文章,并且有很多踩坑文章,列出自己踩到的坑和解决方法。
已有文章大多有N年了,按顺序走下来往往会蒙B
按照正常的流程编译ffmepg稳定版,基本也没什么坑。
官网的指导,具有非常大的参考价值,编译的话,最好不要参考其他文章。
要点一,gitbhub上搜索ffmpeg,在代码库的release界面,下载稳定版本。
根据官网指导,执行update 和upgrade,将当前系统升级到最新版本。
然后安装必要的库,也就是官网指导上Get the Dependencies部分。
官网和其他网络教程建议创建三个目录,bin,ffmpe_build,ffmpeg_source。ffmpeg和所有辅助包都安装到ffmpeg_buidl里。
我的建议是,这三个目录需要创建,所有库源码放到ffmpeg_source里,编译的时候,ffmpeg编译到ffmpeg_build里。辅助库直接安装到默认路径,也就是/usr/local里。
要点二,编译完成后,vim ~/.bashrc,增加export PKG_CONFIG_PAHT=$PKG_CONFIG_PAHT:/usr/local/lib/pkgconfig:{ffmeg_build的路径}。然后别忘了source ~/.bashrc。
下面说下编译过程
对第三方库,ffmpe有版本要求,比如nasm,如果我们的系统更新源里的版本>=2.12,就可以直接sudo apt install nasm了。查看系统更新源里库版本的方法:
apt list | grep nasm
麒麟V10的系统更新源里nasm的版本是2.11,刚好不满足要求,所以我们需要下载源码自己编译。目前masm官方稳定版是2.15,下载源码,按步骤安装即可。多说一句,还是,官网指导建议装到ffmpeg_build里,我建议装到系统默认安装目录。
接下来libx264和libx265,查看版本号,满足要求,直接安装。
后面的几个包,更新源里没有的,直接下载源码,编译安装。满足要求的直接安装。
最后,编译ffmpeg。官网指导里还下载了snapshot,我们编译的是稳定版,我没有下载snapshot。
编译到最后,遇到个问题,提示undefined reference to "ff_log2_tab",还有一个 undefined reference to "ff_reverse",
这就要修改ffmpeg 的部分代码,对应的,增加#include "libavutil/log2_tab.c",#include "libavutil/reverse.c"。
不要一次所有文件都加上,加一个文件编译下。完成。
Qt工程引用
要点一,引用顺序,-lavdevice ,-lavformat , -lavcodec, -lavutil, -lavfileter, -lswscale, -lswresample。前四个顺序固定,后面可以随意。
要点二,执行pkg-config --libs libavdevice libavformat libavcodec libavfilter libavutil libswscale libswresample,获取所有支持库。放到qt工程文件 LIBS +=后面。
最后
以上就是重要大门最近收集整理的关于银河麒麟V10编译FFMpeg,并用Qt开发项目的全部内容,更多相关银河麒麟V10编译FFMpeg内容请搜索靠谱客的其他文章。
发表评论 取消回复