`
CheshireCat
  • 浏览: 9658 次
社区版块
存档分类
最新评论

利用ndk编译ffmpeg

阅读更多

我 曾在网上搜了很多关ndk编译ffmpeg的文章,但大多千篇一律,如利用ffmpeg自带的configure.sh脚本自动生成makefile文 件,然后在编写Android.mk,引用makefile文件里面的某些变量,修改makefile文件,接着执行ndk-build命令。这些方法也 能编译成功,但总让我感觉不舒服,特别是拷贝一些不所云的命令。

为了找到更好的编译方法,我去参考了ndk自带的文档,其中有一篇STANDALONE-TOOLCHAIN.html,里面涉及了独立编译的方法,

原文引用
A typical use case if invoking the 'configure' script of an open-source
library that expects a cross-compiler in the CC environment variable.
那意思很明显我们可以用这种独立编译方法,编译一些由‘configure’脚本生成的开源库,这篇介绍了把ndk当成普通编译工具使用,比我我们在linux使用的gcc命令,其实ndk都为我们提供了,甚至ndk还为我们提供了make工具。

此外你还需要了解configure参数,你可以用./configrue --help ->help.txt 生成帮助文件。我的编译代码如下:

 

./configure \
--logfile=FILE \
--prefix='/home/wangzhiping/source/ffmpeg_ndk/release' \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--disable-doc \
--disable-programs \
--disable-avdevice \
--enable-small \
--cross-prefix='/home/wangzhiping/arm_android14_toolchain/bin/arm-linux-androideabi-' \
--enable-cross-compile \
--target-os=linux \
--extra-cflags='-I/home/wangzhiping/arm_android14_toolchain/sysroot/usr/include' \
--extra-ldflags='-L/home/wangzhiping/arm_android14_toolchain/sysroot/usr/lib' \
--arch=arm \
--disable-symver \
--disable-debug \
--disable-stripping \
--extra-cflags="-fPIC -DANDROID" \

logfile: 是输出日志一的文件名

prifix :在运行make install后,他会相应生成的库文件,及头文件拷贝的指定文件夹

cross-prefix:是你编译工具的前缀

extra-cflags:都是编译时候的选项,你在里面要提供头文件的位子

extra-ldflags:是连接时候的选项,要提供你库文件的件子

这些配置,你要参考 STANDALONE-TOOLCHAIN.htm ,你还可以自成由发挥,只要正确地指定 gcc,等编译工具和头文件以及链接库的位子即可, 比如你可以把extra-cflags和extra-ldflags去掉,而加sysroot先项,configure完成后,就运行make了

(未完待继)

1
0
分享到:
评论

相关推荐

    ubuntu下ndk编译ffmpeg0.8.1

    ubuntu下ndk编译ffmpeg0.8.1,详细介绍了如何将ffmpeg移植到linux下,生成的so动态链接库文件可以直接在android里使用。

    ndk编译ffmpeg修改后的configure文件

    ndk编译ffmpeg修改后的configure文件ndk编译ffmpeg修改后的configure文件ndk编译ffmpeg修改后的configure文件ndk编译ffmpeg修改后的configure文件

    用Android_NDK编译FFmpeg,RTSP手机视频

    ### 使用Android NDK编译FFmpeg与实现RTSP手机视频功能 #### 一、前言 随着移动设备处理能力的不断增强,越来越多的应用程序开始利用原生的C/C++代码来提高性能,尤其是在多媒体处理领域。FFmpeg是一款强大的跨平台...

    NDK编译ffmpeg中的数据格式转换资源

    在NDK中编译FFmpeg涉及以下步骤: 1. **下载与配置FFmpeg源码**:首先从FFmpeg官方网站获取最新源码,然后根据Android平台的需求配置编译选项,例如指定armeabi-v7a或arm64-v8a等架构。 2. **构建FFmpeg**:使用...

    在ndk9环境下编译ffmpeg

    2. 一个配置良好的Linux开发环境,因为NDK编译通常在Linux环境下进行,虽然也可以在其他系统上,但流程可能有所不同。 3. 获取FFmpeg源代码,可以通过访问FFmpeg官方网站或者使用Git克隆项目仓库来获取最新版本。 ...

    Android-NDK-clang 编译 FFmpeg 安卓设备能使用的FFmpeg库

    Ubuntu20系统,Android NDK-r21e 编译 FFmpeg4.2.4; 编译出libavcodec.so libavdevice.so、libavfilter.so、libavformat.so、libavutil.so、libswresample.so、libswscale.so;

    编译ffmpeg(ffmpeg6.0+android-ndk-r25c)生成的动态链接库.so文件

    编译FFmpeg需要NDK,这里使用的版本是r25c。 3. **环境配置** 在开始编译之前,确保已安装Android Studio,配置好NDK路径,并安装必要的构建工具如Git、CMake、Android SDK Platform Tools等。 4. **获取FFmpeg...

    ndk自带hello-jni工程测试ndk编译ffmpeg2.2的所有so库

    针对之前有的小伙伴说使用hello-jni测试 NDK-r9编译好的最新的FFmpeg2.2的所有so库和头文件 的时候。在使用cygwin编译jni的时候会报错:”undefined reference to 'avcodec_version'“ 的问题,所以现在把本人在...

    利用NDK将ffmpeg移植到android

    利用NDK,将FFMPEG移植到android平台 这个是一个完整的android工程,里面有编译好的ffmpeg库 环境: ubuntu 14.04 ffmpeg 2。5 android 4.1.2 android-ndk-r10d

    ndk编译ffmpeg0.10(Neon)的android.mk文件

    放在libffmpeg目录下的android.mk文件,根据Scott Wong给出的文档进行了修改,可以直接使用。另外还需要在Libavcodec、libavformat等目录下添加android.mk文件,libavcodec示例如下: LOCAL_PATH := $(call my-dir) ...

    zuocaijian#Notes#新版NDK编译ffmpeg简要说明1

    1、 生成(安装)交叉编译链工具 2、 生成配置文件 3、 编译 4、 安装

    Android 编译ffmpeg+测试工程

    通常使用Android Studio的CMakeLists.txt文件或者ndk-build脚本来编译FFmpeg源码。 4. **JNI接口**:在Android应用中调用FFmpeg库,需要通过Java Native Interface (JNI) 来创建C/C++与Java之间的桥梁。在JNI中定义...

    android-ffmpeg:用于使用Android NDK编译FFmpeg源代码的Android项目-android source code

    首先,要编译FFmpeg,你需要配置Android NDK环境。NDK包含了一系列工具,用于交叉编译针对不同Android架构的C/C++代码。在设置好NDK路径后,你需要修改项目中的build脚本来匹配你的Android平台版本和目标设备的CPU...

    利用ndk编译android的sh文件

    利用ndk编译android的sh文件,利用该sh文件,能够正确编译出so文件

    在Linux下编译FFmpeg+android ndk成功的脚本及so库

    本文将详细介绍如何在Linux系统下使用NDK编译FFmpeg,并生成适用于Android的.so库。主要涉及的知识点包括: 1. **FFmpeg框架**:FFmpeg提供了多种音视频编解码器,如H.264、AAC等,以及各种格式的容器支持,如MP4、...

    Android studio CMake 编译ffmpeg SO库 头文件 和 CMakeLists

    本文将详细讲解如何使用Android Studio和CMake编译FFmpeg库,生成SO共享库,并处理相关的头文件和CMakeLists配置。 首先,我们需要在Android Studio项目中引入CMake构建系统。打开`build.gradle`(Module级别)文件...

    android-ndk-r8b编译最新ffmpeg方法详解

    2. **编译FFmpeg**: a. 创建一个名为`config.sh`的配置脚本文件,其中包含了一系列的编译选项,如指定预构建工具链路径、目标平台、临时目录、配置选项等。这些选项用于定制FFmpeg编译,以适应Android环境,例如...

    ffmpeg-4.2.2(R19C.NDK编译过的库64位_arm-v8).7z

    上面的压缩包是通过R19C版本的NDK编译过的FFMPEG4.2.2的库。 压缩包里是完整的FFMPEG4.2.2源码,包含编译生成的文件目录。带有编译配置脚本。 里面的库可以直接在Android上使用。 库采用64位的编译器编译,适用于...

    ubuntu 下 编译 ffmpeg for Android armv7-a armv8-a

    在编译FFmpeg时,NDK提供了必要的编译器、链接器和其他工具,以及Android系统的头文件和库,以便我们构建针对Android的二进制文件。 7. **构建步骤**: 编译FFmpeg通常涉及以下步骤: - 安装依赖项:包括NDK、Java ...

Global site tag (gtag.js) - Google Analytics