欢迎使用CSDN-markdown编辑器

Android 网络摄像头开发笔记(1)

ffmpeg 编译篇

编译环境
System:ubuntu14.04
NDK: android-ndk-r8b-linux-x86.tar.bz2
SDK: android-sdk_r23.0.2-linux.tgz
FFMPEG: ffmpeg-2.4.3

ffmpeg 配置文件(config_make.sh)

#!/bin/bash
NDK=/home/username/work/tools/android-ndk-r8b
PLATFORM=$NDK/platforms/android-8/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86

LOCAL_ARM_NEON=true
CPU=armv7-a
PREFIX=./android/$CPU

./configure --target-os=linux \
    --prefix=$PREFIX \
    --enable-cross-compile \
    --arch=arm \
    --enable-nonfree \
    --enable-asm \
    --cpu=cortex-a8 \
    --enable-neon \
    --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
    --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
    --sysroot=$PLATFORM \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-shared \
    --enable-static \
    --enable-swscale \
    --enable-avutil \
    --enable-swresample \
    --enable-avformat \
    --enable-avcodec \
    --enable-avfilter \
    --enable-avdevice \
    --enable-pthreads \
    --disable-yasm \
    --enable-zlib \
    --enable-pic \
    --enable-small \
    --enable-gpl \
    --enable-decoder=mjpeg --enable-demuxer=mjpeg --enable-parser=mjpeg \
    --enable-demuxer=image2 --enable-muxer=mp4

make clean
make  -j4 install

$PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -soname libffmpeg.so -shared -nostdlib  -z noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavformat/libavformat.a libavcodec/libavcodec.a libswscale/libswscale.a  libpostproc/libpostproc.a libavutil/libavutil.a  libavfilter/libavfilter.a libavdevice/libavdevice.a libswresample/libswresample.a -lc -lm -lz -ldl -llog --warn-once --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a

把这个文件放到ffmpeg根目录下,直接运行后可生成android的文件夹,里面有.so 的动态文件,因为我没有–disable-everything,所以很多选项都是默认开启的,.so的库文件有40多M,链接到Android的工程里面后就只有6m左右了。如果觉得过大,还要裁剪,就需要–disable-everything ,然后把需要的enable ,为了调试方便,暂且不去关吧。

编译问题
- NDK版本问题 :在ubuntu10.04 _x64上我用NDK_08b版本编译成了并运行也是好的,但是在14.04_x64上,我用ndk_10d_x86_64的版本编译ffmpeg 2.5.3成功后,播放视频的时候报atof 未定义,这个问题纠结了我很久,因为项目紧张,最后也没有解决,最后切回ffmpeg2.4.3,用ndk_08b 编译运行OK。各位有遇到这个问题的说下解决办法吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值