• Stars
    star
    1,073
  • Rank 43,114 (Top 0.9 %)
  • Language
    C
  • License
    Apache License 2.0
  • Created over 12 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[DEPRECATED] FFmpeg build for android random architectures with example jni

AndroidFFmpegLibrary

This project aims to create working library providing playing video files in android via ffmpeg libraries. With some effort and NDK knowledge you can use this ffmpeg libraries build to convert video files. We rather want to use ffmpeg library without modifications to facilitate updating of ffmpeg core.

Application screenshot

This project aim to simplify compilation of FFmpeg for android different architectures to one big apk file.

I'm afraid this project is not prepared for android beginners - build it and using it requires some NDK skills.

Build Status

License

Copyright (C) 2012 Appunite.com Licensed under the Apache License, Verision 2.0

FFmpeg, libvo-aacenc, vo-amrwbenc, libyuv and others libraries projects are distributed on theirs own license.

Patent disclaimer

We do not grant of patent rights. Some codecs use patented techniques and before use those parts of library you have to buy thrid-party patents.

Pre-requirments

on mac: you have to install xcode and command tools from xcode preferences you have to install (on mac you can use brew command from homebrew): you have to install:

  • autoconf
  • libtool
  • make
  • autoconf-archive
  • automake
  • pkg-config
  • git

on Debian/Ubuntu - you can use apt-get

on Mac - you can use tool brew from homebrew project. You have additionally install xcode.

Bug reporting and questions

Please read instruciton very carefully. A lot of people had trouble because they did not read this manual with attention. If you have some problems or questions do not send me emails. First: look on past issues on github. Than: try figure out problem with google. If you did not find solution then you can ask on github issue tracker.

Installation

Go to the work

downloading source code

git clone --recurse-submodules https://github.com/appunite/AndroidFFmpeg.git AndroidFFmpeg
cd AndroidFFmpeg
git submodule init
git submodule sync #if you are updating source code
git submodule update
cd library-jni
cd jni

download libyuv and configure libs

./fetch.sh

build external libraries Download r8e ndk: https://dl.google.com/android/ndk/android-ndk-r8e-darwin-x86_64.tar.bz2 or ttps://dl.google.com/android/ndk/android-ndk-r8e-linux-x86_64.tar.bz2 Now it should also support r10e

export ANDROID_NDK_HOME=/your/path/to/android-ndk
./build_android.sh

make sure that files library-jni/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

build ndk jni library (in library-jni directory)

export PATH="${PATH}:${ANDROID_NDK_HOME}"
ndk-build

make sure that files library-jni/libs/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

build your project

./gradlew build

More codecs

If you need more codecs:

  • edit build_android.sh

  • add more codecs in ffmpeg configuration section

  • remove old ffmpeg-build directory by

      rm -r ffmpeg-build
    
  • build ffmpeg end supporting libraries

      ./build_android.sh
    

    During this process make sure that ffmpeg configuration goes without error.

    After build make sure that files FFmpegLibrary/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

  • build your ndk library

      ndk-build
    
  • refresh your FFmpegLibrary project in eclipse!!!!

  • build your FFmpegExample project

Credits

Library made by Jacek Marchwicki from Appunite.com

More Repositories

1

CLCascade

Twitter-like cascade UI library
Objective-C
508
star
2

docker

Dockerfile's for building Android
Shell
120
star
3

mockery

Simple mocking library for asynchronous testing in Elixir.
Elixir
91
star
4

AUMediaPlayer

AUMediaPlayer is a nice high level API for audio and video playback, both from network stream and local files.
Objective-C
71
star
5

imager

Image processing proxy
Elixir
61
star
6

Stefan

A guy that helps you manage collections and placeholders in easy way.
Swift
47
star
7

video-player-android

Video player activity using exoplayer
Java
22
star
8

link_preview

Link preview elixir library
Elixir
19
star
9

beam_inspect

Inspect how your elixir module looks like in erlang / core erlang.
Elixir
18
star
10

Loudius

Kotlin
13
star
11

flutter-global-gamers-challenge

Dart
13
star
12

Spy

Spy is a flexible, lightweight, multiplatform logging utility written in pure Swift. It allows to log with different levels and on different channels. You can define what levels and channels actually are.
Swift
12
star
13

Cedric

Single / multiple files downloader written in pure Swift
Swift
11
star
14

piper

Pipe your data down. Similar to `Phoenix.Router` & `Plug` data management
Elixir
9
star
15

absence-bot

AppUnite's chatbot that improve our internal process of taking absence
Objective-C
9
star
16

conductor

Simple elixir package for authorization
Elixir
8
star
17

AndroidListViewBackport

Backport of new ListView, GridView, new HorizontalListView
Java
8
star
18

flutter_tutorial

Flutter package to create smooth flutter tutorials
Dart
6
star
19

bruno-ios

This simple lib helps you to represent image in RGB565 format
Swift
6
star
20

daily-pulse

Jupyter Notebook
6
star
21

android-placeholders-validator

Gradle plugin which validates placeholders from translated strings.xml files by comparing them with main strings.xml file.
Kotlin
6
star
22

MockWebServer-Extensions

Kotlin
6
star
23

google-api-objectivec-client

Google APIs Client Library for Objective-C (svn mirror)
Objective-C
5
star
24

Palmyra

Command line tool that lets you validate your Localizable.strings files.
Swift
5
star
25

proto_response

Asserts the given status code, that we have an application/x-protobuf response and returns the decoded Protobuf
Elixir
4
star
26

RxStefan

RxSwift extensions for Stefan
Swift
4
star
27

flutter_ci_example

Dart
3
star
28

AndroidAUScaleImage

AUScaleImage is library is designed to create image view that can be scalled via fingers.
Java
3
star
29

gdata-objectivec-client

unofficial
Objective-C
3
star
30

AndroidAUContentProvider

Java
3
star
31

shipping

Example event-driven application
Elixir
3
star
32

slack-stats

Tool that helps calculate stats through slack channels
Python
2
star
33

terraform-modules

HCL
2
star
34

gtm-http-fetcher

unofficial
Objective-C
2
star
35

libwebp

C
2
star
36

fibs

Swift
2
star
37

slack_greeting

Sends a notification on slack when application starts
Elixir
2
star
38

pronto-android_lint

Pronto runner for android lint
Ruby
2
star
39

hackathonFYF

Objective-C
1
star
40

reverso

Elixir
1
star
41

flutter_riskified

Flutter plugin for Riskified SDK
Dart
1
star
42

AUAccount

AUAccount is simple class that help to manage user's account assing to application
Objective-C
1
star
43

rollbar_plug

Plug for notifying exceptions to rollbar
Elixir
1
star
44

AUPageScrollView

Objective-C
1
star
45

TicketMachines

Objective-C
1
star
46

BRNImagePickerSheet

Swift
1
star
47

leveldb-swift

Swift LevelDB wrapper
1
star
48

AUModalController

Objective-C
1
star
49

cocoapods-private

cocoapods-private
Ruby
1
star
50

appunite_internal_app

Dart
1
star
51

sourcery-templates

Set of Sourcery templates used @AppUnite
1
star
52

AndroidAUSyncer

Java
1
star
53

gtm-oauth2

unofficial
Objective-C
1
star