Coder Social home page Coder Social logo

androidffmpeg's Introduction

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.

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/appunite/AndroidFFmpeg.git

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
  • autoconf-archive
  • automake
  • pkg-config
  • git
  • svn

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

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 (only if) you have ssh key in appunite 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

download libyuv

# I hate svn too :)
svn checkout http://libyuv.googlecode.com/svn/trunk/ libyuv

setup freetype environemtn

cd freetype
./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/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so was created, otherwise you are in truble

build ndk jni library

ndk-build

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

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 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

androidffmpeg's People

Contributors

jacek-marchwicki avatar kwojtaszek avatar

Watchers

James Cloos 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.