
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (48)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...) -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs
Sur d’autres sites (7346)
-
ffmpeg libx264 neon optimization breaks execution
27 janvier 2014, par nmxprimeHi use libx264 source obtained from
x264-snapshot-20140122-2245
and compiling using below scriptNDK=~/Android/android-ndk-r7c
PLATFORM=$NDK/platforms/android-9/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
function build_one
{
./configure --prefix=$PREFIX \
--sysroot=$PLATFORM \
--disable-avs \
--disable-lavf \
--disable-ffms \
--disable-gpac \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--host=arm-linux \
--enable-static \
--libdir=$PLATFORM/usr/lib \
--includedir=$PLATFORM/usr/include \
--extra-cflags="-march=armv7-a -mfloat-abi=softfp -mfpu=neon -mvectorize-with-neon-quad" \
--extra-ldflags="-Wl,--fix-cortex-a8" \
--enable-debugThe config log is :
platform: ARM
system: LINUX
cli: yes
libx264: internal
shared: no
static: yes
asm: yes
interlaced: yes
avs: no
lavf: no
ffms: no
mp4: no
gpl: yes
thread: no
opencl: yes
filters: crop select_every
debug: yes
gprof: no
strip: no
PIC: no
bit depth: 8
chroma format: all
You can run 'make' or 'make fprofiled' now.I hope the above code compiles and optimizes for
NEON
executionDoubts :
Why Threads is
no
, because i didn't specified--disable-thread
What is
cli
and it's significance here, also significance of opencl, such that libx264 uses opencl features ?
Then i built
ffmpeg 1.2.5
with following script./configure --target-os=linux \
--prefix=$PREFIX \
--enable-cross-compile \
--extra-libs="-lgcc" \
--arch=arm \
--cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
--nm=$PREBUILT/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \
--disable-shared \
--enable-static \
--extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog -lx264 $EXTRA_LD_FLAG" \
--disable-ffplay \
--disable-everything \
--enable-avformat \
--enable-avcodec \
--enable-libx264 \
--enable-gpl \
--enable-encoder=libx264 \
--enable-encoder=libx264rgb \
--enable-decoder=h264 \
--disable-network \
--disable-avfilter \
--disable-avdevice \
--enable-debug=3 \
$ADDITIONAL_CONFIGURE_FLAGwhere
ADDITIONAL_CONFIGURE_FLAG = --enable-debug=3
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mvectorize-with-neon-quad"The log shows NEON supported.
When i run the code (called in a while loop),
ret = avcodec_encode_video2(c, &pkt, picture, &got_output);//avcodec_encode_video(c, finalout, outbuf_size, picture);
fprintf(stderr,"ret = %d, got-out = %d \n",ret,got_output);
if (ret < 0)
fprintf(stderr, "error encoding frame\n");
if (got_output)
fprintf(stderr,"encoding frame %3d (size=%5d): (ret=%d)\n", 1, pkt.size,ret);it runs for 2 or 3 time(during which
if(got_output)
is not true), then i getSIGSEGV
. Triedaddr2line
andndk-stack
but no use[Though i enabled debug info, ndk-stack cannot find routine info].I edited
libx264's encoder.c
code with some fprintf statements.
Posting snippet of codeif( h->frames.i_input <= h->frames.i_delay + 1 - h->i_thread_frames )
{
/* Nothing yet to encode, waiting for filling of buffers */
pic_out->i_type = X264_TYPE_AUTO;
fprintf(stderr,"EditLog:: Returns as waiting for filling \n"); //edit
return 0;
}
}
else
{
/* signal kills for lookahead thread */
x264_pthread_mutex_lock( &h->lookahead->ifbuf.mutex );
h->lookahead->b_exit_thread = 1;
x264_pthread_cond_broadcast( &h->lookahead->ifbuf.cv_fill );
x264_pthread_mutex_unlock( &h->lookahead->ifbuf.mutex );
}
fprintf(stderr,"After wait for fill \n");
fprintf(stderr,"h: %p \n",h); //edit
fprintf(stderr,"h->i_frame = %p \n",&h->i_frame); //edit
h->i_frame++;
fprintf(stderr,"after i_frame++");in log, i don't see
after i_frame++
, here occurs (may be) theSIGSEGV
.Please help in solving it. The same works without neon optimization !!
-
android ffmpeg for multiple arch
15 avril 2014, par misgoodI'm building ffmpeg for android. It works fine with arm but fail with x86.
compilation is ok. But if I run the apk which use this x86 ffmpeg lib, logcat will print following errors :
04-13 10:30:09.862: E/dalvikvm(1262): dlopen("/data/app-lib/com.misgood.ipcamdemo-2/libplayer.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libavformat-55.so" needed by "libplayer.so"; caused by load_library(linker.cpp:745): library "libavformat-55.so" not found
I'd checked apk file. All shared libraries are exist.
I guess the problem is the libraries is not config properly.
Any suggestions would be appreciated.
Here is the script that I use to building ffmpeg for android arm and x86
#!/bin/bash
NDK=$HOME/android-ndk-r9c
function build_core
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--disable-error-resilience \
--disable-decoder=h263p \
--disable-decoder=mpegvideo \
--target-os=linux \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-std=c99 -O3 -fpic -DANDROID $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ARCH_SPEC \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
function build_arm
{
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
ARCH_SPEC="--arch=arm \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
"
build_core
}
function build_x86
{
SYSROOT=$NDK/platforms/android-19/arch-x86/
TOOLCHAIN=$NDK/toolchains/x86-4.8/prebuilt/linux-x86_64
CPU=x86
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-mincoming-stack-boundary=4 -march=i686 -mtune=atom -mstackrealign -msse3 -mfpmath=sse -m32"
ARCH_SPEC="--arch=x86 \
--cross-prefix=$TOOLCHAIN/bin/i686-linux-android- \
--cpu=i686
"
build_core
}
build_x86 -
How to Compile FFmpeg with x264 and libfdk-aac for Android
12 novembre 2016, par CodeveloperEveryone.
Please understand that i use the wrong english.
I want to make encoding application using FFmpeg.
I was successfully building NDK with FFmpeg.
However, to encode H.264 video made had failed( Codec not found.. ).
I was learned that libx264 is need encode H.264 and libfdk-aac is need encode AAC.
so I tried to build the libx264 and libfdk-aac, But does not easily cross-compile.
Please tell me what I did wrong.
My Development Environment
OS : ubuntu 13.10 64bit
NDK : android-ndk-r9
FFmpeg : ffmpeg-2.0.2
x264 build : build_x264_android.sh
NDK=$ANDROID_NDK_HOME
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
PLATFORM=$NDK/platforms/android-9/arch-arm
CPU=arm
PREFIX=$NDK/sources/ffmpeg-2.0.2/android/$CPU
./configure --prefix=$PREFIX \
--enable-shared \
--enable-pic \
--disable-asm \
--disable-cli \
--host=arm-linux \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot=$PLATFORM
make
make install
ldconfigfdk-aac build : build_aac_android.sh
NDK=$ANDROID_NDK_HOME
CROSS_PREFIX=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
PLATFORM=$NDK/platforms/android-9/arch-arm
CPU=arm
PREFIX=$NDK/sources/ffmpeg-2.0.2/android/$CPU
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a -mthumb -D__thumb__"
./configure --prefix=$PREFIX \
--with-sysroot=$PLATFORM \
--host=arm-linux \
--enable-shared \
--with-pic=no \
CC="${CROSS_PREFIX}gcc --sysroot=$PLATFORM" \
CXX="${CROSS_PREFIX}g++ --sysroot=$PLATFORM" \
RANLIB="${CROSS_PREFIX}ranlib" \
AR="${CROSS_PREFIX}ar" \
STRIP="${CROSS_PREFIX}strip" \
NM="${CROSS_PREFIX}nm" \
CFLAGS="-O3 $OPTIMIZE_CFLAGS --sysroot=$PLATFORM" \
CXXFLAGS="-O3 $OPTIMIZE_CFLAGS --sysroot=$PLATFORM"
make
make installWhen I run ’build_aac_android.sh’, shown error.
log in config.log
configure:2907: checking for arm-linux-gcc
configure:2934: result: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm
configure:3203: checking for C compiler version
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm --version >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -v >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -V >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3212: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -qversion >&5
./configure: line 3214: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3223: $? = 127
configure:3243: checking whether the C compiler works
configure:3265: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/platforms/android-9/arch-arm -O3 -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a -mthumb -D__thumb__ --sysroot=/platforms/android-9/arch-arm conftest.c >&5
./configure: line 3267: /toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3312: error: in `/home/nel/android-ndk-r9/sources/ffmpeg-2.0.2/libfdk-aac':
configure:3314: error: C compiler cannot create executables
See `config.log' for more detailsI cannot understand that error !! I was confirmed that arm-linux-androideabi-gcc is found in the directory..
I want to borrow you wisdom. Please tell me how to ’ffmpeg+x264+fdk-aac’ build for android.
Thanks.. :-)