zoukankan      html  css  js  c++  java
  • Ubuntu 10.10 64bit下使用Android NDK r6编译FFmpeg 0.8.1

    编译过程参考在 Mac OS X 下使用 Android NDK r5b 编译 FFmpeg 0.8

    1.下载NDK r6和FFmpeg 0.8.1

    2.解压缩

    • android-ndk-r6-linux-x86.tar.bz2 解压到 /home/pekall/opt 目录下,并将NDK的路径加入到PATH环境变量中
    • ffmpeg-0.8.1.tar.gz 解压到 /home/pekall/Projects_private/FFmpegPlayer/lib 目录下
    • 将目录/home/pekall/Projects_private/FFmpegPlayer/lib/ffmpeg-0.8.1 重命名为/home/pekall/Projects_private/FFmpegPlayer/lib/jni

    3.编写FFmpeg配置脚本

    在目录/home/pekall/Projects_private/FFmpegPlayer/lib/jni下新建脚本文件config.sh,并加上可执行权限。

    ./configure \
        --disable-static \
        --enable-shared \
        --enable-gpl \
        --enable-version3 \
        --enable-nonfree \
        --disable-doc \
        --disable-ffmpeg \
        --disable-ffplay \
        --disable-ffprobe \
        --disable-ffserver \
        --disable-avdevice \
        --disable-avfilter \
        --disable-postproc \
        --enable-small \
        --cross-prefix=/home/pekall/opt/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- \
        --enable-cross-compile \
        --target-os=linux \
        --extra-cflags='-I/home/pekall/opt/android-ndk-r6/platforms/android-9/arch-arm/usr/include' \
        --extra-ldflags='-L/home/pekall/opt/android-ndk-r6/platforms/android-9/arch-arm/usr/lib -nostdlib' \
        --arch=arm \
        --disable-symver \
        --disable-debug \
        --disable-stripping \
        
    sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
    sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
    sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
    sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
    sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
    sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h

    以下几个属性需要根据ndk安装的位置做相应的修改

    • cross-prefix
    • extra-cflags
    • extra-ldflags

    4.编写Android.mk文件

    可以通过这个链接获得,内容和参考的文件完全相同

    5.生成FFmpeg配置文件

    打开终端,在/home/pekall/Projects_private/FFmpegPlayer/lib/jni目录下执行config.sh

    6.编译FFmpeg

    打开终端,在/home/pekall/Projects_private/FFmpegPlayer/lib目录下执行ndk-build,编译完成之后会在/home/pekall/Projects_private/FFmpegPlayer/lib/libs/armeabi目录下生成大约5.4M的文件libffmpeg.so

  • 相关阅读:
    Mysql中的递归查询
    让git忽略对已经版本控制的文件的本地修改
    关于c#中逆变和协变的理解
    把之前的相关博客都迁到了博客园~
    结合github pages使用travis CI
    Spring中的Filter、HandlerInterceptor和AOP
    HDU1711 Number Sequence 题解 KMP算法
    HDU1358 Period 题解 KMP算法
    HDU1686 Oulipo 题解 KMP算法
    HDU3336 Count the string 题解 KMP算法
  • 原文地址:https://www.cnblogs.com/shaobin0604/p/2128619.html
Copyright © 2011-2022 走看看