使用ffmmpeg编译的时候,一般我们会用到H264编码,像这样使用的时候发现ffmpeg无法找到H264编码:
AVCodec* pCodec = avcodec_find_encoder(AV_CODEC_ID_H264);
if (!pCodec){
LOGE("Can not find encoder(AV_CODEC_ID_H264)!");//程序执行了这一句
}else{
LOGE("Can find encoder--------!\n");
}
安装H264的步骤如下:
下载H264,解压,然后cd到解压后的目录里面,执行以下语句:
./configure --prefix=/usr/local/x264 --enable-shared --enable-static
其中 /usr/local/x264 就为我们要目录目录,编译完成之后,然后执行:
sudo make install
如果没有什么意外的话,意味着H264安装成功了。安装成功后,我们需要修改build_andriod_mac.sh文件
#!/usr/bin/env bash
#通过 --enable-gpl --enable-libx264 开启h264
#以下方式引入第三方库来指定h264的安装路径,否则编译的时候不知道x264的位置,会提示: ERROR: libx264 not found
#--extra-cflags="-I/usr/local/include/" \
#--extra-ldflags="-L/usr/local/x264/lib" \
#-–extra-ldflags="-L/usr/local/lib" \
export NDK=/Users/pingzhang/Documents/tool/android-ndk-r13
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
export PLATFORM=$NDK/platforms/android-23/arch-arm
export PREFIX=$NDK/sources/ffmpeg/android
build_one(){
./configure --target-os=linux \
--extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a" \
--extra-cflags="-I/usr/local/include/" \
--extra-ldflags="-L/usr/local/x264/lib" \
-–extra-ldflags="-L/usr/local/lib" \
<span style="white-space:pre"> </span>--prefix=$PREFIX --enable-cross-compile \
<span style="white-space:pre"> </span>--enable-runtime-cpudetect --disable-asm \
<span style="white-space:pre"> </span>--arch=arm --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
<span style="white-space:pre"> </span>--cross-prefix=$PREBUILT/bin/arm-linux-androideabi \
<span style="white-space:pre"> </span>--disable-stripping --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
<span style="white-space:pre"> </span>--sysroot=$PLATFORM --enable-gpl --enable-shared --disable-static \
<span style="white-space:pre"> </span>--enable-small --disable-ffprobe --disable-ffplay --disable-ffmpeg \
<span style="white-space:pre"> </span>--disable-ffserver --disable-debug \
--enable-gpl --enable-libx264 \
--enable-decoder=h264 --enable-encoder=h264
}
build_one
make clean
make
make install
Linux下编译带x264的ffmpeg的方法
http://blog.csdn.net/season_hangzhou/article/details/24399371