ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已验证)
来源:互联网 发布:厦大经济学院八高 知乎 编辑:程序博客网 时间:2024/05/29 03:34
ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已验证)
(2013-01-29 15:28:23)转载▼
标签:
android
ffmpeg
make
neon
优化
分类: 软件开发#!/bin/sh
export TMPDIR="/tmp/"
export NDKROOT="/opt/android-ndk-r8c" #这个是你ndk安装的目录,自己改
PREBUILT=$NDKROOT/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86
./configure --target-os=linux \
--arch=arm \
--cpu=armv7-a \ #指定处理器
--enable-cross-compile \ #使能交叉编译
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--nm=$PREBUILT/bin/arm-linux-androideabi-nm \
--extra-cflags="-fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp -I$NDKROOT/platforms/android-9/arch-arm/usr/include" \
--enable-asm \
--disable-yasm \
--enable-static \
--disable-shared \
--enable-small \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-neon \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-ffprobe \
--prefix=/home/ffmpeg-android-bin \
--extra-ldflags="-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x -Wl,-rpath-link=$NDKROOT/platforms/android-9/arch-arm/usr/lib -L$NDKROOT/platforms/android-9/arch-arm/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/crtbegin.o $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/crtend.o -lc -lm -ldl"
2)编译静态库: 这个就很简单了, 到ffmpeg目录下面make即可。将生成出来的几个.a文件移到jni目录下
3)编写jni目录下mk文件:
include $(CLEAR_VARS)
LOCAL_MODULE := avfilter
LOCAL_SRC_FILES := libavfilter.a #这几个prebuild是为了把库预编译一下,ndk会将它移动到libs目录下面去
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := avutil
LOCAL_SRC_FILES := libavutil.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := avcodec
LOCAL_SRC_FILES := libavcodec.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := avdevice
LOCAL_SRC_FILES := libavdevice.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := swscale
LOCAL_SRC_FILES := libswscale.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := swresample
LOCAL_SRC_FILES := libswresample.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_CFLAGS := -D__STDC_CONSTANT_MACROS -Wno-sign-compare -Wno-switch -Wno-pointer-sign -DHAVE_NEON=1 \
LOCAL_C_INCLUDES += \
LOCAL_SRC_FILES := \
LOCAL_LDLIBS :=-L$(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm/usr/lib \
-L$(LOCAL_PATH) -lavformat -lavcodec -lavdevice -lavfilter -lavutil \
-lswscale -lswresample -llog -ljnigraphics -lz -ldl -lgcc
#这两个-L很重要, 保证程序能找到库
LOCAL_MODULE := libffmpeg_jni
include $(BUILD_SHARED_LIBRARY)
4) 之后在工程根目录下ndk-build 就能生成带neon的so库拉! 大功告成!
- ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已验证)
- ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已验证)
- ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已验证)
- ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已验证)
- ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法
- 【分享】android下编译ffmpeg with neon的正确方法(已验证)
- ffmpeg compile with neon support for android
- 编译ffmpeg neon时出现的问题
- 关于Android下FFmpeg配合libx264 NEON默认开启的验证
- cross-compile ffmpeg with neon
- Live555/ffmpeg(NEON支持)/boost交叉编译(整理版)
- 移植ffmpeg neon版到android
- 从一个复数点积算法看NEON的汇编优化(NEON优化实例)
- Android NDK编译带ARM neon优化的库
- ARM NEON编译优化
- 将ffmpeg编译为一个SO文件,支持NEON
- ffmpeg在android下编译的方法
- 编译non-neon版本的xbmc-android
- OracleClient和OleDb
- C++用new创建二维数组的方法
- camera的分辨率
- android:shape
- java操作(DOM、SAX、JDOM、DOM4J)xml方式的四种比较与详解
- ffmpeg neon优化必看!!android下编译ffmpeg with neon的正确方法(已验证)
- IOS疯狂基础之屏幕旋转控制,获得当前方向
- 自动化测试工具 Selenium WebDriver 入门教程
- android-Broadcast 中,启动intent 的方法。(第一版)
- linux修改文件所属用户和组
- android 电容屏(一):电容屏基本原理篇
- android 电容屏(二):驱动调试之基本概念篇
- c++ setsockopt详细用法
- ip_tables.h:217: error:invalid conversion from 'void*' to 'xt_entry_target*'