当前位置: 首页 > 知识库问答 >
问题:

使用最新版本的FFMPEG+Android包装器

濮阳振
2023-03-14

我试图编译FFMPEG与我的Android应用程序。我已经查看了:https://github.com/halfninja/android-ffmpeg-x264,这几乎是我想要的,但我需要FFMPEG的更新版本(所以我尝试使用最新的2.2)。

我正在使用那里的大部分脚本,但问题是在运行compile_make_everything.sh之后,我试图运行ndk-build,但我得到了错误(基本上它找不到ffmpeg.c中的main函数)。

这是我的Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

#LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
LOCAL_MODULE  := videokit
LOCAL_SRC_FILES := videokit/com_myapp_example_FFMpegService.c 

LOCAL_LDLIBS := -llog -ljnigraphics -lz -landroid

LOCAL_STATIC_LIBRARIES :=ffmpeg

include $(BUILD_SHARED_LIBRARY)
$(call import-module,ffmpeg-2.0.1/android/arm)

我如何包含最新的ffmpeg库,同时仍然能够调用main函数?

共有1个答案

范侯林
2023-03-14

添加LOCAL_C_INCLUDES+=$(LOCAL_PATH)/ffmpeg可能会有所帮助。

但是,你会有更多的麻烦。基本上,videokit目录中的ffmpeg.c是ffmpeg源代码中原始目录的副本,但它被稍微修改了一下,以不终止和清理重复使用,以及使用android日志功能。在构建videokit库时,不是在ffmpeg/ffmpeg.c中链接,而是链接修改后的videokit/ffmpeg.c。

您面临的问题是,您已经更新了ffmpeg目录中的所有源代码(以及该目录下的所有libav*库),但您仍然试图将旧的videokit/ffmpeg.c从0.x链接到那些新的2.x源代码。你可以想象,它改变了一点。

 类似资料:
  • 我想在android studio中配置,但我无法获得任何文档或链接。Github在许多可用于android的lib上,但都是旧版本。以及如何在Android中运行命令?我想知道在配置之后,如何运行命令。帮帮我。提前谢谢。

  • 本文向大家介绍使用npm安装最新版本nodejs,包括了使用npm安装最新版本nodejs的使用技巧和注意事项,需要的朋友参考一下 # 安装 nodejs  以下介绍的是命令行安装方法,读者也可以到 nodejs官网 上下载安装最新版。 升级npm为最新版本 sudo npm install npm@latest -g 往往用命令行安装的nodejs不是最新版本,而且升级nodejs并不是件非常简

  • 最近我和Laravel一起工作。我使用作曲家来安装包和工匠的命令。 问题是我的机器使用的是Laravel 5.4而不是5.7。 当我运行phpinfo()时,结果是PHP版本7.2.7。您是否认为问题在于我没有使用最新版本的xampp,其中包含PHP7?

  • 虽然我有一个更新的android studio,我得到以下错误,但我不能找到Gradle4.1在gradle文件夹,但当我检查文件->项目结构->gradle插件是4。 我的建筑档案是这个。我设置为23,因为我需要在5.0.1手机上运行它。

  • 问题内容: 是否可以在启动Android应用程序时检查用户是否具有该应用程序的最新版本,如果没有,则强制他进行更新?或者至少检查是否有新版本并告诉他,该应用程序只有在他下载并安装更新后才能再次运行? 背景是我有一个需要与服务器通信的应用程序。当我在服务器和客户端之间的界面中更改某些内容时,我想确保客户端具有最新版本。 有任何本地方法可以做到这一点吗?还是我必须自己检查一下? 仅当您具有mysql数

  • Android Studio建议在构建工作流程中使用gradle包装器。但是,如果您使用git进行版本控制,. jar文件会被忽略,并且据说不会签入,这是我得到的。但我的工作流程与普通人有点不同。我们也同时使用Team Foundation Server和git。使用自定义MSBuildTask调用gradle构建。这是我的. gitignore文件的样子: 它目前的工作方式是,首先我们将TFS和