这是我的项目情况:我使用本教程在 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 ...提前致谢