appunite / androidffmpeg Goto Github PK
View Code? Open in Web Editor NEW[DEPRECATED] FFmpeg build for android random architectures with example jni
License: Apache License 2.0
[DEPRECATED] FFmpeg build for android random architectures with example jni
License: Apache License 2.0
ideaKIDs-MacBook-Pro:jni ideaKID$ ./build_android.sh
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for arm-linux-strip... /your/path/to/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-strip
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... i386-apple-darwin11.4.2
checking host system type... arm-unknown-linux-gnu
checking for style of include used by make... GNU
checking for arm-linux-gcc... /your/path/to/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-gcc --sysroot=/your/path/to/android-ndk/platforms/android-5/arch-arm/
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
Hi there,
i compiled this one and it works great with mp4 files. But flv does not work. Error is:
E/player.c( 7380): player_set_data_source Could not open video file: /sdcard/MonsterMovieStreamer/The_Big_Bang_Theory-S3E4.flv (-1094995529: Invalid data found when processing input)
Maybe you could help me add flv support.
greez
Daniel
I clone the project from yours.
when i setup fribidi, libass, vo-aacenc and vo-amrwbenc environemtn, I find them are empty.
I run
GIT_SSL_NO_VERIFY=true git submodule update, not git config --global url.ssh://review.appunite.com.insteadOf https://review.appunite.com.
I built the project in OS X Mountain Lion, using brew for auto tools. I did all the steps indicated on the index, but still when i run the demo i get "could Not open stream" when trying to open Apple Example.
Here are the erros i got:
01-28 17:11:37.335: E/ffmpeg(2362): Invalid timestamps stream=1, pts=921000, dts=924000, size=1261
01-28 17:11:37.398: E/ffmpeg(2362): Invalid timestamps stream=1, pts=927000, dts=930150, size=1261
01-28 17:11:37.398: E/ffmpeg(2362): Invalid timestamps stream=1, pts=933150, dts=936150, size=1077
01-28 17:11:37.406: E/ffmpeg(2362): Invalid timestamps stream=1, pts=939150, dts=942150, size=1261
01-28 17:11:37.406: E/ffmpeg(2362): Invalid timestamps stream=1, pts=945150, dts=948150, size=157
01-28 17:11:37.406: E/ffmpeg(2362): Invalid timestamps stream=1, pts=945150, dts=948150, size=709
01-28 17:11:37.414: E/ffmpeg(2362): Invalid timestamps stream=1, pts=951150, dts=954150, size=1261
01-28 17:11:37.421: E/ffmpeg(2362): Invalid timestamps stream=1, pts=957150, dts=960150, size=1077
.... and so on
and:
01-28 17:11:42.203: E/StatusBarPolicy(1565): ecio: 38
01-28 17:11:42.203: E/StatusBarPolicy(1565): iconLevel: 4
01-28 17:11:42.429: A/ffmpeg(2362): Error when loading first segment 'http://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_4x3/gear0/fileSequence0.aac'
01-28 17:11:42.437: V/ffmpeg(2362): Statistics: 511 bytes read, 0 seeks
01-28 17:11:42.437: E/player.c(2362): player_set_data_source Could not open video file: http://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8 (-1094995529: Invalid data found when processing input)
Any idea on what could i have done wrong? or did miss something.. I'm clueless here.
I am working with eclipse with adt plug-in. I followed your tutorial and I successfully built the ffmpeg library. Then i ran the ffmpegExample and I was able to play an mpeg2 http stream on my samsung galaxy S3.
The problem: I am trying to play a video with mpeg2 codec from a local server. The protocol is udp (with multicast). This is the URL I used: "udp://@239.100.100.100:1234". Also I tried without the @.
In the logcat i get this error mpeg_decode_postinit() failure.
The player just gives a black screen and doesn't play the video
how should I fix those errors.
And does ffmpeg supports udp. Please help me with an example.
Hi,
First thing, thanks for you work, it's really inspiring. I managed to clone and build you code just like in the README a while ago. But today, I wanted to clone the repo from zero, and it asks for password on
git submodule update
Have you changed anything?
Gabriels-MacBook-Pro:trabajo grestuccia$ git clone https://review.appunite.com/androidffmpeg AndroidFFmpeg
Cloning into 'AndroidFFmpeg'...
ssh: Could not resolve hostname review.appunite.com: nodename nor servname provided, or not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Hi Could you please help me to solve this problem.
Thanks
18:17:09 **** Build of configuration Default for project FFmpegLibrary ****
/Users/tiltpvtltd/android-sdks/android-ndk-r8/ndk-build all
Compile thumb : ffmpeg-jni <= ffmpeg-jni.c
Compile thumb : ffmpeg-jni <= player.c
Compile thumb : ffmpeg-jni <= queue.c
Compile thumb : ffmpeg-jni <= helpers.c
Compile thumb : ffmpeg-jni <= jni-protocol.c
Compile thumb : ffmpeg-jni <= blend.c
Compile++ thumb : ffmpeg-jni <= convert.cpp
Compile thumb : ffmpeg-jni <= aes-protocol.c
Compile++ thumb : yuv_static <= compare.cc
Compile++ thumb : yuv_static <= compare_common.cc
Compile++ thumb : yuv_static <= compare_posix.cc
Compile++ thumb : yuv_static <= convert.cc
Compile++ thumb : yuv_static <= convert_argb.cc
Compile++ thumb : yuv_static <= convert_from.cc
Compile++ thumb : yuv_static <= convert_from_argb.cc
Compile++ thumb : yuv_static <= cpu_id.cc
Compile++ thumb : yuv_static <= format_conversion.cc
Compile++ thumb : yuv_static <= planar_functions.cc
Compile++ thumb : yuv_static <= rotate.cc
Compile++ thumb : yuv_static <= rotate_argb.cc
Compile++ thumb : yuv_static <= row_any.cc
Compile++ thumb : yuv_static <= row_common.cc
Compile++ thumb : yuv_static <= row_mips.cc
Compile++ thumb : yuv_static <= row_posix.cc
Compile++ thumb : yuv_static <= scale.cc
Compile++ thumb : yuv_static <= scale_argb.cc
Compile++ thumb : yuv_static <= scale_mips.cc
Compile++ thumb : yuv_static <= video_common.cc
Prebuilt : libgnustl_static.a <= /sources/cxx-stl/gnu-libstdc++/libs/armeabi/
StaticLibrary : libyuv_static.a
Compile arm : tropicssl <= aes.c
Compile arm : tropicssl <= arc4.c
Compile arm : tropicssl <= base64.c
Compile arm : tropicssl <= bignum.c
Compile arm : tropicssl <= certs.c
Compile arm : tropicssl <= debug.c
Compile arm : tropicssl <= des.c
Compile arm : tropicssl <= dhm.c
Compile arm : tropicssl <= havege.c
Compile arm : tropicssl <= md2.c
Compile arm : tropicssl <= md4.c
Compile arm : tropicssl <= md5.c
Compile arm : tropicssl <= net.c
jni/tropicssl/library/net.c:85:1: warning: "HTONS" redefined
In file included from /Users/tiltpvtltd/android-sdks/android-ndk-r8/platforms/android-14/arch-arm/usr/include/endian.h:31,
from /Users/tiltpvtltd/android-sdks/android-ndk-r8/platforms/android-14/arch-arm/usr/include/netinet/in.h:31,
from jni/tropicssl/library/net.c:63:
/Users/tiltpvtltd/android-sdks/android-ndk-r8/platforms/android-14/arch-arm/usr/include/sys/endian.h:261:1: warning: this is the location of the previous definition
Compile arm : tropicssl <= padlock.c
Compile arm : tropicssl <= rsa.c
Compile arm : tropicssl <= sha1.c
Compile arm : tropicssl <= sha2.c
Compile arm : tropicssl <= sha4.c
Compile arm : tropicssl <= ssl_cli.c
Compile arm : tropicssl <= ssl_srv.c
Compile arm : tropicssl <= ssl_tls.c
Compile arm : tropicssl <= timing.c
Compile arm : tropicssl <= x509parse.c
Compile arm : tropicssl <= xtea.c
Compile arm : tropicssl <= camellia.c
StaticLibrary : libtropicssl.a
SharedLibrary : libffmpeg-jni.so
Install : libffmpeg-jni.so => libs/armeabi/libffmpeg-jni.so
Prebuilt : libffmpeg.so <= jni/ffmpeg-build/armeabi/
Install : libffmpeg.so => libs/armeabi/libffmpeg.so
Compile thumb : nativetester-jni <= nativetester-jni.c
Compile thumb : nativetester-jni <= nativetester.c
Compile thumb : cpufeatures <= cpu-features.c
StaticLibrary : libcpufeatures.a
SharedLibrary : libnativetester-jni.so
Install : libnativetester-jni.so => libs/armeabi/libnativetester-jni.so
Compile thumb : ffmpeg-jni <= ffmpeg-jni.c
Compile thumb : ffmpeg-jni <= player.c
Compile thumb : ffmpeg-jni <= queue.c
Compile thumb : ffmpeg-jni <= helpers.c
Compile thumb : ffmpeg-jni <= jni-protocol.c
Compile thumb : ffmpeg-jni <= blend.c
Compile++ thumb : ffmpeg-jni <= convert.cpp
Compile thumb : ffmpeg-jni <= aes-protocol.c
Compile++ thumb : yuv_static <= compare.cc
Compile++ thumb : yuv_static <= compare_common.cc
Compile++ thumb : yuv_static <= compare_posix.cc
Compile++ thumb : yuv_static <= convert.cc
Compile++ thumb : yuv_static <= convert_argb.cc
Compile++ thumb : yuv_static <= convert_from.cc
Compile++ thumb : yuv_static <= convert_from_argb.cc
Compile++ thumb : yuv_static <= cpu_id.cc
Compile++ thumb : yuv_static <= format_conversion.cc
Compile++ thumb : yuv_static <= planar_functions.cc
Compile++ thumb : yuv_static <= rotate.cc
Compile++ thumb : yuv_static <= rotate_argb.cc
Compile++ thumb : yuv_static <= row_any.cc
Compile++ thumb : yuv_static <= row_common.cc
Compile++ thumb : yuv_static <= row_mips.cc
Compile++ thumb : yuv_static <= row_posix.cc
Compile++ thumb : yuv_static <= scale.cc
Compile++ thumb : yuv_static <= scale_argb.cc
Compile++ thumb : yuv_static <= scale_mips.cc
Compile++ thumb : yuv_static <= video_common.cc
Compile++ thumb : yuv_static <= compare_neon.cc
Compile++ thumb : yuv_static <= rotate_neon.cc
Compile++ thumb : yuv_static <= row_neon.cc
Compile++ thumb : yuv_static <= scale_neon.cc
make: *** No rule to make target jni/libyuv/source/scale_neon_argb.cc', needed by
obj/local/armeabi-v7a/objs/yuv_static/source/scale_neon_argb.o'. Stop.
I try to play & seek for rmvb file.
Sound continue to play, but video stop, there is error/assert log as below.
D/MainActivity(816): onProgressChanged seek progress=2
I/player.c(816): player_read_from_stream queue interrupt seek
I/player.c(816): player_read_from_stream seeking to: 2s, time_base: 2000
I/player.c(816): player_read_from_stream seeking success
I/player.c(816): player_read_from_stream ending seek
D/MainActivity(816): onFFSeeked result=null
A/ffmpeg(816): Invalid decoder state: B-frame without reference data.
E/player.c(816): player_decode_video Fail decoding video -1094995529
Last two lines --> Decode video fail and this thread end.
I have created an account in review.appunite.com and using "git clone https://review.appunite.com/androidffmpeg" to download FFmpegLibrary. Its asking for review.appunite.com's password and when i enter it says Permission denied.
Some of the ways i have tried are :
But none works. I have a doubt in how it takes the username. I am stuck in this for long time.Any help is appreciated.
Idea-MacBook-Pro:Documents Idea$ git clone https://github.com/appunite/AndroidFFmpeg.git
Cloning into AndroidFFmpeg...
remote: Counting objects: 842, done.
remote: Compressing objects: 100% (230/230), done.
remote: Total 842 (delta 485), reused 826 (delta 469)
Receiving objects: 100% (842/842), 499.99 KiB | 131 KiB/s, done.
Resolving deltas: 100% (485/485), done.
Idea-MacBook-Pro:Documents Idea$ GIT_SSL_NO_VERIFY=true
Idea-MacBook-Pro:Documents Idea$ git config --global url.ssh://review.appunite.com.insteadOf https://review.appunite.com
Idea-MacBook-Pro:Documents Idea$ cd AndroidFFmpeg
Idea-MacBook-Pro:AndroidFFmpeg Idea$ git submodule init
Submodule 'FFmpegLibrary/jni/ffmpeg' (git://source.ffmpeg.org/ffmpeg.git) registered for path 'FFmpegLibrary/jni/ffmpeg'
Submodule 'FFmpegLibrary/jni/freetype2' (git://git.sv.gnu.org/freetype/freetype2.git) registered for path 'FFmpegLibrary/jni/freetype2'
Submodule 'FFmpegLibrary/jni/fribidi' (https://review.appunite.com/fribidi.git) registered for path 'FFmpegLibrary/jni/fribidi'
Submodule 'FFmpegLibrary/jni/libass' (https://code.google.com/p/libass/) registered for path 'FFmpegLibrary/jni/libass'
Submodule 'FFmpegLibrary/jni/tropicssl' (https://review.appunite.com/tropicssl.git) registered for path 'FFmpegLibrary/jni/tropicssl'
Submodule 'FFmpegLibrary/jni/vo-aacenc' (git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/vo-aacenc) registered for path 'FFmpegLibrary/jni/vo-aacenc'
Submodule 'FFmpegLibrary/jni/vo-amrwbenc' (git://opencore-amr.git.sourceforge.net/gitroot/opencore-amr/vo-amrwbenc) registered for path 'FFmpegLibrary/jni/vo-amrwbenc'
Submodule 'FFmpegLibrary/jni/x264' (git://git.videolan.org/x264.git) registered for path 'FFmpegLibrary/jni/x264'
Idea-MacBook-Pro:AndroidFFmpeg Idea$ git submodule sync
Synchronizing submodule url for 'FFmpegLibrary/jni/ffmpeg'
Synchronizing submodule url for 'FFmpegLibrary/jni/freetype2'
Synchronizing submodule url for 'FFmpegLibrary/jni/fribidi'
Synchronizing submodule url for 'FFmpegLibrary/jni/libass'
Synchronizing submodule url for 'FFmpegLibrary/jni/tropicssl'
Synchronizing submodule url for 'FFmpegLibrary/jni/vo-aacenc'
Synchronizing submodule url for 'FFmpegLibrary/jni/vo-amrwbenc'
Synchronizing submodule url for 'FFmpegLibrary/jni/x264'
Idea-MacBook-Pro:AndroidFFmpeg Idea$ git submodule update
Cloning into FFmpegLibrary/jni/ffmpeg...
remote: Counting objects: 293184, done.
remote: Compressing objects: 100% (67073/67073), done.
remote: Total 293184 (delta 232597), reused 285876 (delta 225643)
Receiving objects: 100% (293184/293184), 71.84 MiB | 71 KiB/s, done.
Resolving deltas: 100% (232597/232597), done.
Submodule path 'FFmpegLibrary/jni/ffmpeg': checked out '633b90ca8d5fbdac4e54b0d6b054e273b3a5efa5'
Cloning into FFmpegLibrary/jni/freetype2...
remote: Counting objects: 45348, done.
remote: Compressing objects: 100% (7961/7961), done.
remote: Total 45348 (delta 37381), reused 45005 (delta 37094)
Receiving objects: 100% (45348/45348), 12.42 MiB | 72 KiB/s, done.
Resolving deltas: 100% (37381/37381), done.
Submodule path 'FFmpegLibrary/jni/freetype2': checked out '320613eeb83d0cd704de3e6adfb13dce787861bb'
Cloning into FFmpegLibrary/jni/fribidi...
[email protected]'s password:
When trying to play one of the streams of http://www.veetle.com, for example:
https://docs.google.com/file/d/0Bw8tro5yHyAlcVFNdklVc3ctSzg/edit?usp=sharing (Flv file)
http://213.254.202.146:80/flv/5106207423acc/testat123 (Stream)
Output gives:
ffmpeg: No accelerated colorspace conversion found from yuv420p to rgba
Shouldn't in this case this statement be true instead of using sws_scale?
if (ctx->pix_fmt == PIX_FMT_YUV420P)
Version tested: Latest from https://review.appunite.com
I am using live555 to stream h264 rtsp. When doing this I am receiving this error
ffmpeg 'circular buffer size' option was set but is not supported on this build
I was able to compile the latest version of ffmpeg, 1.1, successfully.
Any suggestion on how to solve this error?
thanks
Working on Mac, OSX 10.8, with command line tools of XCode and Android NDK r8b
Followed the instructions, got autoconf, autoconf-archive, automake.
All were OK until this command:
./build_android.sh
under repository: FFmpegLibrary/jni/
did't get libffmpeg.so
here's the error:
configure: error: in /Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc': configure: error: C compiler cannot create executables See
config.log' for more details
config.log:
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=/Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/../ffmpeg-build/x86 --host=x86-linux --disable-dependency-tracking --disable-shared --enable-static --with-pic --disable-asm
hostname = orange.local
uname -m = x86_64
uname -r = 12.0.0
uname -s = Darwin
uname -v = Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~1/RELEASE_X86_64
/usr/bin/uname -p = i386
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = Mach kernel version:
Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~1/RELEASE_X86_64
Kernel configured for up to 4 processors.
2 processors are physically available.
4 processors are logically available.
Processor type: i486 (Intel 80486)
Processors active: 0 1 2 3
Primary memory available: 4.00 gigabytes
Default processor set: 139 tasks, 727 threads, 4 processors
Load average: 3.72, Mach factor: 0.74
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /usr/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /usr/local/bin
PATH: /opt/X11/bin
PATH: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/
PATH: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/
PATH: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/
configure:2189: checking for a BSD-compatible install
configure:2257: result: /usr/bin/install -c
configure:2268: checking whether build environment is sane
configure:2323: result: yes
configure:2382: checking for x86-linux-strip
configure:2409: result: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-strip
configure:2474: checking for a thread-safe mkdir -p
configure:2513: result: ./install-sh -c -d
configure:2520: checking for gawk
configure:2550: result: no
configure:2520: checking for mawk
configure:2550: result: no
configure:2520: checking for nawk
configure:2550: result: no
configure:2520: checking for awk
configure:2536: found /usr/bin/awk
configure:2547: result: awk
configure:2558: checking whether make sets $(MAKE)
configure:2580: result: yes
configure:2661: checking how to create a ustar tar archive
configure:2674: tar --version
bsdtar 2.8.3 - libarchive 2.8.3
configure:2677: $? = 0
configure:2717: tardir=conftest.dir && eval tar --format=ustar -chf - "$tardir" >conftest.tar
configure:2720: $? = 0
configure:2724: tar -xf - <conftest.tar
configure:2727: $? = 0
configure:2740: result: gnutar
configure:2758: checking whether make supports nested variables
configure:2775: result: yes
configure:2789: checking whether to enable maintainer-specific portions of Makefiles
configure:2798: result: no
configure:2817: checking build system type
configure:2831: result: i386-apple-darwin12.0.0
configure:2851: checking host system type
configure:2864: result: x86-unknown-linux-gnu
configure:2947: checking for style of include used by make
configure:2975: result: GNU
configure:3006: checking for x86-linux-gcc
configure:3033: result: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/
configure:3302: checking for C compiler version
configure:3311: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/ --version >&5
./configure: line 3313: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc: No such file or directory
configure:3322: $? = 127
configure:3311: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/ -v >&5
./configure: line 3313: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc: No such file or directory
configure:3322: $? = 127
configure:3311: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/ -V >&5
./configure: line 3313: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc: No such file or directory
configure:3322: $? = 127
configure:3311: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/ -qversion >&5
./configure: line 3313: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc: No such file or directory
configure:3322: $? = 127
configure:3342: checking whether the C compiler works
configure:3364: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/ -m32 -m32 -m32 -Wl,-rpath-link=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86//usr/lib -L/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86//usr/lib -nostdlib -lc -lm -ldl -llog conftest.c >&5
./configure: line 3366: /Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc: No such file or directory
configure:3368: $? = 127
configure:3406: 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:3411: error: in /Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc': configure:3413: error: C compiler cannot create executables See
config.log' for more details
ac_cv_build=i386-apple-darwin12.0.0
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='/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/'
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-m32 -m32'
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=-m32
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value='-Wl,-rpath-link=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86//usr/lib -L/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86//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=x86-linux
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=x86-unknown-linux-gnu
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=awk
ac_cv_prog_CC='/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/'
ac_cv_prog_STRIP=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-strip
ac_cv_prog_make_make_set=yes
am_cv_make_support_nested_variables=yes
am_cv_prog_tar_ustar=gnutar
ACLOCAL='${SHELL} /Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run aclocal-1.12'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE='#'
AMTAR='$${TAR-tar}'
AM_BACKSLASH=''
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='0'
AM_V='$(V)'
AR='/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-ar'
ARMV5E_FALSE=''
ARMV5E_TRUE='#'
ARMV7NEON_FALSE=''
ARMV7NEON_TRUE='#'
AUTOCONF='${SHELL} /Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run autoconf'
AUTOHEADER='${SHELL} /Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run autoheader'
AUTOMAKE='${SHELL} /Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run automake-1.12'
AWK='awk'
CC='/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc --sysroot=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86/'
CCAS=''
CCASDEPMODE=''
CCASFLAGS=''
CCDEPMODE=''
CFLAGS='-m32 -m32'
CPP=''
CPPFLAGS='-m32'
CYGPATH_W='echo'
DEFS=''
DEPDIR='.deps'
DLLTOOL=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C='\c'
ECHO_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=/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86//usr/lib -L/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//platforms/android-9/arch-x86//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} /Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run makeinfo'
MANIFEST_TOOL=''
MKDIR_P='./install-sh -c -d'
NM='/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-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='/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-ranlib'
SED=''
SET_MAKE=''
SHELL='/bin/sh'
STRIP='/Users/orange-22/Documents/workspace/ENV/android-ndk-r8b//toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-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='i386-apple-darwin12.0.0'
build_alias=''
build_cpu='i386'
build_os='darwin12.0.0'
build_vendor='apple'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host='x86-unknown-linux-gnu'
host_alias='x86-linux'
host_cpu='x86'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /Users/orange-22/Documents/workspace/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='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/Users/orange-22/Documents/workspace/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/../ffmpeg-build/x86'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
/* confdefs.h */
configure: exit 77
Hi,
During installation I had this problem, in spite of adding GIT_SSL_NO_VERIFY=true before git submodule update line:
Cloning into 'FFmpegLibrary/jni/fribidi'...
error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none while accessing https://review.appunite.com/fribidi.git/info/refs
fatal: HTTP request failed
Clone of 'https://review.appunite.com/fribidi.git' into submodule path 'FFmpegLibrary/jni/fribidi' failed
Could you please tell how it's possible to solve this problem?
I followed the instructions on how to compile and it went well until I run the ndk-build command. Before that everything has gone without errors, the .so files are in the ffmpeg-build directory and so on.
But when running the ndk-build command I get the following error:
"Compile++ thumb : ffmpeg-jni <= convert.cpp
In file included from jni/convert.cpp:1:0:
jni/convert.h:8:32: fatal error: libyuv/basic_types.h: No such file or directory
compilation terminated."
I've checked and libyuv folder does not even exist.
What am I doing wrong?
hello,
i followed all the instructions i think and switch to the hwaccel branch and tested on an A10 tablet and an htc desire and i don't have any hardware acceleration on these devices.
in a post, jacek says to do a av_codec_find_codec_by_name( "libstagefright_h264" but i cannot find that code anywhere.
what am i doing wrong?
thanks for enlightening me
regards,
chevil
Hi, After running the example and exiting the program, I notice I still have a stream of fmpeg messages scrolling in the Log window during debug. It appears the NDK library is not destroyed. How do I make sure the ffmpeg code is cleaned up correctly?
Thanks,
Craig
can I add watermark ?
If player_stop() is called when queue is not allocated a hang occurs:
The log shows:
04-21 14:21:23.130: I/player.c(9556): player_read_from_stream Read frame
04-21 14:21:23.130: I/player.c(9556): player_read_from_stream looking for stream
04-21 14:21:23.130: I/player.c(9556): player_read_from_stream stream not found
04-21 14:21:23.130: I/player.c(9556): player_read_from_stream Read frame
04-21 14:21:23.130: I/player.c(9556): player_read_from_stream looking for stream
04-21 14:21:23.130: I/player.c(9556): player_read_from_stream stream not found
04-21 14:21:23.441: I/player.c(9556): jni_player_render_frame_stop stopping render
04-21 14:21:23.441: I/player.c(9556): player_stop_without_lock stopping...
04-21 14:21:23.781: I/player.c(9556): player_read_from_stream Read frame
04-21 14:21:23.781: I/player.c(9556): player_read_from_stream stopping
04-21 14:21:23.781: I/player.c(9556): player_read_from_stream stop
It seems to hang in:
while (!player_if_all_no_array_elements_has_value(player,
player->stop_streams, FALSE)) {
pthread_cond_wait(&player->cond_queue, &player->mutex_queue);
Solution is just to add a simple check
if(queue != NULL)
while (!player_if_all_no_array_elements_has_value(player,
player->stop_streams, FALSE)) {
pthread_cond_wait(&player->cond_queue, &player->mutex_queue);
}
I have everything working - awesome! I have also retrieved the most recent ffmpeg and all works wonderfully. I only need m3u8 support and notice the final build is pretty massive - 25mb. How can I shrink the minimal size? I am sure I don't need most of this since I just need m3u8 video support. Thanks!
Craig
/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.
can't import in Project Android
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.
Hi, it's me again. I followed the steps from the updated README, but i get this when running "GIT_SSL_NO_VERIFY=true git submodule update" (at some point...)
Unable to checkout '3b4b2c54f2ba6964bb5e81cbf5dff70b1e0b1d44' in submodule path 'FFmpegLibrary/jni/fribidi'
This is my log :
iMac-khxng-supertoonz:~ kingkanbanyenngam$ cd ffmpegnew
iMac-khxng-supertoonz:ffmpegnew kingkanbanyenngam$ cd AndroidFFmpeg/
iMac-khxng-supertoonz:AndroidFFmpeg kingkanbanyenngam$ GIT_SSL_NO_VERIFY=true git submodule update
[email protected]'s password:
why it required password
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)
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.
Sometimes a negative value of player->caputre_streams_no is passed to player_find_stream() when playing certain streams. Thus a crash happens in:
player->input_streams[streams_no] = stream;
To avoid this we can check before reaching that point.
if(streams_no < 0){
LOGI(3, "streams_no %d", streams_no);
return -1;
}
Doing that we'll reach goto error in:
if ((player->video_stream_no = player_find_stream(player,
AVMEDIA_TYPE_VIDEO, video_stream_no)) < 0) {
err = player->video_stream_no;
goto error;
}
But another crash will happen in player_alloc_video_frames_free() due to uninitialized pointers in any of the "free" procedures, for example:
//player->tmp_frame2 pointer is not NULL but it's unintialized
if (player->tmp_frame2 != NULL) {
//CRASH
avcodec_free_frame(&player->tmp_frame2);
player->tmp_frame2 = NULL;
}
One possible solution it's to initialize pointers to NULL:
int jni_player_init(JNIEnv *env, jobject thiz) {
.....
//Initialize pointers for sanity reasons
+ player->rgb_frame = NULL;
+ player->rgb_frame = NULL;
+ player->tmp_frame2 = NULL;
+ player->tmp_buffer = NULL;
+ player->tmp_buffer2 = NULL;
...
}
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
is error ffmpegexample. i can't see ffmpegexample it , you can
I've managed to compile everything OK, and have local files able to play, but when trying to use HLS streaming, both live and VOD files, I keep getting the above error in the Log, and nothing plays. Any idea what might be causing this?
Please add to ffmpeg librtmp support.
Thanks.
Hi, I'm not sure if you are available but i have similar issue as #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/AndroidFFmpeg/FFmpegLibrary/jni$
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 See
config.log' for more details
administrator@ubuntu:
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
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/
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 See
config.log' for more details
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
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 */
configure: exit 77
thanks
ffmpeg-build folder missing
error log
Android NDK: Check that jni/ffmpeg-build/armeabi-v7a/libffmpeg-neon.so exists or that its path is correct
I have followed the steps given to build FFmpegLibrary. But when i run ./build_android.sh, i am getting an exception as "./configure : No such file or directory" in the below code.
cd vo-amrwbenc
./configure
--prefix=$(pwd)/$PREFIX
--host=$ARCH-linux
--disable-dependency-tracking
--disable-shared
--enable-static
--with-pic
$ADDITIONAL_CONFIGURE_FLAG
|| exit 1
I have downloaded and added the submodules under jni from the path given in the .gitmodules file. Is there any builded version of FFmpegLibrary available?
There is some work that I started to support hardware decoding via libstagefright:
https://review.appunite.com/#/c/1779/.
This is not on github repo because it is not finished commit - there are a lot work to do.
Everyone are welcome to download this code and edit make patches.
I made some conversations with Simon Robinson who is interested in hardware decoding too.
Those conversations pushed forward this subject.
Simon pointed that Galaxy OMX decoder use non standar stride multiples of 16 and additional extra bytes of padding. This issue occurs on Galaxy S3.
Simon suggested that this issue can be solved buy enumerating AVC decoders and depending if this is
MX.SEC.AVC.Decoder or OMX.SEC.avc.dec we can use different stride/padding mechanism.
http://code.google.com/p/android/issues/detail?id=37768
http://mailman.videolan.org/pipermail/vlc-devel/2012-September/090263.html
Simon pointed that QUALCOMM hardware avc decoder use non standard NV12 ( 0x7FA30C0) colorspace on nexus 4.
Probably much better way is to pass ANatvieWindow to decoder, then Android will automatically do color conversion and other necessary padding operation that will be needed.
I wonder if you are aware that freetype became freetype2 since you posted this.
I managed to get to the build_android.sh step but it dies trying to compile freetype2 with errors like this:
In file included from /Users/dlowerre/AndroidFFmpeg/FFmpegLibrary/jni/freetype2/include/freetype/freetype.h:35,
from /Users/dlowerre/AndroidFFmpeg/FFmpegLibrary/jni/freetype2/include/freetype/internal/ftdebug.h:30,
from /Users/dlowerre/AndroidFFmpeg/FFmpegLibrary/jni/freetype2/src/base/ftsystem.c:30:
/Users/dlowerre/AndroidFFmpeg/FFmpegLibrary/jni/freetype2/include/freetype/fttypes.h:172: error: expected '=', ',', ';', 'asm' or 'attribute' before 'FT_Tag'
Hi,
I have successfully compiled your project leaving out the subtitle libraries, which created some problems for me (1. I could not load submodules, it is asking me for a password for appunite, 2. building failed after sourcing the missing libraries from the original repos).
I can play local mp4 files with the ffmpeg example project on Android. But my goal is to play streams.
Im doing all my tests from the example project (so internet permissions are set, I double-checked it). I could not run the example http streams and I could not run a VLC http stream, although it works with the VLC app for android and from other computers and it works with the MediaPlayer class from Android.
I have also tried to play a rtp stream using ffmpeg as streamer and a sdp file to describe the stream. It looks like the spd file is successfully read and interpreted, but I always get following error message:
"Could not open video file: XXX (-1094995529: invalid data found when processing input)"
Furthermore I get this from ffmpeg:
Format sdp probed with size=2048 and score=50
video codec set to: mpeg4
'circular_buffer_size' option was set but it is not supported on this build (pthread support is required)
Then it says it has problems to resolve the hostname. Im not getting this errors, when Im streaming from PC to PC using the same configuration (with different IPs obviously).
Can you help me to resolve these issues? How do I play RTP streams using a SDP file?
Thanks!
when video play it's alway logging and video is very slow
this log >>player.c player_free_video_rgb_frame fried
I followed the steps given at the link https://github.com/appunite/AndroidFFmpeg to build the given example.When i run the build_android.sh i am getting the following exception.
./build_android.sh: line 72: ./configure: No such file or directory
I am spent lot of time in building this example.Any help is appreciated.
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).
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
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!
I am trying to play .ts file .But I am not able to play .ts file.can you please tell what am I doing wrong?
As per subject, Are you planning to add video encoding support to your library?
Reason I am asking that I don't know C and an interface from within library would be good? Or any direction as to how to achieve it.
there are other ports of ffmpeg for Android but most of them does not compile or create one executable that can only run as cmd line app
No one is assigned
Hi,
I managed to clone and build you code just like in the README a while ago. But today, I wanted to clone the repo from zero, and it asks for password on
git submodule update
Submodule 'FFmpegLibrary/jni/fribidi' (https://review.appunite.com/fribidi.git) registered for path 'FFmpegLibrary/jni/fribidi'
Have you changed anything?
when playing a video the logcat is flooded with log from the player, is it possible to lower the log level ?
Normally, I am able to successfully stream an m3u8 files. The device generating the files allows preview of the files over http using m3u8 format. When the device starts recording, the m3u8 creation lags slightly. VLC handles the lags if I set it to loop. AndroidFFmpeg completely freezes and doesn't seem to recover. I am not sure how to address this and am wondering if looping would help. I am open to other suggestions as well. If looping, how would I do this? Any suggestions are appreciated.
Thanks,
Craig
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.
Hello!
I need to take an image and an audio file and create a video. I've found that I need to do something like that "ffmpeg -i image.jpeg -i audio.mp3 out.avi".
But how to use it?
Please help..
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....
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.