X86平台下FFMPEG编译(--enable-x264)
编译参数
#!/bin/bash
./configure --cc=gcc /
--cpu=x86 /
--enable-gpl /
--enable-x264 /
--extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib /
--enable-static /
--enable-decoder=x264
gcc版本是gcc 3.2.2 20030222(Red Hat Linux 3.2.2-5)
编译过程中的问题及其解决
1、直接编译过程中,对于/libavcodec/x264.c的编译过程会找不到头文件x264.h,
解决方法:
将x264开源编码器中的/common/x264.h复制到ffmpeg/libavcodec/中,并修改x264.c
增加函数包括
static void x264_log_default( void *p_unused, int i_level, const char *psz_fmt, va_list arg )
void x264_param_default( x264_param_t *param )
int x264_nal_encode( void *p_data, int *pi_data, int b_annexeb, x264_nal_t *nal )
下面三个函数中由于牵涉很多其他函数,而且仅和编码器有关,我主要针对解码器,所以就#if 0, 然后将原x264.c中调用这三个函数的语句注释掉,如果需要进一步使用编码器,可以适当在修改
x264_t * x264_encoder_open ( x264_param_t *param )
int x264_encoder_encode
void x264_encoder_close ( x264_t *h )
2、在ld连接时,发生-lx264选项无法辨识
解决方法
修改配置的config.mak文件,将EXTRALIBS=-lm -lx264 -lz -ldl修改为EXTRALIBS=-lm -lz -ldl就OK了
然后make, then, enjoy it