Skip to content

FFmpeg build for android random architectures with example jni

License

Notifications You must be signed in to change notification settings

nxtreaming/AndroidFFmpeg

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AndroidFFmpegLibrary

This project aims to create working library providing playing and converting video files in android via ffmpeg libraries. We rather want to use ffmpeg library without modifications to facilitate updating of ffmpeg core.

Application screenshot

Info

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

Moved source code

I moved project source code to our company review system https://review.appunite.com because I am used to benefit from review systems like Gerrit. There you can find newest not yet accepted source code. If you do not care of newest source code or contributing software you can just use github where you can reaches accepted commits.

git clone https://review.appunite.com/androidffmpeg

or

git clone https://github.com/nxtreaming/AndroidFFmpeg.git

License

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

FFmpeg, libvo-aacenc, vo-amrwbenc, yuv2rgb 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
  • autoconf-archive
  • automake

on Debian/Ubuntu - you can use apt-get

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

Mac only

glibtoolize: because the Xcode 4.5.2 fails to supply glibtoolize, but freetype2 depends on it, just copy your 'libtoolize' to 'glibtoolize', Such as:

 sudo cp /usr/local/bin/libtoolize /usr/local/bin/glibtoolize

Installation

Before start

if you have a problem with certificate add GIT_SSL_NO_VERIFY=true before git submodule update line

GIT_SSL_NO_VERIFY=true  git submodule update

Im sorry about this certificate issue, but never is enough time to fix problems like those

If you have ssh key in our review system you should setup global alias in ~/.gitconfig file.

git config --global url.ssh://review.appunite.com.insteadOf https://review.appunite.com

Go to the work

downloading source code

git clone https://review.appunite.com/androidffmpeg AndroidFFmpeg
cd AndroidFFmpeg
git submodule init
git submodule sync #if you are updating source code
git submodule update
cd FFmpegLibrary
cd jni

setup freetype2 environemtn

cd freetype2
./autogen.sh
cd ..

setup fribidi environemtn

cd fribidi
autoreconf -ivf
cd ..

setup libass environemtn

cd libass
autoreconf -ivf
cd ..

setup vo-aacenc environment

cd vo-aacenc
autoreconf
cd ..

setup vo-amrwbenc environment

cd vo-amrwbenc
autoreconf
cd ..

build external libraries

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

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

build ndk jni library

ndk-build

build your project

android update lib-project -p FFmpegLibrary
android update project -p FFmpegExample
cd FFmpegExample
ant debug
ant installd

or create new projects from FFmpegLibrary and FFmpegExample source directories in your eclipse. Run FFmpegExample as your android project. If you have adt >= 20.0 you can click right mouse button on project and FFmpegLibrary project and "Android->Add native support".

More codecs

If you nead 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/libs/{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

About

FFmpeg build for android random architectures with example jni

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Assembly 44.1%
  • C 42.6%
  • Java 9.6%
  • Shell 2.5%
  • Other 1.2%