android 移植 ffmpeg (三) 测试用例(解决avcodec_find_encoder(AV_CODEC_ID_H264)返回为NULL的问题)

使用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");
    }


经过百度和google发现,针对这种情况我们需要 下载 libx264的源码然后在本地编译安装,然后在编译ffmpeg的时候开启H264编码并指定libx264所在的路径。

安装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


然后重新编译即可, 最后附上编译配置中的的几个文件:last_x264.tar.bz2(264源码),configure,build_andriod_mac.sh,Android.mk




Linux下编译带x264的ffmpeg的方法                     

http://blog.csdn.net/season_hangzhou/article/details/24399371





  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值