[] FFmpeg build for android random architectures with example jni

Overview

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

Comments
  • player_set_data_source Could not open video file

    player_set_data_source Could not open video file

    when using the binaries from the download section, the example project fails with this error: 11-12 09:22:08.169: E/player.c(13884): player_set_data_source Could not open video file: /storage/sdcard0/video.avi (-1094995529: Invalid data found when processing input)

    opened by jacobhub 14
  • Avoid hangs in Blocking functions

    Avoid hangs in Blocking functions

    Sometimes the player hangs in:

    avformat_find_stream_info()
    

    Thus it's impossible to quit app.

    To avoid this, it's possible to add callback functions with AVIOInterruptCB forcing blocking calls to return 1.

    https://projects.savoirfairelinux.com/issues/13116 http://stackoverflow.com/questions/10666242/detecting-a-timeout-in-ffmpeg http://ffmpeg.org/doxygen/trunk/structAVIOInterruptCB.html

    bug 
    opened by myrmidon-media 11
  • Playing video without audio

    Playing video without audio

    Great job with this project by the way, I was able to fairly easily integrate the player into an App. I'm trying to use it mainly to process mpeg2 TS streams. Some files of the mpeg2 TS format play fine, some don't. Below is a partial logcat of a file that won't play, I wonder if anything jumps out that could shed some light on why it won't play. The App error is "Could not open stream (FFmpegPlayer error -1).

    The logcat is below:

    V/ffmpeg ( 2058): Non-increasing DTS in stream 0: packet 148 with DTS 20447427, packet 149 with DTS 20447427 I/ffmpeg ( 2058): Current profile doesn't provide more RBSP data in PPS, skipping V/ffmpeg ( 2058): first_dts 20027007 not matching first dts 19993974 in que V/ffmpeg ( 2058): first_dts 20027007 not matching first dts 19993974 in que V/ffmpeg ( 2058): first_dts 20027007 not matching first dts 19993974 in que V/ffmpeg ( 2058): first_dts 20027007 not matching first dts 19993974 in que V/ffmpeg ( 2058): Non-increasing DTS in stream 0: packet 152 with DTS 20462442, packet 153 with DTS 20462442 V/ffmpeg ( 2058): first_dts 20027007 not matching first dts 19993974 in que V/ffmpeg ( 2058): Non-increasing DTS in stream 0: packet 153 with DTS 20462442, packet 154 with DTS 20462442 I/ffmpeg ( 2058): Current profile doesn't provide more RBSP data in PPS, skipping V/ffmpeg ( 2058): first_dts 20027007 not matching first dts 19993974 in que E/ffmpeg ( 2058): max_analyze_duration 5000000 reached at 5005000 E/ffmpeg ( 2058): Could not find codec parameters for stream 1 (Unknown: none ([6][0][0][0] / 0x0006)): unknown codec E/ffmpeg ( 2058): Consider increasing the value for the 'analyzeduration' and 'probesize' options V/ffmpeg ( 2058): File position after avformat_find_stream_info() is 0 W/ffmpeg ( 2058): Input #0, mpegts, from 'file:///mnt/sdcard/Download/RAVENH264.ts': W/ffmpeg ( 2058): Duration: W/ffmpeg ( 2058): 00:01:52.81 W/ffmpeg ( 2058): , start: W/ffmpeg ( 2058): 222.155267 W/ffmpeg ( 2058): , bitrate: W/ffmpeg ( 2058): 2845 kb/s W/ffmpeg ( 2058): W/ffmpeg ( 2058): Program 1 W/ffmpeg ( 2058): Stream #0:0 W/ffmpeg ( 2058): [0x11] V/ffmpeg ( 2058): , 155, 1/90000 W/ffmpeg ( 2058): : Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 1001/60000 W/ffmpeg ( 2058): , 30.58 fps W/ffmpeg ( 2058): , 29.97 tbr W/ffmpeg ( 2058): , 90k tbn W/ffmpeg ( 2058): , 59.94 tbc W/ffmpeg ( 2058): W/ffmpeg ( 2058): Stream #0:1 W/ffmpeg ( 2058): [0x21] V/ffmpeg ( 2058): , 51, 1/90000 W/ffmpeg ( 2058): : Unknown: none ([6][0][0][0] / 0x0006) W/ffmpeg ( 2058): I/player.c( 2058): player_set_data_source Number of streams: 2 I/player.c( 2058): - stream: 0 I/player.c( 2058): -- metadata: I/player.c( 2058): -- codec_name: I/player.c( 2058): -- codec_type: video I/player.c( 2058): - stream: 1 I/player.c( 2058): -- metadata: I/player.c( 2058): -- codec_name: I/player.c( 2058): -- codec_type: other I/player.c( 2058): player_find_stream, type: 0 I/player.c( 2058): player_open_stream trying open: 28 V/ffmpeg ( 2058): detected 2 logical cores I/player.c( 2058): player_open_stream opened: 28 I/player.c( 2058): player_set_data_source 4 I/player.c( 2058): player_set_data_source Video size is [720 x 480] I/player.c( 2058): player_find_stream, type: 1 I/player.c( 2058): player_set_data_source error I/player.c( 2058): player_set_data_source close_file V/ffmpeg ( 2058): Statistics: 3035280 bytes read, 3 seeks

    I/player.c( 2058): player_set_data_source end

    Based on the above logcat, is there any light you can shed on cause of error and/or potential fixes ?

    Also I expect some of the TS streams will have multiple/many errors, is there anything that can be done to allow greater tolerance for streams with errors ?

    Thanks for your time and attention on this!

    enhancement wontfix 
    opened by Rrod8607 11
  • LOCAL_SRC_FILES points to a missing file

    LOCAL_SRC_FILES points to a missing file

    /FFmpegLibrary$ /home/appaspect/android-ndk-r8b/ndk-build Android NDK: ERROR:jni/yuv2rgb/Android.mk:ffmpeg-prebuilt: LOCAL_SRC_FILES points to a missing file
    Android NDK: Check that jni/yuv2rgb/ffmpeg-build/armeabi/libffmpeg.so exists or that its path is correct
    android-ndk-r8b/build/core/prebuilt-library.mk:43: *** Android NDK: Aborting . Stop.

    opened by Darasaini 11
  • Error: selected processor does not support ARM mode

    Error: selected processor does not support ARM mode

    Using NDK: android-ndk-r8d

    Mac OSX 10.8.2

    Doing pretty good on compile up until this part. Trying to look into it.

    CC  libavcodec/ac3dsp.o
    {standard input}: Assembler messages:
    {standard input}:9965: Error: selected processor does not support ARM mode `ubfx r7,r2,#0,#4'
    {standard input}:9966: Error: selected processor does not support ARM mode `ubfx r8,r2,#4,#4'
    {standard input}:10154: Error: selected processor does not support ARM mode `ubfx r0,r3,#0,#4'
    {standard input}:10155: Error: selected processor does not support ARM mode `ubfx r8,r3,#4,#4'
    {standard input}:10317: Error: selected processor does not support ARM mode `ubfx r2,fp,#0,#2'
    {standard input}:10318: Error: selected processor does not support ARM mode `ubfx r7,fp,#2,#2'
    {standard input}:10320: Error: selected processor does not support ARM mode `ubfx r8,fp,#4,#2'
    {standard input}:10322: Error: selected processor does not support ARM mode `ubfx r9,fp,#6,#2'
    {standard input}:10327: Error: selected processor does not support ARM mode `rbit sl,sl'
    {standard input}:10494: Error: selected processor does not support ARM mode `ubfx r8,r2,#0,#2'
    {standard input}:10495: Error: selected processor does not support ARM mode `ubfx r9,r2,#2,#2'
    {standard input}:10497: Error: selected processor does not support ARM mode `ubfx sl,r2,#4,#2'
    {standard input}:10499: Error: selected processor does not support ARM mode `ubfx fp,r2,#6,#2'
    CC  libavcodec/ac3tab.o
    CC  libavcodec/acelp_filters.o
    CC  libavcodec/acelp_pitch_delay.o
    CC  libavcodec/acelp_vectors.o
    make: *** [libavcodec/aacdec.o] Error 1
    make: *** Waiting for unfinished jobs....
    
    bug 
    opened by pctj101 10
  • unable to checkout x264

    unable to checkout x264

    Hi, I like this project but I am not able to checkout x264. I got this error in "git submodule update" stage. Could you update the git x264 repository? Thanks.

    Submodule path 'FFmpegLibrary/jni/vo-amrwbenc': checked out '6ffcea9040b23bde4741cac182f563f56bde4379' Cloning into 'FFmpegLibrary/jni/x264'... remote: Counting objects: 18269, done. remote: Compressing objects: 100% (3409/3409), done. remote: Total 18269 (delta 15072), reused 18000 (delta 14818) Receiving objects: 100% (18269/18269), 4.34 MiB | 503.00 KiB/s, done. Resolving deltas: 100% (15072/15072), done. Checking connectivity... done. fatal: reference is not a tree: 999b753ff0f4dc872077f4fa90d465e948cbe656 Unable to checkout '999b753ff0f4dc872077f4fa90d465e948cbe656' in submodule path 'FFmpegLibrary/jni/x264' shalina@shalina-Inspiron-1720:~/test/AndroidFFmpeg$ ls -al

    Thanks Shalina

    opened by shalinashiyan 9
  • jni_player_seek problem

    jni_player_seek problem

    Hi,

    First of all thanks for creating this custom library. Its really great and easy to use.

    I was working in a simple player where I need to play small videos whose length is around 5 - 20 secs. Video is playing fine but when I try for seeking in my seekbar by calling seekNative it's not working. Means it is not returning the video frames. I have tried for a long duration video of 15 min. The seek bar works in this case after seeking a video around 30-60 secs forward. Is there any fixed time duration mentioned for video seeking ?

    Could you please help me out how can I achieve the video seeking task for small length videos using AndroidFFMPEG library.

    opened by soumyarout 9
  •  C compiler cannot create executables

    C compiler cannot create executables

    Hi, I'm not sure if you are available but i have similar issue as https://github.com/appunite/AndroidFFmpeg/issues/1 when compiling vo-amrwbenc for arm

    I have NDK r8e on Ubuntu, I tried to find and change path with no luck.Which version of NDK you have used in your documentation? May be I can download and try with that

    here are some details

    Error is

    administrator@ubuntu:~/AndroidFFmpeg/FFmpegLibrary/jni$ ./build_android.sh checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-linux-strip... /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking how to create a ustar tar archive... gnutar checking whether make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking build system type... x86_64-unknown-linux-gnu checking host system type... arm-unknown-linux-gnu checking for style of include used by make... GNU checking for arm-linux-gcc... /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/ checking whether the C compiler works... no configure: error: in /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc': configure: error: C compiler cannot create executables Seeconfig.log' for more details administrator@ubuntu:~/AndroidFFmpeg/FFmpegLibrary/jni$

    config log is

    This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake.

    It was created by vo-amrwbenc configure 0.1.2, which was generated by GNU Autoconf 2.69. Invocation command line was

    $ ./configure --prefix=/home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/../ffmpeg-build/armeabi --host=arm-linux --disable-dependency-tracking --disable-shared --enable-static --with-pic

    ---------

    Platform.

    ---------

    hostname = ubuntu uname -m = x86_64 uname -r = 3.5.0-17-generic uname -s = Linux uname -v = #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012

    /usr/bin/uname -p = unknown /bin/uname -X = unknown

    /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown

    PATH: /usr/lib/lightdm/lightdm PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH: /usr/bin PATH: /sbin PATH: /bin PATH: /usr/games PATH: /usr/local/games PATH: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/

    -----------

    Core tests.

    -----------

    configure:2186: checking for a BSD-compatible install configure:2254: result: /usr/bin/install -c configure:2265: checking whether build environment is sane configure:2315: result: yes configure:2364: checking for arm-linux-strip configure:2391: result: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip configure:2456: checking for a thread-safe mkdir -p configure:2495: result: /bin/mkdir -p configure:2508: checking for gawk configure:2538: result: no configure:2508: checking for mawk configure:2524: found /usr/bin/mawk configure:2535: result: mawk configure:2546: checking whether make sets $(MAKE) configure:2568: result: yes configure:2643: checking how to create a ustar tar archive configure:2656: tar --version tar (GNU tar) 1.26 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

    Written by John Gilmore and Jay Fenlason. configure:2659: $? = 0 configure:2699: tardir=conftest.dir && eval tar --format=ustar -chf - "$tardir" >conftest.tar configure:2702: $? = 0 configure:2706: tar -xf - <conftest.tar configure:2709: $? = 0 configure:2722: result: gnutar configure:2740: checking whether make supports nested variables configure:2757: result: yes configure:2771: checking whether to enable maintainer-specific portions of Makefiles configure:2780: result: no configure:2799: checking build system type configure:2813: result: x86_64-unknown-linux-gnu configure:2833: checking host system type configure:2846: result: arm-unknown-linux-gnu configure:2929: checking for style of include used by make configure:2957: result: GNU configure:2988: checking for arm-linux-gcc configure:3015: result: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/ configure:3284: checking for C compiler version configure:3293: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/ --version >&5 ./configure: line 3295: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory configure:3304: $? = 127 configure:3293: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/ -v >&5 ./configure: line 3295: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory configure:3304: $? = 127 configure:3293: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/ -V >&5 ./configure: line 3295: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory configure:3304: $? = 127 configure:3293: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/ -qversion >&5 ./configure: line 3295: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory configure:3304: $? = 127 configure:3324: checking whether the C compiler works configure:3346: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/ -marm -march=armv5 -marm -march=armv5 -Wl,-rpath-link=/home/administrator/AndroidNDK/platforms/android-5/arch-arm//usr/lib -L/home/administrator/AndroidNDK/platforms/android-5/arch-arm//usr/lib -nostdlib -lc -lm -ldl -llog conftest.c >&5 ./configure: line 3348: /home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory configure:3350: $? = 127 configure:3388: result: no configure: failed program was: | /* confdefs.h / | #define PACKAGE_NAME "vo-amrwbenc" | #define PACKAGE_TARNAME "vo-amrwbenc" | #define PACKAGE_VERSION "0.1.2" | #define PACKAGE_STRING "vo-amrwbenc 0.1.2" | #define PACKAGE_BUGREPORT "http://sourceforge.net/projects/opencore-amr/" | #define PACKAGE_URL "" | #define PACKAGE "vo-amrwbenc" | #define VERSION "0.1.2" | / end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:3393: error: in /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc': configure:3395: error: C compiler cannot create executables Seeconfig.log' for more details

    ----------------

    Cache variables.

    ----------------

    ac_cv_build=x86_64-unknown-linux-gnu ac_cv_env_CCASFLAGS_set= ac_cv_env_CCASFLAGS_value= ac_cv_env_CCAS_set= ac_cv_env_CCAS_value= ac_cv_env_CC_set=set ac_cv_env_CC_value='/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/' ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-marm -march=armv5' ac_cv_env_CPPFLAGS_set=set ac_cv_env_CPPFLAGS_value='-marm -march=armv5' ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_LDFLAGS_set=set ac_cv_env_LDFLAGS_value='-Wl,-rpath-link=/home/administrator/AndroidNDK/platforms/android-5/arch-arm//usr/lib -L/home/administrator/AndroidNDK/platforms/android-5/arch-arm//usr/lib -nostdlib -lc -lm -ldl -llog' ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set=set ac_cv_env_host_alias_value=arm-linux ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_host=arm-unknown-linux-gnu ac_cv_path_install='/usr/bin/install -c' ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=mawk ac_cv_prog_CC='/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/' ac_cv_prog_STRIP=/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip ac_cv_prog_make_make_set=yes am_cv_make_support_nested_variables=yes am_cv_prog_tar_ustar=gnutar

    -----------------

    Output variables.

    -----------------

    ACLOCAL='${SHELL} /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run aclocal-1.11' AMDEPBACKSLASH='' AMDEP_FALSE='' AMDEP_TRUE='#' AMTAR='$${TAR-tar}' AM_BACKSLASH='' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' AM_DEFAULT_VERBOSITY='0' AM_V='$(V)' AR='/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar' ARMV5E_FALSE='' ARMV5E_TRUE='#' ARMV7NEON_FALSE='' ARMV7NEON_TRUE='#' AUTOCONF='${SHELL} /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run autoconf' AUTOHEADER='${SHELL} /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run autoheader' AUTOMAKE='${SHELL} /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run automake-1.11' AWK='mawk' CC='/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/administrator/AndroidNDK/platforms/android-5/arch-arm/' CCAS='' CCASDEPMODE='' CCASFLAGS='' CCDEPMODE='' CFLAGS='-marm -march=armv5' CPP='' CPPFLAGS='-marm -march=armv5' CYGPATH_W='echo' DEFS='' DEPDIR='.deps' DLLTOOL='' DSYMUTIL='' DUMPBIN='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' EXAMPLE_FALSE='' EXAMPLE_TRUE='#' EXEEXT='' FGREP='' GREP='' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LD='' LDFLAGS='-Wl,-rpath-link=/home/administrator/AndroidNDK/platforms/android-5/arch-arm//usr/lib -L/home/administrator/AndroidNDK/platforms/android-5/arch-arm//usr/lib -nostdlib -lc -lm -ldl -llog' LIBOBJS='' LIBS='' LIBTOOL='' LIBTOOL_DEPS='' LIPO='' LN_S='' LTLIBOBJS='' MAINT='#' MAINTAINER_MODE_FALSE='' MAINTAINER_MODE_TRUE='#' MAKEINFO='${SHELL} /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run makeinfo' MANIFEST_TOOL='' MKDIR_P='/bin/mkdir -p' NM='/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-nm' NMEDIT='' OBJDUMP='' OBJEXT='' OTOOL64='' OTOOL='' PACKAGE='vo-amrwbenc' PACKAGE_BUGREPORT='http://sourceforge.net/projects/opencore-amr/' PACKAGE_NAME='vo-amrwbenc' PACKAGE_STRING='vo-amrwbenc 0.1.2' PACKAGE_TARNAME='vo-amrwbenc' PACKAGE_URL='' PACKAGE_VERSION='0.1.2' PATH_SEPARATOR=':' RANLIB='/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ranlib' SED='' SET_MAKE='' SHELL='/bin/bash' STRIP='/home/administrator/AndroidNDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip' VERSION='0.1.2' VO_AMRWBENC_VERSION='' ac_ct_AR='' ac_ct_CC='' ac_ct_DUMPBIN='' am__EXEEXT_FALSE='' am__EXEEXT_TRUE='' am__fastdepCCAS_FALSE='' am__fastdepCCAS_TRUE='' am__fastdepCC_FALSE='' am__fastdepCC_TRUE='' am__include='include' am__isrc='' am__leading_dot='.' am__nodep='' am__quote='' am__tar='tar --format=ustar -chf - "$$tardir"' am__untar='tar -xf -' bindir='${exec_prefix}/bin' build='x86_64-unknown-linux-gnu' build_alias='' build_cpu='x86_64' build_os='linux-gnu' build_vendor='unknown' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' exec_prefix='NONE' host='arm-unknown-linux-gnu' host_alias='arm-linux' host_cpu='arm' host_os='linux-gnu' host_vendor='unknown' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='${SHELL} /home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' mkdir_p='/bin/mkdir -p' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='/home/administrator/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/../ffmpeg-build/armeabi' program_transform_name='s,x,x,' psdir='${docdir}' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias=''

    -----------

    confdefs.h.

    -----------

    /* confdefs.h */

    define PACKAGE_NAME "vo-amrwbenc"

    define PACKAGE_TARNAME "vo-amrwbenc"

    define PACKAGE_VERSION "0.1.2"

    define PACKAGE_STRING "vo-amrwbenc 0.1.2"

    define PACKAGE_BUGREPORT "http://sourceforge.net/projects/opencore-amr/"

    define PACKAGE_URL ""

    define PACKAGE "vo-amrwbenc"

    define VERSION "0.1.2"

    configure: exit 77

    thanks

    question 
    opened by QuickBrownFoxy 9
  • Cannot create libffmpeg.so after running ./build_android.sh

    Cannot create libffmpeg.so after running ./build_android.sh

    Hi,

    AndroidFFmpeg is a great project. I tried to build it from the source code by following the instruction in https://github.com/appunite/AndroidFFmpeg. After successfully running ./build_android.sh using android ndk r10, however, I couldn't find libffmpeg.so being created. In the folder library-jni/jni/ffmpeg-build/armeabi, I can see bin, include, lib, share folders but there is no libffmpeg.so file. Anything else I need to be aware of? Thanks.

    opened by shalinashiyan 8
  • Undefined Macro in libass during autoreconf

    Undefined Macro in libass during autoreconf

    Everything going smoothly until I tried to setup libass environment:

    $ cd libass
    $ autoreconf -ivf
    autoreconf: Entering directory `.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal --force -I m4
    autoreconf: configure.ac: tracing
    autoreconf: running: glibtoolize --copy --force
    glibtoolize: putting auxiliary files in `.'.
    glibtoolize: copying file `./ltmain.sh'
    glibtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
    glibtoolize: copying file `m4/libtool.m4'
    glibtoolize: copying file `m4/ltoptions.m4'
    glibtoolize: copying file `m4/ltsugar.m4'
    glibtoolize: copying file `m4/ltversion.m4'
    glibtoolize: copying file `m4/lt~obsolete.m4'
    autoreconf: running: /usr/local/Cellar/autoconf/2.69/bin/autoconf --force
    configure.ac:33: error: possibly undefined macro: AC_DEFINE
          If this token and others are legitimate, please use m4_pattern_allow.
          See the Autoconf documentation.
    autoreconf: /usr/local/Cellar/autoconf/2.69/bin/autoconf failed with exit status: 1
    

    I also got the warnings...

    glibtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
    glibtoolize: rerunning glibtoolize, to keep the correct libtool macros in-tree.
    glibtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
    running `autoconf --force'
    

    but am unsure how to resolve them.

    opened by iPaulPro 8
  • Video plays too fast when started

    Video plays too fast when started

    When starting to play a video, it playes too fast for the first 10-13 second, then resumes normal play. Also, it playes really fast after I pause/resume.

    bug 
    opened by androisgabriel 8
  • crash on app

    crash on app

     String[] ffmpegCommand = new String[]{"-i", rtspUrl, "-acodec", "copy", "-vcodec", "copy", filePath};
    

    07-09 09:50:35.299 452 520 I OMXClient: IOmx service obtained 07-09 09:50:35.299 458 458 I OMXMaster: makeComponentInstance(OMX.google.amrnb.decoder) in [email protected] process 07-09 09:50:35.303 713 713 I Zygote : seccomp disabled by setenforce 0 07-09 09:50:35.306 548 565 W ActivityManager: Slow operation: 133ms so far, now at startProcess: returned from zygote! 07-09 09:50:35.306 548 565 W ActivityManager: Slow operation: 133ms so far, now at startProcess: done updating battery stats 07-09 09:50:35.306 548 565 W ActivityManager: Slow operation: 133ms so far, now at startProcess: building log message 07-09 09:50:35.306 548 565 I ActivityManager: Start proc 713:WebViewLoader-armeabi-v7a/1037 [android.webkit.WebViewLibraryLoader$RelroFileCreator] for 07-09 09:50:35.306 548 565 W ActivityManager: Slow operation: 133ms so far, now at startProcess: starting to update pids map 07-09 09:50:35.306 548 565 W ActivityManager: Slow operation: 133ms so far, now at startProcess: done updating pids map 07-09 09:50:35.306 548 565 W ActivityManager: Slow operation: 133ms so far, now at startProcess: asking zygote to start proc 07-09 09:50:35.311 548 548 I GnssLocationProvider: WakeLock acquired by sendMessage(INITIALIZE_HANDLER, 0, null) 07-09 09:50:35.312 452 520 I OMXClient: IOmx service obtained 07-09 09:50:35.313 548 562 D GnssLocationProvider: Link to death notification successful 07-09 09:50:35.313 458 458 I OMXMaster: makeComponentInstance(OMX.google.amrwb.decoder) in [email protected] process 07-09 09:50:35.314 279 279 W u-blox : getExtensionAGnss getExtensionAGnss function called. 07-09 09:50:35.315 279 279 W u-blox : getExtensionGnssNi getExtensionGnssNi function called. 07-09 09:50:35.315 548 548 W LocationManagerService: no network location provider found 07-09 09:50:35.315 279 279 W u-blox : getExtensionGnssGeofencing getExtensionGnssGeofencing function called. 07-09 09:50:35.317 548 562 D GnssLocationProvider: gnssSetCapabilitesCb: 209u 07-09 09:50:35.317 548 562 D GnssLocationProvider: gnssSetSystemInfoCb: yearOfHw=2015 07-09 09:50:35.318 279 279 V u-blox : ublox::CGnssXtraExtension::setCallback: GnssXtraExtension initialized successfully! 07-09 09:50:35.318 548 562 I GnssLocationProvider: Unable to Initialize AGnss interface 07-09 09:50:35.318 548 562 I GnssLocationProvider: Unable to initialize GNSS Geofencing interface 07-09 09:50:35.318 548 562 I GnssLocationProvider: Unable to initialize GNSS NI interface 07-09 09:50:35.319 548 548 E LocationManagerService: no geocoder provider found 07-09 09:50:35.319 279 301 V u-blox : handleCmdInput: (2731545840): Cmd received (2) 07-09 09:50:35.320 279 301 V u-blox : CAndroidDatabase::decPublish: count now 0 07-09 09:50:35.320 279 301 V u-blox : engineStop: (Begin) Client count 0 07-09 09:50:35.320 279 301 V u-blox : ublox::CGnssDriver::setStatus: Driver status change: 0 => 4 07-09 09:50:35.320 279 301 V u-blox : engineStop: (End) Client count 0 07-09 09:50:35.321 548 548 D LocationManagerService: Unable to bind FLP Geofence proxy. 07-09 09:50:35.321 548 548 E ActivityRecognitionHardware: activity_recognition HAL is deprecated. is_supported is effectively a no-op 07-09 09:50:35.321 548 548 D LocationManagerService: Hardware Activity-Recognition not supported. 07-09 09:50:35.322 548 548 E ActivityRecognitionProxy: ServiceWatcher could not start. 07-09 09:50:35.322 548 548 D LocationManagerService: Unable to bind ActivityRecognitionProxy. 07-09 09:50:35.322 548 548 I GnssLocationProvider: WakeLock acquired by sendMessage(ENABLE, 1, null) 07-09 09:50:35.323 548 562 E GnssLocationProvider: no AGPS interface in set_agps_server 07-09 09:50:35.325 279 279 E u-blox : setSuplVersion: SUPL is not supported. 07-09 09:50:35.325 548 565 W ActivityManager: Slow operation: 152ms so far, now at startProcess: returned from zygote! 07-09 09:50:35.325 666 666 I LatinIME: Hardware accelerated drawing: true 07-09 09:50:35.325 548 565 W ActivityManager: Slow operation: 152ms so far, now at startProcess: done updating battery stats 07-09 09:50:35.325 548 565 W ActivityManager: Slow operation: 152ms so far, now at startProcess: building log message 07-09 09:50:35.325 548 565 I ActivityManager: Start proc 726:WebViewLoader-arm64-v8a/1037 [android.webkit.WebViewLibraryLoader$RelroFileCreator] for 07-09 09:50:35.326 548 565 W ActivityManager: Slow operation: 152ms so far, now at startProcess: starting to update pids map 07-09 09:50:35.326 452 520 I OMXClient: IOmx service obtained 07-09 09:50:35.326 548 565 W ActivityManager: Slow operation: 152ms so far, now at startProcess: done updating pids map

    opened by jambestwick 0
  • Why libavfilter is disabled in ffmpeg configuration?

    Why libavfilter is disabled in ffmpeg configuration?

    Dear contributors,

    Thank you for your great work in sharing this. I want to know why you have set libavfilter flag off in ffmpeg config. Does it make a problem with Android?

    opened by d-fal 3
  • can't update submodule with libyuv

    can't update submodule with libyuv

    I update submodule,

    正克隆到 'library-jni/jni/libyuv'... fatal: unable to access 'https://chromium.googlesource.com/external/libyuv/': Failed to connect to chromium.googlesource.com port 443: 连接超时 fatal: 无法克隆 'https://chromium.googlesource.com/external/libyuv' 到子模组路径 'library-jni/jni/libyuv'

    i use local libyuv source copy to dir'jni',but:

    fatal: 目标路径 'library-jni/jni/libyuv' 已经存在,并且不是一个空目录。

    T_T

    help me pls!

    opened by hnyashiro 5
  • Can I use this library to play h264 over rtsp?

    Can I use this library to play h264 over rtsp?

    Hi, I am developing an Android app that streams between two devices. I need a MediaPlayer client that can play h264 over rtsp. I am trying vlc, but so far no luck due to some bugs. So is this a client that can be used in any other android project with support for rtsp?

    Thanks.

    opened by antucg 2
Owner
AppUnite Sp. z o.o. Spk.
AppUnite Sp. z o.o. Spk.
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 31k Jan 3, 2023
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 29.8k Dec 22, 2021
Video Transcoder is an application which uses the open source program FFmpeg to transcode video files from one format to another.

Video Transcoder Do you want to encode videos on your phone into different formats, trim videos, or extract audio? Are you looking for a free solution

Branden Archer 358 Dec 30, 2022
TunePlayer is a basic music player app aimed at showing how MusicServiceCompat and MusicBrowerCompat can be used to build a music playback service

TunePlayer TunePlayer is a basic music player app aimed at showing how MusicServiceCompat and MusicBrowerCompat can be used to build a music playback

Abdulmalik 6 Nov 18, 2022
Android music player example.

Android music player example.

Chien 21 Jul 29, 2022
:sound: [Android Library] Easily generate pure audio tone of any frequency in android

Android library to easily generate audio tone in android. Generating pure tone of an specific frequency was never that easy. ZenTone does all the heav

Nishant Srivastava 102 Dec 19, 2022
mpv-android is a video player for Android based on libmpv.

mpv-android is a video player for Android based on libmpv.

null 1.1k Jan 6, 2023
Echo is a lightweight and minimal music player for Android, built with Android Studio and written in Kotlin

Echo - Echo, A light-weight, minimal music player for Android, with shuffle, favorites and audio visualization

Divins Mathew 0 Feb 7, 2022
Youtube Android Clone 🚀an Android Youtube Clone made out of XML and Kotlin

Youtube Android Clone ?? This app consumes The Youtube Api to fetch and display a list of popular videos, The app uses MVVM design pattern to allow se

Breens Robert 38 Dec 13, 2022
An extensible media player for Android

ExoPlayer ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and vi

Google 20.2k Jan 1, 2023
Custom Android view with video player, loader and placeholder image

VideoPlayerView Custom Android view with video player, loader and placeholder image. To stay up-to-date with news about the library Usage Here is an e

Marcin Moskała 89 Nov 18, 2022
Emotion recognition by speech in android.

Vokaturi - Android Library Android port of the Vokaturi emotion recognition API. Overview Vokaturi is an emotion recognition software, that can unders

Owais 82 Nov 11, 2022
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀

Android p2p cdn sdk to distribute load and reduce costs(https://peervadoo.com) Vadootv is a p2p sdk integration to reduce your video streaming costs b

Vadootv 40 Oct 5, 2022
A better Android VideoView with more Media Controller customization. 一个更好用的Android VideoView

Android UniversalVideoView 中文版说明请点击这里 UniversalVideoView is a Android widget helps playing video easier, which is similar with the Android system nati

Linsea 978 Nov 30, 2022
Android Texture VideoView having a variety of scale types like the scale types of ImageView such as fitCenter, centerCrop, centerTopCrop and more

Android-ScalableVideoView Looking for the extra scale types of ImageView? Check out ScalableImageView. Android Texture VideoView having a variety of s

Yoshihito Ikeda 1.1k Jan 7, 2023
Android Video Crop

?? Before using this library, read information below ?? This library is not more supported. If you want to add new feature or fix a bug, grab source

Dmytro Danylyk 390 Jan 2, 2023
A elegant and light weight music player for android

A elegant and light weight music player for android

Atul Patare 45 Dec 21, 2022
NOVA is an open source video player for Android

NOVA: opeN sOurce Video plAyer Overview NOVA is an open source video player for Android. It consists in a fork of the original Archos Video Player Com

NOVA 876 Jan 2, 2023