编译ffmpeg问题整理
来源:互联网 发布:科罗拉多级战列舰知乎 编辑:程序博客网 时间:2024/05/16 19:25
export NDK=D:/android-ndk-r9d-windows-x86_64/android-ndk-r9d
export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt
export PLATFORM=$NDK/platforms/android-8/arch-arm
export PREFIX=F:/xxx/FFmpeg-master
export INCLUDE_DIR=F:/xxx/FFmpeg-master/include
export LIB=F:/xxx/FFmpeg-master/elib
创建temp在cygwin下 chomd 777 temp
./configure --target-os=linux --prefix=$PREFIX \
--enable-cross-compile \
--enable-runtime-cpudetect \
--disable-asm \
--arch=arm \
--cc=$PREBUILT/windows-x86_64/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/windows-x86_64/bin/arm-linux-androideabi- \
--disable-stripping \
--nm=$PREBUILT/windows-x86_64/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--enable-nonfree \
--disable-everything \
--enable-version3 \
--enable-gpl \
--disable-doc \
--enable-avresample \
--enable-demuxer=rtsp \
--enable-muxer=rtsp \
--enable-muxer=mp4 \
--enable-demuxer=mp4 \
--enable-encoders \
--enable-decoders \
--disable-ffplay \
--disable-ffserver \
--enable-ffmpeg \
--disable-ffprobe \
--enable-neon \
--enable-protocol=file \
--enable-hwaccels \
--enable-zlib \
--disable-devices \
--enable-avdevice \
--enable-avfilter \
--enable-filter=movie \
--enable-avfilter \
--enable-filter=tnegate \
--disable-shared \
--enable-static \
--extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a" \
--extra-ldflags="-L${LIB}"
make -j4 install
执行顺序:先export configure make
libavfilter/libavfilter.a
D:\android-ndk-r9d-windows-x86_64\android-ndk-r9d\toolchains\arm-linux-androideabi-4.6\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ranlib.exe: '-D': No such file
解决办法:改掉config.mak 的
RANLIB=D:/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-ranlib -D 改成-t
没有vector<char *> argv 没有argv.data() member 则改为 &argv[0]
将.a文件转化为 txt文件的命令
nm libavfilter.a>1.txt
config.log 报这个错误Unable to create temporary file in E:/ffpmeg/FFmpeg-master/temp. 是没有给temp创建权限 chmod 777 temp
将多个a文件编译成so文件
将生成include下边的所有文件拷贝到jni下边,将lib也拷贝到jni下
编写android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg
LOCAL_ARM_MODE := arm
#LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
LOCAL_PRELINK_MODULE := false
LOCAL_CPPFLAGS := -UBANANA -DBANANA=300 -DLINUX -DANDROID
STL_PATH := \
$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include \
LOCAL_C_INCLUDES := \
$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.8/include \
LOCAL_LDLIBS := -ldl -llog -lz -lm -L$(STL_PATH)
LOCAL_CFLAGS := -D__STDC_CONSTANT_MACROS -Wl,-Map=test.map -g
# -lUtils
LOCAL_LDFLAGS += -L$(LOCAL_PATH)/lib \
-lavformat\
-lavfilter \
-lavcodec \
-lswresample \
-lswscale \
-lavutil\
LOCAL_C_INCLUDES+ := \
$(LOCAL_PATH)/libavutil\
$(LOCAL_PATH)/libavformat\
$(LOCAL_PATH)/libavcodec\
$(LOCAL_PATH)/libavfilter\
$(LOCAL_PATH)/libswresample\
$(LOCAL_PATH)/libswscale\
LOCAL_SRC_FILES := cmdutils.c \
ffmpeg_filter.c \
ffmpeg_opt.c \
ffmpegi.cpp \
ffmpegx.c \
FFmpegJni.cpp \
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_ABI := armeabi
# mips x86 armeabi-v7a
APP_STL :=gnustl_static
APP_PLATFORM:=android-15
NDK_TOOLCHAIN_VERSION = 4.8
- 编译ffmpeg问题整理
- cygwin编译ffmpeg问题
- ffmpeg编译问题总结
- ffmpeg NDK编译问题
- 编译ffmpeg的问题
- ffmpeg libx265 编译问题
- FFmpeg编译出现问题
- ffmpeg编译问题及其解决方法
- vc 编译ffmpeg问题集
- 编译ffmpeg出现的问题
- 编译ffmpeg遇到的问题
- Android NDK 编译FFMPEG 问题
- VC+ FFMPEG 编译问题 收集
- ffmpeg编译时的问题
- ffmpeg应用测试编译问题
- VsIDE编译问题整理
- win7下ffmpeg编译动态链接库整理
- win7下ffmpeg编译动态链接库整理
- java源码分析之HashSet及LinkedHashSet
- deque 双向队列
- 移动端尺寸基础知识
- Exec Source使用及源码分析
- angularJS相关网址
- 编译ffmpeg问题整理
- Assignment ZQOJ 25691 单调队列
- WebView 如何和 JS交互
- 【设计模式】外观模式降低系统耦合(一)
- JSON.parse()和JSON.stringify()
- mysql学习笔记(4)
- 论文笔记: Efficient Graph-Based Image Segmentation
- spring配置详解-proxool连接池配置
- 移动端开发实用文章问题