1

这是我的项目情况:我使用本教程在 Windows 中编译了 ffmpeg,并导入了在我的 android 项目(在 jni 文件夹下)中生成的 ffmpeg 文件夹(包含在 libffmpeg.so 文件中)。在我的项目中,我有一个 jni_part.cpp,我在其中插入了我的 jni 函数以使用 opencv 进行操作。在我的 Android.mk 中,我使用下面的代码导入 opencv 并编译 jni_part.cpp

include $(CLEAR_VARS)
include ../../sdk/native/jni/OpenCV.mk
LOCAL_MODULE    := mixed_sample
LOCAL_SRC_FILES := jni_part.cpp
LOCAL_LDLIBS +=  -llog -ldl 
LOCAL_SHARED_LIBRARY := ffmpeg-prebuilt
include $(BUILD_SHARED_LIBRARY)

但是我应该使用什么代码来导入ffmpeg?我尝试使用此代码:

include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg-prebuilt
LOCAL_SRC_FILES := ffmpeg-0.8/android/armv7-a/libffmpeg.so
LOCAL_EXPORT_C_INCLUDES := ffmpeg-0.8/android/armv7-a/include/
LOCAL_EXPORT_LDLIBS := ffmpeg-0.8/android/armv7-a/libffmpeg.so
LOCAL_PRELINK_MODULE := true
include $(PREBUILT_SHARED_LIBRARY)

但是如果从我的 jni_part.cpp 代码中尝试包含一些 ffmpeg 文件/库"#include <libavutil/avstring.h>",我会收到此错误:

**** Build of configuration Default for project OpenCV Tutorial 4 - Mix Java+Native OpenCV ****

C:\android-ndk-r8c\ndk-build.cmd 
Prebuilt       : libffmpeg.so <= jni/ffmpeg-0.8/android/armv7-a/
Install        : libffmpeg.so => libs/armeabi-v7a/libffmpeg.so
"Compile++ thumb : mixed_sample <= jni_part.cpp
jni/jni_part.cpp:24:32: fatal error: libavutil/avstring.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi-v7a/objs/mixed_sample/jni_part.o] Error 1

**** Build Finished ****

有人可以帮助我吗?我需要这样做以包含 ffmpeg 编解码器并希望使用函数 cvCaptureFromAVi ...提前致谢

4

0 回答 0