银河麒麟V10编译FFMpeg,并用Qt开发项目

本文详细介绍了在Ubuntu环境下从源码编译FFmpeg的过程及注意事项,包括如何避免常见错误、第三方库的安装与配置,以及如何在Qt项目中正确引用FFmpeg。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,百度搜索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 +=后面。

 

 

 

针对麒麟系统下的ffmpeg编译安装,可以按照以下步骤来进行操作。首先,根据引用中的建议,需要创建三个目录,分别是bin、ffmpeg_build和ffmpeg_source。其中,ffmpeg_source目录用于存放所有的库源码,ffmpeg_build目录则用于编译ffmpeg。辅助库可以直接安装到默认路径,即/usr/local目录中,按照引用中的建议。接下来,可以按照官方网站和其他网络教程的建议,将ffmpeg和所有的辅助包都安装到ffmpeg_build目录中,如引用所述。这样,就可以完成麒麟系统下的ffmpeg编译安装了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [银河麒麟下安装ffmpeg遇到的问题](https://blog.csdn.net/m0_54096780/article/details/124765933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [银河麒麟V10编译FFMpeg并用Qt开发项目](https://blog.csdn.net/amu1550/article/details/109639845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值