All Projects → Javernaut → Ffmpeg Android Maker

Javernaut / Ffmpeg Android Maker

Licence: mit
Contains a script that assembles FFmpeg library for Android

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Ffmpeg Android Maker

FFmpeg-3.4-Android
This repository helps to compile FFmpeg 3.4 Version for Android using Android NDK Standalone Toolchain.
Stars: ✭ 23 (-88.89%)
Mutual labels:  ffmpeg, ndk, ffmpeg-android
AudioManager
这是一个 Android 端万能音频播放器,只要给我一个路径我就能进行播放。
Stars: ✭ 26 (-87.44%)
Mutual labels:  ffmpeg, ndk
Fanplayer
A portable video player based on ffmpeg for windows and android platform.
Stars: ✭ 229 (+10.63%)
Mutual labels:  ffmpeg, ffmpeg-android
Ffmpeg Android Java
FFmpeg Android java is a java library that simplifies your task of using ffmpeg in Android project which I've compiled using FFmpeg-Android
Stars: ✭ 3,098 (+1396.62%)
Mutual labels:  ffmpeg, ffmpeg-android
NaraeAudioRecorder
AudioRecorder for Android powered by Kotlin
Stars: ✭ 82 (-60.39%)
Mutual labels:  ffmpeg, ffmpeg-android
Ffplayer
a video player based on ffmpeg for win32 and android platform.
Stars: ✭ 210 (+1.45%)
Mutual labels:  ffmpeg, ffmpeg-android
Rxffmpeg
🔥💥RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能
Stars: ✭ 3,358 (+1522.22%)
Mutual labels:  ffmpeg, ffmpeg-android
Android Video Trimmer
Android-Video-Trimmer项目实现了对长短视频进行片段的裁剪选择。使用MediaMetadataRetriever获取视频帧,采用ffmpeg进行视频裁剪,和视频压缩。
Stars: ✭ 824 (+298.07%)
Mutual labels:  ffmpeg, ffmpeg-android
Ffmpeg Android
FFMpeg/FFprobe compiled for Android
Stars: ✭ 592 (+185.99%)
Mutual labels:  ffmpeg, ffmpeg-android
Ffmpegandroid
最新版ffmpeg3.3-android,并通过CMake方式移植到Android中,并实现编解码,转码,推拉流,滤镜等各种功能
Stars: ✭ 526 (+154.11%)
Mutual labels:  ffmpeg, ffmpeg-android
Ffmpeg Video Editor Android
Sample android project using ffmpeg for cutting and compressing video,reversing video,extracting image frames from video,extracting audio from video,add fade in fade out effect,create fast and slow motion video
Stars: ✭ 414 (+100%)
Mutual labels:  ffmpeg, ffmpeg-android
Ffmpegandroidlibrary
One line integration for FFMPEG Library in Android
Stars: ✭ 88 (-57.49%)
Mutual labels:  ffmpeg, ffmpeg-android
Bzijkplayer
基于cmake构建的ijkPlayer
Stars: ✭ 23 (-88.89%)
Mutual labels:  ffmpeg, ffmpeg-android
Kotlinffmpeg
Examples of using FFMpeg library on Android with Kotlin
Stars: ✭ 138 (-33.33%)
Mutual labels:  ffmpeg, ffmpeg-android
Online Video Editor
API based Online Video Editing using FFMPEG & NodeJs for Backend Editing
Stars: ✭ 176 (-14.98%)
Mutual labels:  ffmpeg
Ffmpegrecorder
An Android video recorder using JavaCV and FFmpeg.
Stars: ✭ 184 (-11.11%)
Mutual labels:  ffmpeg
Caincamera
CainCamera is an Android Project to learn about development of beauty camera, image and short video
Stars: ✭ 2,397 (+1057.97%)
Mutual labels:  ffmpeg
Puppeteer Recorder
Record animations using puppeteer. Based on electron-recorder.
Stars: ✭ 169 (-18.36%)
Mutual labels:  ffmpeg
Puppeteer Lottie
Renders Lottie animations via Puppeteer to image, GIF, or MP4.
Stars: ✭ 208 (+0.48%)
Mutual labels:  ffmpeg
Weixinrecordeddemo
仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑
Stars: ✭ 2,197 (+961.35%)
Mutual labels:  ffmpeg

ffmpeg-android-maker

Codacy Badge Compilability check 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 (*.so files) as well as header files (*.h files). The output structure is represented in the image.

The script also produces ffmpeg and ffprobe executables that can be used in Android's terminal directly or can even be embedded into an Android app. They can be found in build directory after the successful build.

The main focus of ffmpeg-android-maker is to prepare shared libraries for seamless integration into an Android project. The script prepares the output directory that is meant to be used. And it's not the only thing this project does.

By default this script downloads and builds the FFmpeg 4.3.1, but the version can be overridden.

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

The WIKI contains a lot of useful information.

Customization

The actual content of output directory depends on how the FFmpeg was configured before assembling. The master branch of ffmpeg-android-maker builds 'vanilla' version of FFmpeg. This means all default components and shared libraries are built (according to the image).

The what-the-codec branch contains certain customizations in build scripts of FFmpeg and certain external libraries. These customizations are meant to be an example of how this project can be tuned to obtain the only functionality that is actually needed. What is actually customized can be seen here.

The WhatTheCodec Android app uses only a subset of FFmpeg's functionality, so the redundant parts are not even compiled. This gives much smaller output binaries.

Also there are a lot of arguments that you can pass to the ffmpeg-android-maker.sh script for tuning certain features. Check this WIKI page out for more info.

Supported Android ABIs

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

If you need to build only some of these ABIs, you can do so by specifying a flag.

Supported host OS

Regardless of the OS you use, you need to setup it before executing the script. Please follow the instructions in Requirements section.

On macOS and Linux the script is supported natively. Just execute it script in the terminal.

On Windows 10 you can use WSL technology to install Ubuntu 20.04 LTS app. Then follow the Linux way of executing the script. Note that you will need to manually install exactly Linux versions of Android SDK and NDK into your Linux subsystem. The Dockerfile may help to understand how to do the setup.

Also on any OS you can use Docker tool to execute the script. Check this WIKI page out to understand benefits of this approach.

Requirements

The script assumes you have Android SDK and NDK already installed. In order to tell the script their locations you have to define 2 environment variables:

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

The script expects to use at least Android NDK r19 (both r20 and r21 also work ok).

Certain external libraries require additional software to be installed. Check this WIKI page out for more info. Note that if you don't need these external libraries then you also don't need to install the additional software. These external libraries are not built by default.

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. This file lists all *.so files that were built and reports if any of them has 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. The Github Actions' Compilability check build will automatically fail if text relocations occur.

License

The ffmpeg-android-maker's source code is available under the MIT license. See the LICENSE.txt file for more details.

However, the binaries that are produced have different license. The FFmpeg itself is under LGPL 2.1. Enabling certain external libraries (like libx264) changes the license to be GPL 2 or later.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].