Giter VIP home page Giter VIP logo

ffmpeg-android-maker's Introduction

ffmpeg-android-maker

Build Status Android Weekly #378 Android Weekly #396

Here is a script that downloads the source code of FFmpeg library and assembles it for Android. The script produces shared libraries as well as header files. The output structure looks like this:

The actual content of all this directories depends on how the FFmpeg was configured before assembling. For my purpose I enabled only libavcodec, libavformat, libavutil and libswscale, but you can set your own configuration to make the FFmpeg you need.

The version of FFmpeg here by default is 4.2.2 (but can be overridden). And the script expects to use at least Android NDK r19 (both r20 and r21 also work ok).

The details of how this script is implemented are described in this series of posts:

The WIKI contains a lot of useful information.

Actual Android app that uses the output of the script can be found here.

Supported Android ABIs

  • armeabi-v7a (with NEON)
  • arm64-v8a
  • x86
  • x86_64

Supported host OS

On macOS or Linux just execute the script in terminal.

It is also possible to execute this script on a Windows machine with MSYS2. You also need to install specific packages to it: make, git, diffutils and tar. The script supports both 32-bit and 64-bit versions of Windows. Also see Prerequisites section for necessary software.

Since v2.0.0 the Windows support is temporary absent.

Prerequisites

You have to define two environment variables:

  • ANDROID_SDK_HOME - path to your Android SDK
  • ANDROID_NDK_HOME - path to your Android NDK

Also, if you want to build libaom, then you have to install the cmake;3.10.2.4988404 package via Android SDK.

For libdav1d building you also need to install ninja and meson 0.52.1 tools.

Features

Add an arbitrary external library that FFMpeg supports to the building process. Just specify how the source code needs to be downloaded and how to perform the build operation. More about this is here.

Setting your own FFmpeg version and origin. You can actually override the version of FFmpeg used by the script. See details here.

Test your script in a cloud. This repository has CI integration and you can use it too for your own configurations. See details here.

Text relocations monitoring. After an assembling is finished you can look into stats/text-relocations.txt file. That file lists all *.so files that were built and reports if any of them have text relocations. If you don't see any mentioning of 'TEXTREL' in the file, you are good. Otherwise, you will see exact binaries that have this problem.

ffmpeg-android-maker's People

Contributors

javernaut avatar steveatinfincia avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.