Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: How to configure FFMPEG latest version in android studio?

I want to configure FFMPEG in android studio but i cant get any document or link for that. Github on many FFMPEG lib available for android but that all are with old version. And how to run command in android? and i want to know after configure FFMPEG then how can we run FFMPEG commands. Help me for that. thanks advance.

I have used below links but not success in for latest version.

http://writingminds.github.io/ffmpeg-android-java

https://github.com/WritingMinds/ffmpeg-android-java

https://github.com/havlenapetr/FFMpeg

https://github.com/appunite/AndroidFFmpeg

https://github.com/WritingMinds/ffmpeg-android

like image 713
Ravi Vaghela Avatar asked Mar 29 '16 07:03

Ravi Vaghela


People also ask

How do I combine two videos in android programmatically Ffmpeg?

ffmpeg -f concat -i mylist.txt -c copy output.mp4 This process is a way of concatenating the files and not re-encoding. Hence, it should be done speedily & conveniently. If there is no error message, you are sure to receive a final merged video named by 'output. mp4' in the MP4 folder.


2 Answers

The latest version of FFMPEG is 3.1.1, Just released before 12 days. So i think there is no readily available demo like this old one.

We need to build the FFMPEG library on our own. Some questions i found just pasting here that might help you. (Not tested)

How to Build FFmpeg for Android

  1. Compiling FFmpeg 2.3 with Android NDK r10
  2. How to compile ffmpeg-2.5.3 on windows with android-ndk-r10d
  3. How to compile ffmpeg-2.2.2 on windows with cygwin and android ndk r9c
  4. How to buid ffmpeg with android-ndk-r10d in windows

You need to compile it on your own the by downloading Android NDK & Latest Version of FFMPEG.

One tutorial is also there : How to Build FFmpeg for Android. This is quite old so you just need to change the versions mentioned here. For FFMPEG it will be 3.1.1 & NDK it will be r12b.


Building FFMPEG with NDK r12b:

  1. Download Android NDK : The latest version of Android NDK can be downloaded at Android NDK website. At the time of writing this answer, the newest version is NDK r12. simply decompress the archive

  2. Download ffmpeg source code : FFMPEG source code can be downloaded from the ffmpeg website. The latest stable release is 3.1.1 (at the time of writing). Download the source code and decompress it to $NDK/sources folder.

  3. Update configure file : Open ffmpeg-3.1.1/configure file with a text editor, and locate the following lines.

    SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)' 

    This cause ffmpeg shared libraries to be compiled to libavcodec.so. (e.g. libavcodec.so.55), which is not compatible with Android build system. Therefore we’ll need to replace the above lines with the following lines.

    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME) 
  4. Build ffmpeg : Copy the following text to a text editor and save it as build_android.sh in ffmpeg_3.1.1 folder.

        #!/bin/bash     NDK=$HOME/Desktop/adt/android-ndk-r9     SYSROOT=$NDK/platforms/android-9/arch-arm/     TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64     function build_one     {         ./configure             --prefix=$PREFIX             --enable-shared             --disable-static         --disable-doc                 --disable-ffmpeg             --disable-ffplay             --disable-ffprobe             --disable-ffserver             --disable-avdevice             --disable-doc             --disable-symver             --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-             --target-os=linux             --arch=arm             --enable-cross-compile             --sysroot=$SYSROOT             --extra-cflags="-Os -fpic $ADDI_CFLAGS"             --extra-ldflags="$ADDI_LDFLAGS"         $ADDITIONAL_CONFIGURE_FLAG         make clean         make         make install     }     CPU=arm     PREFIX=$(pwd)/android/$CPU     ADDI_CFLAGS="-marm"     build_one 

    Once the file is saved, go to the directory where this file lies & execute the command below,

    sudo chmod +x build_android.sh 

    Then execute the script by the command,

    ./build_android.sh 
  5. Build Output : The build can take a while to finish depending on your computer speed. Once it’s done, you should be able to find a folder $NDK/sources/ffmpeg-3.1.1/android, which contains arm/lib and arm/include folders.

  6. Make ffmpeg Libraries available for Your Projects

Steps above are fully tested and i performed them on my machine and the build was successful. For writing this answer i have took the reference from this article How to Build ffmpeg with NDK r9 but as it was for older version i have made some corrections on my own.

Open for asking any doubts.

like image 178
Janki Gadhiya Avatar answered Sep 22 '22 14:09

Janki Gadhiya


I suggest you these following URLs that was helpful for me :

http://androidwarzone.blogspot.in/2011/12/ffmpeg4android.html

http://writingminds.github.io/ffmpeg-android-java/

https://androiddeveloperhelp.wordpress.com/2015/12/19/video-editing-android-example/

For knowledge:

http://www.lai18.com/content/5175900.html

Android studio Source Code:

https://drive.google.com/file/d/0B9qAjo6wKhk9MEpNNjMxaG5oWXM/view?usp=sharing

It may be help you.

like image 29
parik dhakan Avatar answered Sep 20 '22 14:09

parik dhakan