Recherche avancée

Médias (91)

Autres articles (111)

  • Changer son thème graphique

    22 février 2011, par

    Le thème graphique ne touche pas à la disposition à proprement dite des éléments dans la page. Il ne fait que modifier l’apparence des éléments.
    Le placement peut être modifié effectivement, mais cette modification n’est que visuelle et non pas au niveau de la représentation sémantique de la page.
    Modifier le thème graphique utilisé
    Pour modifier le thème graphique utilisé, il est nécessaire que le plugin zen-garden soit activé sur le site.
    Il suffit ensuite de se rendre dans l’espace de configuration du (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

  • Initialisation de MediaSPIP (préconfiguration)

    20 février 2010, par

    Lors de l’installation de MediaSPIP, celui-ci est préconfiguré pour les usages les plus fréquents.
    Cette préconfiguration est réalisée par un plugin activé par défaut et non désactivable appelé MediaSPIP Init.
    Ce plugin sert à préconfigurer de manière correcte chaque instance de MediaSPIP. Il doit donc être placé dans le dossier plugins-dist/ du site ou de la ferme pour être installé par défaut avant de pouvoir utiliser le site.
    Dans un premier temps il active ou désactive des options de SPIP qui ne le (...)

Sur d’autres sites (10323)

  • ffmpeg libx264 neon optimization breaks execution

    27 janvier 2014, par nmxprime

    Hi use libx264 source obtained from x264-snapshot-20140122-2245 and compiling using below script

    NDK=~/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-debug

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

    Doubts :

    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.5with 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_FLAG

    where

    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 get SIGSEGV. Tried addr2line and ndk-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 code

      if( 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) the SIGSEGV.

    Please help in solving it. The same works without neon optimization !!

  • android ffmpeg for multiple arch

    15 avril 2014, par misgood

    I'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 Codeveloper

    Everyone.

    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
    ldconfig

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

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

    I 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.. :-)