ffmpeg的编译选项浅析

本文介绍了ffmpeg编译时如何定制模块,通过配置脚本configure选择需要的组件,如仅启用libx264编码库或RTSP模块。configure会生成相应的makefile和config.h,其中宏定义根据配置参数确定。在运行时,ffmpeg调用函数注册demuxer和muxer,宏函数定义确保只有启用的模块才会被编译并加入链表,从而影响probe过程。
摘要由CSDN通过智能技术生成

熟悉ffmpeg的同学都知道在编译ffmpeg的时候,可以”定制”一些模块,只使能需要的模块,不使能多余的模块。比如如果我们需要一个视频编码库,可能只使能x264就足够了,用这句:–enable-libx264.如果需要解析RTSP协议,那只使能rtsp模块,用这句:–enable-demuxer=RTSP.这样一来可以提高我们的编译速度,二来编译出来的库或者可执行文件也不会很大。

想必每个人初次接触,都会感觉很神奇。在这里我就简单介绍一下其中的奥秘。

ffmpeg提供了一个编译配置脚本,FFmpeg configure script,即configure文件。configure代码看起来有那么点复杂,没必要进去细究一二了。大概就是说,该文件接收一系列输入配置参数,并输出makefile文件、配置文件以及config.h头文件。其中config.h里面,会根据我们的输入参数,生成若干宏定义。比如如果输入参数有–enable-demuxer=RTSP,则会生成一个CONFIG_RTSP_DEMUXER的宏。

打开config.h,可找到如下代码:

#define CONFIG_RTSP_DEMUXER 1

可以猜测一下,Makefile里面自然也包含了RTSP demuxer相关代码了.这样在编译的时候,就会把RTSP demux相关代码编译进去.

在我们调用ffmpeg的时候,首先我们需要调用函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值