Android工程中调用ffmpeg
16lz
2021-01-25
1.在生成头文件以后,在Android工程目录下新建一个jni目录,把ffmpeg源码拷入jni目录,然后在jni目录编写一个C文件,其中需要申明头文件,如#include <ffmpeg/libavcodec/avcodec.h>,其他的依次类推。在C文件中可以调用ffmpeg的各种函数。
2.还是在jni目录中,编写Android.mk文件,格式如下(除了注释的三行根据自己需要修改,其他的都照抄,不用改)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
PATH_TO_FFMPEG_SOURCE:=$(LOCAL_PATH)/ffmpeg
LOCAL_C_INCLUDES += $(PATH_TO_FFMPEG_SOURCE)
LOCAL_LDLIBS := -lffmpeg //需要调用的动态库
LOCAL_MODULE := mediaplayer //要编译出的动态库名
LOCAL_SRC_FILES := mediaplayer.c //要编译的C文件
include $(BUILD_SHARED_LIBRARY)
3.退回Android工程目录下,输入ndk-build,,开始编译。如未出错,则编译成功,在Android工程目录下自动生成libs目录,里面是编号的so库,注意要把libffmpeg.so库一起放到这个目录下。
注意:把ffmpeg源码全部放到jni目录下,因为在自己写的C文件里面要调用相应的头文件。
2.还是在jni目录中,编写Android.mk文件,格式如下(除了注释的三行根据自己需要修改,其他的都照抄,不用改)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
PATH_TO_FFMPEG_SOURCE:=$(LOCAL_PATH)/ffmpeg
LOCAL_C_INCLUDES += $(PATH_TO_FFMPEG_SOURCE)
LOCAL_LDLIBS := -lffmpeg //需要调用的动态库
LOCAL_MODULE := mediaplayer //要编译出的动态库名
LOCAL_SRC_FILES := mediaplayer.c //要编译的C文件
include $(BUILD_SHARED_LIBRARY)
3.退回Android工程目录下,输入ndk-build,,开始编译。如未出错,则编译成功,在Android工程目录下自动生成libs目录,里面是编号的so库,注意要把libffmpeg.so库一起放到这个目录下。
注意:把ffmpeg源码全部放到jni目录下,因为在自己写的C文件里面要调用相应的头文件。
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- AssetManager读取assets下多张图片资源输出到ImageView动画
- android 文件管理器的源码实现
- Android内存监测工具DDMS->Heap,内存分析工具->MAT
- Android平台基于Pull方式对XML文件解析及写入
- Android(安卓)使用【AIDL】调用外部服务