Recherche avancée

Médias (2)

Mot : - Tags -/plugins

Autres articles (44)

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

    Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
    Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...)

Sur d’autres sites (5499)

  • I can't compile ffmpeg, don't know how to install sdl2 properly

    11 mai 2019, par woopwoop399

    I’m compiling ffmpeg, on windows, with mingw-w64, and I need SDL2 so that the ffplay in ffmpeg compiles. I installed mingw-w64 using the web installer, I installed msys (to run the ./configure that comes with ffmpeg) using the all in one package provided by mingw-w64. I installed SDL2 by downloading dev binaries from their site and running make native in msys.

    So, it seems SDL2 isn’t installed properly or something.

    Here is the problematic part in ./configure :

    if enabled sdl2; then
       echo "SDL2-1"
       SDL2_CONFIG="${cross_prefix}sdl2-config"
       test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent
       echo "SDL2-2"
       if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then
           echo "SDL2-3"
           sdl2_cflags=$("${SDL2_CONFIG}" --cflags)
           sdl2_extralibs=$("${SDL2_CONFIG}" --libs)
           echo "SDL2-config ${SDL2_CONFIG}"
           echo "SDL2-cflags ${sdl2_cflags}"
           echo "SDL2-libs ${sdl2_extralibs}"
           test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x020001" $sdl2_cflags &&
           echo "SDL2-4" &&
           test_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x020100" $sdl2_cflags &&
           echo "SDL2-5" &&
           check_func_headers SDL_events.h SDL_PollEvent $sdl2_extralibs $sdl2_cflags &&
           echo "SDL2-6-final" &&
               enable sdl2
       fi
       if test $target_os = "mingw32"; then
           sdl2_extralibs=$(filter_out '-mwindows' $sdl2_extralibs)
       fi
    fi

    This is the result of it, it never gets to SDL2-6-final and enable sdl2

    SDL2-1
    SDL2-2
    SDL2-3
    SDL2-config sdl2-config
    SDL2-cflags -I/usr/include/SDL2 -Dmain=SDL_main
    SDL2-libs -L/usr/lib -lmingw32 -lSDL2main -lSDL2 -mwindows
    SDL2-4
    SDL2-5

    This is the sdl2 installation log :

    User@NEW-PC /c/Users/User/Downloads/games/compilers/SDL2-2.0.9
    $ make native
    make install-package arch=i686-w64-mingw32 prefix=/usr
    make[1]: Entering directory `/c/Users/User/Downloads/games/compilers/SDL2-2.0.9'
    `bin/sdl2-config' -> `/usr/bin/sdl2-config'
    `bin/SDL2.dll' -> `/usr/bin/SDL2.dll'
    `include' -> `/usr/include'
    `include/SDL2' -> `/usr/include/SDL2'
    `include/SDL2/begin_code.h' -> `/usr/include/SDL2/begin_code.h'
    `include/SDL2/close_code.h' -> `/usr/include/SDL2/close_code.h'
    `include/SDL2/SDL.h' -> `/usr/include/SDL2/SDL.h'
    `include/SDL2/SDL_assert.h' -> `/usr/include/SDL2/SDL_assert.h'
    `include/SDL2/SDL_atomic.h' -> `/usr/include/SDL2/SDL_atomic.h'
    `include/SDL2/SDL_audio.h' -> `/usr/include/SDL2/SDL_audio.h'
    `include/SDL2/SDL_bits.h' -> `/usr/include/SDL2/SDL_bits.h'
    `include/SDL2/SDL_blendmode.h' -> `/usr/include/SDL2/SDL_blendmode.h'
    `include/SDL2/SDL_clipboard.h' -> `/usr/include/SDL2/SDL_clipboard.h'
    `include/SDL2/SDL_config.h' -> `/usr/include/SDL2/SDL_config.h'
    `include/SDL2/SDL_cpuinfo.h' -> `/usr/include/SDL2/SDL_cpuinfo.h'
    `include/SDL2/SDL_egl.h' -> `/usr/include/SDL2/SDL_egl.h'
    `include/SDL2/SDL_endian.h' -> `/usr/include/SDL2/SDL_endian.h'
    `include/SDL2/SDL_error.h' -> `/usr/include/SDL2/SDL_error.h'
    `include/SDL2/SDL_events.h' -> `/usr/include/SDL2/SDL_events.h'
    `include/SDL2/SDL_filesystem.h' -> `/usr/include/SDL2/SDL_filesystem.h'
    `include/SDL2/SDL_gamecontroller.h' -> `/usr/include/SDL2/SDL_gamecontroller.h'
    `include/SDL2/SDL_gesture.h' -> `/usr/include/SDL2/SDL_gesture.h'
    `include/SDL2/SDL_haptic.h' -> `/usr/include/SDL2/SDL_haptic.h'
    `include/SDL2/SDL_hints.h' -> `/usr/include/SDL2/SDL_hints.h'
    `include/SDL2/SDL_joystick.h' -> `/usr/include/SDL2/SDL_joystick.h'
    `include/SDL2/SDL_keyboard.h' -> `/usr/include/SDL2/SDL_keyboard.h'
    `include/SDL2/SDL_keycode.h' -> `/usr/include/SDL2/SDL_keycode.h'
    `include/SDL2/SDL_loadso.h' -> `/usr/include/SDL2/SDL_loadso.h'
    `include/SDL2/SDL_log.h' -> `/usr/include/SDL2/SDL_log.h'
    `include/SDL2/SDL_main.h' -> `/usr/include/SDL2/SDL_main.h'
    `include/SDL2/SDL_messagebox.h' -> `/usr/include/SDL2/SDL_messagebox.h'
    `include/SDL2/SDL_mouse.h' -> `/usr/include/SDL2/SDL_mouse.h'
    `include/SDL2/SDL_mutex.h' -> `/usr/include/SDL2/SDL_mutex.h'
    `include/SDL2/SDL_name.h' -> `/usr/include/SDL2/SDL_name.h'
    `include/SDL2/SDL_opengl.h' -> `/usr/include/SDL2/SDL_opengl.h'
    `include/SDL2/SDL_opengles.h' -> `/usr/include/SDL2/SDL_opengles.h'
    `include/SDL2/SDL_opengles2.h' -> `/usr/include/SDL2/SDL_opengles2.h'
    `include/SDL2/SDL_opengles2_gl2.h' -> `/usr/include/SDL2/SDL_opengles2_gl2.h'
    `include/SDL2/SDL_opengles2_gl2ext.h' -> `/usr/include/SDL2/SDL_opengles2_gl2ext.h'
    `include/SDL2/SDL_opengles2_gl2platform.h' -> `/usr/include/SDL2/SDL_opengles2_gl2platform.h'
    `include/SDL2/SDL_opengles2_khrplatform.h' -> `/usr/include/SDL2/SDL_opengles2_khrplatform.h'
    `include/SDL2/SDL_opengl_glext.h' -> `/usr/include/SDL2/SDL_opengl_glext.h'
    `include/SDL2/SDL_pixels.h' -> `/usr/include/SDL2/SDL_pixels.h'
    `include/SDL2/SDL_platform.h' -> `/usr/include/SDL2/SDL_platform.h'
    `include/SDL2/SDL_power.h' -> `/usr/include/SDL2/SDL_power.h'
    `include/SDL2/SDL_quit.h' -> `/usr/include/SDL2/SDL_quit.h'
    `include/SDL2/SDL_rect.h' -> `/usr/include/SDL2/SDL_rect.h'
    `include/SDL2/SDL_render.h' -> `/usr/include/SDL2/SDL_render.h'
    `include/SDL2/SDL_revision.h' -> `/usr/include/SDL2/SDL_revision.h'
    `include/SDL2/SDL_rwops.h' -> `/usr/include/SDL2/SDL_rwops.h'
    `include/SDL2/SDL_scancode.h' -> `/usr/include/SDL2/SDL_scancode.h'
    `include/SDL2/SDL_sensor.h' -> `/usr/include/SDL2/SDL_sensor.h'
    `include/SDL2/SDL_shape.h' -> `/usr/include/SDL2/SDL_shape.h'
    `include/SDL2/SDL_stdinc.h' -> `/usr/include/SDL2/SDL_stdinc.h'
    `include/SDL2/SDL_surface.h' -> `/usr/include/SDL2/SDL_surface.h'
    `include/SDL2/SDL_system.h' -> `/usr/include/SDL2/SDL_system.h'
    `include/SDL2/SDL_syswm.h' -> `/usr/include/SDL2/SDL_syswm.h'
    `include/SDL2/SDL_test.h' -> `/usr/include/SDL2/SDL_test.h'
    `include/SDL2/SDL_test_assert.h' -> `/usr/include/SDL2/SDL_test_assert.h'
    `include/SDL2/SDL_test_common.h' -> `/usr/include/SDL2/SDL_test_common.h'
    `include/SDL2/SDL_test_compare.h' -> `/usr/include/SDL2/SDL_test_compare.h'
    `include/SDL2/SDL_test_crc32.h' -> `/usr/include/SDL2/SDL_test_crc32.h'
    `include/SDL2/SDL_test_font.h' -> `/usr/include/SDL2/SDL_test_font.h'
    `include/SDL2/SDL_test_fuzzer.h' -> `/usr/include/SDL2/SDL_test_fuzzer.h'
    `include/SDL2/SDL_test_harness.h' -> `/usr/include/SDL2/SDL_test_harness.h'
    `include/SDL2/SDL_test_images.h' -> `/usr/include/SDL2/SDL_test_images.h'
    `include/SDL2/SDL_test_log.h' -> `/usr/include/SDL2/SDL_test_log.h'
    `include/SDL2/SDL_test_md5.h' -> `/usr/include/SDL2/SDL_test_md5.h'
    `include/SDL2/SDL_test_memory.h' -> `/usr/include/SDL2/SDL_test_memory.h'
    `include/SDL2/SDL_test_random.h' -> `/usr/include/SDL2/SDL_test_random.h'
    `include/SDL2/SDL_thread.h' -> `/usr/include/SDL2/SDL_thread.h'
    `include/SDL2/SDL_timer.h' -> `/usr/include/SDL2/SDL_timer.h'
    `include/SDL2/SDL_touch.h' -> `/usr/include/SDL2/SDL_touch.h'
    `include/SDL2/SDL_types.h' -> `/usr/include/SDL2/SDL_types.h'
    `include/SDL2/SDL_version.h' -> `/usr/include/SDL2/SDL_version.h'
    `include/SDL2/SDL_video.h' -> `/usr/include/SDL2/SDL_video.h'
    `include/SDL2/SDL_vulkan.h' -> `/usr/include/SDL2/SDL_vulkan.h'
    `lib/cmake' -> `/usr/lib/cmake'
    `lib/cmake/SDL2' -> `/usr/lib/cmake/SDL2'
    `lib/cmake/SDL2/sdl2-config.cmake' -> `/usr/lib/cmake/SDL2/sdl2-config.cmake'
    `lib/libSDL2.a' -> `/usr/lib/libSDL2.a'
    `lib/libSDL2.dll.a' -> `/usr/lib/libSDL2.dll.a'
    `lib/libSDL2.la' -> `/usr/lib/libSDL2.la'
    `lib/libSDL2main.a' -> `/usr/lib/libSDL2main.a'
    `lib/libSDL2main.la' -> `/usr/lib/libSDL2main.la'
    `lib/libSDL2_test.a' -> `/usr/lib/libSDL2_test.a'
    `lib/libSDL2_test.la' -> `/usr/lib/libSDL2_test.la'
    `lib/pkgconfig' -> `/usr/lib/pkgconfig'
    `lib/pkgconfig/sdl2.pc' -> `/usr/lib/pkgconfig/sdl2.pc'
    `share/aclocal/sdl2.m4' -> `/usr/share/aclocal/sdl2.m4'
    make[1]: Leaving directory `/c/Users/User/Downloads/games/compilers/SDL2-2.0.9'

    And this is what happens when I just comment out that last check in ./configure and enable sdl2 anyway :

    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2main.a when searching for -lSDL2main

    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2.dll.a when searching for -lSDL2

    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lSDL2

    I tried using msys2 instead, it compiles, but the debugger there doesn’t work for some reason. I need to run the source code of ffmpeg in debugger to have a chance of understanding anything there. I need to use the combination of codeblocks and gdb, and programs compiled with msys2 use weird pathnames like /c/bla/bla/bla/main.c, and codeblocks is righteously weirded out by that. The mingw-w64 uses more sane pathnames, I just checked that.

    Checked ffbuild/config.log, the problem is here :

    `c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lSDL2`

    More in full :

    test_pkg_config sdl2 sdl2 >= 2.0.1 sdl2 < 2.1.0 SDL_events.h SDL_PollEvent
    pkg-config --exists --print-errors sdl2 >= 2.0.1 sdl2 < 2.1.0
    check_func_headers SDL_events.h SDL_PollEvent -Dmain=SDL_main -IC:/msys/include/SDL2 -mwindows -LC:/msys/lib -lmingw32 -lSDL2main -lSDL2
    test_ld cc -Dmain=SDL_main -IC:/msys/include/SDL2 -mwindows -LC:/msys/lib -lmingw32 -lSDL2main -lSDL2
    test_cc -Dmain=SDL_main -IC:/msys/include/SDL2 -mwindows -LC:/msys/lib
    BEGIN /tmp/ffconf.atBoPojc/test.c
       1   #include
       2   #include
       3   long check_SDL_PollEvent(void) { return (long) SDL_PollEvent; }
       4   int main(void) { int ret = 0;
       5    ret |= ((intptr_t)check_SDL_PollEvent) & 0xFFFF;
       6   return ret; }
    END /tmp/ffconf.atBoPojc/test.c
    gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 -D__printf__=__gnu_printf__ -D_WIN32_WINNT=0x0600 -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c11 -Dmain=SDL_main -IC:/msys/include/SDL2 -mwindows -LC:/msys/lib -c -o /tmp/ffconf.atBoPojc/test.o /tmp/ffconf.atBoPojc/test.c
    C:/Users/User/AppData/Local/Temp/ffconf.atBoPojc/test.c: In function 'check_SDL_PollEvent':
    C:/Users/User/AppData/Local/Temp/ffconf.atBoPojc/test.c:3:41: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    long check_SDL_PollEvent(void) { return (long) SDL_PollEvent; }
                                            ^
    gcc -Wl,--nxcompat,--dynamicbase -Wl,--high-entropy-va -Wl,--as-needed -Wl,--image-base,0x140000000 -Dmain=SDL_main -IC:/msys/include/SDL2 -mwindows -LC:/msys/lib -o /tmp/ffconf.atBoPojc/test.exe /tmp/ffconf.atBoPojc/test.o -lmingw32 -lSDL2main -lSDL2
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2main.a when searching for -lSDL2main
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib\libSDL2main.a when searching for -lSDL2main
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2main.a when searching for -lSDL2main
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lSDL2main
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2.dll.a when searching for -lSDL2
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2.a when searching for -lSDL2
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib\libSDL2.a when searching for -lSDL2
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2.dll.a when searching for -lSDL2
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys/lib/libSDL2.a when searching for -lSDL2
    c:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lSDL2
    collect2.exe: error: ld returned 1 exit status

    Okay, I managed to compile. I removed the sdl libraries from C:/msys/lib, and added them to C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\lib

  • FFmpeg mosaic video creation, Why it doesn't work ?

    3 mai 2019, par Ege Darçın

    I am trying to build a mosaic from multiple videos in an android application using FFmpeg, I have found the wiki on how to do it. The link explains the process well but I am getting this error while processing it :

    I/Videokit : start run in main.

    register_exit

    term_init & parse options.

    D/Videokit : ERROR OCCURED

    The library that I’m using is WritingMinds, which is FFmpeg for Android compiled with x264, libass, fontconfig, freetype, fribidi and lame (Supports Android 4.1+). Basically, you write a string array of code which is passed to FFmpeg and it runs FFmpeg for you.

    Clearly, it is a parsing error but I believe that I have put the command in order. I have tested the files, locations and FFmpeg with other commands like trim, mute audio etc and only mosaic doesn’t work. I have tried different options, string manipulations but that didn’t work, Furthermore, I’ve seen OpenGl error if I put a big typo error.
    Here is the code on the wiki :

       -i 1.avi -i 2.avi -i 3.avi -i 4.avi
       -filter_complex "
           nullsrc=size=640x480 [base];
           [0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft];
           [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright];
           [2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft];
           [3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright];
           [base][upperleft] overlay=shortest=1 [tmp1];
           [tmp1][upperright] overlay=shortest=1:x=320 [tmp2];
           [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3];
           [tmp3][lowerright] overlay=shortest=1:x=320:y=240
       "
       -c:v libx264 output.mkv

    This is the code which is on the wiki

    String[] m =new String[]{"-i",
                   DestPath1.toString(),
                   "-i",
                   DestPath2.toString(),
                   "-i",
                   DestPath3.toString(),
                   "-i",
                   DestPath4.toString(),
                   "-filter_complex",
                   "\"",
                   "nullsrc=size=640x480 [base];",
                   "[0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft];",
                   "[1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright];",
                   "[2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft];",
                   "[3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright];",
                   "[base][upperleft], overlay=shortest=1", "[tmp1];",
                   "[tmp1][upperright] overlay=shortest=1:x=320 [tmp2];",
                   "[tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3];",
                   "[tmp3][lowerright] overlay=shortest=1:x=320:y=240",
                   "\"",
                   " -c:v",
                   "libx264",
                   FinalPath.toString()};
                   execFFmpegBinary(m);

    This is the string that I send to the FFmpeg.

    The expected result would be a video created on the "FinalPath" which is on the external storage. However, I am getting an error message and nothing else. I have a tight deadline so it would be hard for me to switch to another system and learn it, I’m already new to FFmpeg stuff. Any suggestions ?

    Update : I’ve implemented error handlers of the library, not just FFmpeg part, and it points reports as (’"nullsrc’ is not a filter) . However, I need to put (") into there to run the code and I use it as (\"), which does not solve the problem. Removing them is not an option because the statement after the filter needs the quotation marks.

    Update2 : Here is the current log :

    D/FileLog: Started command : ffmpeg [Ljava.lang.String;@7931693
       FAILED with output : ffmpeg version n3.0.1 Copyright (c) 2000-2016 the FFmpeg developers
         built with gcc 4.8 (GCC)
         configuration: --target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
         libavutil      55. 17.103 / 55. 17.103
         libavcodec     57. 24.102 / 57. 24.102
         libavformat    57. 25.100 / 57. 25.100
         libavdevice    57.  0.101 / 57.  0.101
         libavfilter     6. 31.100 /  6. 31.100
         libswscale      4.  0.100 /  4.  0.100
         libswresample   2.  0.101 /  2.  0.101
         libpostproc    54.  0.100 / 54.  0.100
       Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Pictures/appName/Vid1.mp4':
         Metadata:
           major_brand     : isom
           minor_version   : 512
           compatible_brands: isomiso2avc1mp41
           encoder         : Lavf56.25.101
         Duration: 00:00:45.05, start: 0.033333, bitrate: 694 kb/s
           Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 460x258 [SAR 1:1 DAR 230:129], 562 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
           Metadata:
             handler_name    : VideoHandler
           Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
           Metadata:
             handler_name    : SoundHandler
       Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Pictures/appName/Vid2.mp4':
         Metadata:
           major_brand     : mp42
           minor_version   : 0
           compatible_brands: isommp42
           creation_time   : 2017-01-15 09:57:32
         Duration: 00:00:40.82, start: 0.000000, bitrate: 352 kb/s
           Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 360x360 [SAR 1:1 DAR 1:1], 253 kb/s, 28.90 fps, 29 tbr, 29 tbn, 58 tbc (default)
           Metadata:
             handler_name    : VideoHandler
           Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 95 kb/s (default)
           Metadata:
             creation_time   : 2017-01-15 09:57:32
             handler_name    : IsoMedia File Produced by Google, 5-11-2011
       Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Pictures/appName/Vid3.mp4':
         Metadata:
           major_brand     : mp42
           minor_version   : 1
           compatible_brands: mp41mp42isom
           creation_time   : 2017-12-15 12:10:56
         Duration: 00:00:47.26, start: 0.000000, bitrate: 775 kb/s
           Stream #2:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 480x480, 706 kb/s, 26.98 fps, 27 tbr, 600 tbn, 1200 tbc (default)
           Metadata:
             creation_time   : 2017-12-15 12:10:56
             handler_name    : Core Media Video
           Stream #2:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 65 kb/s (default)
           Metadata:
             creation_time   : 2017-12-15 12:10:56
             handler_name    : Core Media Audio
       Input #3, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Pictures/appName/Vid4.mp4':
         Metadata:
           major_brand     : mp42
           minor_version   : 19529854
           compatible_brands: mp42isom
           creation_time   : 2017-12-17 10:05:07
         Duration: 00:00:14.33, start: 0.000000, bitrate: 803 kb/s
           Stream #3:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 k
    D/FileLog: Finished command : ffmpeg [Ljava.lang.String;@7931693
    V/FA: Inactivity, disconnecting from the service
  • Android : FFMpeg (video creation) crashes with no exception when loading binaries in lower APIs (18 in my case) but works in newer ones

    6 mai 2019, par Diego Perez

    I have an app that uses FFMpeg for video creation (these next lines are the relevant build.gradle plugin files) :

    //writingminds
    api 'com.writingminds:FFmpegAndroid:0.3.2'
    //JavaCV video
    api group: 'org.bytedeco', name: 'javacv', version: '1.4.4'
    api group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '4.0.1-1.4.4', classifier: 'android-arm'
    api group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '4.1-1.4.4', classifier: 'android-arm'

    And my app is working (and creating video) just fine in my phone with a newer Android 8 version but I’m having weird problems in my old API 18 tablet (where, as a note, I had to install multidex).

    These next lines are the main part of FFMpeg video creation, where binaries are loaded, and, in fact, binaries load are where app crashes in my tablet in the line "ffmpeg.loadBinary(new LoadBinaryResponseHandler()..."

    As you can see, I have a try/catch where the app crashes, but it crashes with no aparent exception, as catch blocks are never hit.

    public static String recordVideo(JSONObject objJSON) {

       String strReturn = Enum.Result.OK;

       try {
           fileName = objJSON.has("file_name") ? String.valueOf(objJSON.getString("file_name")) : "";
           videoPath = objJSON.has("video_path") ? String.valueOf(objJSON.getString("video_path")) : "";
       } catch (JSONException e) {
           ExceptionHandler.logException(e);
       }

       FFmpeg ffmpeg = FFmpeg.getInstance(ApplicationContext.get());
       try {
           ffmpeg.loadBinary(new LoadBinaryResponseHandler() {

               @Override
               public void onStart() {}

               @Override
               public void onFailure() {}

               @Override
               public void onSuccess() {}

               @Override
               public void onFinish() {}
           });
       } catch (FFmpegNotSupportedException e) {
           // Handle if FFmpeg is not supported by device
       } catch (Exception e) {

       }
    ...

    These next lines are the relevant part of the LogCat, but I cannot figure out where the problem resides, maybe an out of memory problem ?

    Any help will be much appreciated.

    04-28 21:44:45.873 13743-13964/com.artandwords.thoughtoftheday A/libc: Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 13964 (AsyncTask #4)
    04-28 21:44:45.973 144-144/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    04-28 21:44:45.983 144-144/? I/DEBUG: Build fingerprint: 'asus/WW_epad/ME302C:4.3/JSS15Q/WW_epad-V5.0.21-20140701:user/release-keys'
    04-28 21:44:45.983 144-144/? I/DEBUG: Revision: '0'
    04-28 21:44:45.983 144-144/? I/DEBUG: pid: 13743, tid: 13964, name: AsyncTask #4  >>> com.artandwords.thoughtoftheday <<<
    04-28 21:44:45.983 144-144/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
    04-28 21:44:46.003 144-144/? I/DEBUG:     eax 00000000  ebx 000000c6  ecx 00000000  edx 00000000
    04-28 21:44:46.003 144-144/? I/DEBUG:     esi 00000e59  edi 00000000
    04-28 21:44:46.003 144-144/? I/DEBUG:     xcs 00000073  xds 0000007b  xes 0000007b  xfs 00000043  xss 0000007b
    04-28 21:44:46.003 144-144/? I/DEBUG:     eip 784ed378  ebp 2200ff0c  esp 2200fec4  flags 00210246
    04-28 21:44:46.003 144-144/? I/DEBUG: backtrace:
    04-28 21:44:46.003 144-144/? I/DEBUG:     #00  pc 00087378  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.003 144-144/? I/DEBUG:     #01  pc 00085d0e  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.003 144-144/? I/DEBUG:     #02  pc 00073328  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.003 144-144/? I/DEBUG:     #03  pc 0006f7ff  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.003 144-144/? I/DEBUG:     #04  pc 0006f3bf  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.003 144-144/? I/DEBUG:     #05  pc 000b92de  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.003 144-144/? I/DEBUG:     #06  pc ffffffff  <unknown>
    04-28 21:44:46.003 144-144/? I/DEBUG:     #07  pc 001445aa  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.013 144-144/? I/DEBUG: stack:
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436850  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436854  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436858  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b43685c  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436860  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436864  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436868  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b43686c  3822676c  /system/lib/arm/libc.so
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436870  7b436a98  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436874  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436878  7b4368c8  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b43687c  7b436a98  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436880  383003a0  /system/lib/arm/libdl.so
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436884  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436888  7b4368c8  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b43688c  785aa5ab  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.013 144-144/? I/DEBUG:     #07  7b436890  7b4368a0  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436894  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b436898  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b43689c  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368a0  7b4368c8  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368a4  7b436890  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368a8  785aa59d  /system/lib/libhoudini.so.3.4.7.44914
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368ac  7b436a98  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368b0  7b437930  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368b4  220001d0  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368b8  7b436a70  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368bc  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368c0  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368c4  00000000  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368c8  7b436a88  
    04-28 21:44:46.013 144-144/? I/DEBUG:          7b4368cc  785f3141  /system/lib/libhoudini.so.3.4.7.44914


       --------- beginning of /dev/log/system
    04-28 21:44:46.063 450-470/? I/BootReceiver: Copying /data/tombstones/tombstone_03 to DropBox (SYSTEM_TOMBSTONE)
    04-28 21:44:46.063 450-13973/? W/ActivityManager:   Force finishing activity com.artandwords.thoughtoftheday/.activities.DisplayThoughtActivity
    04-28 21:44:46.073 145-862/? E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 75
    04-28 21:44:46.093 450-13973/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
    04-28 21:44:46.093 450-483/? W/InputDispatcher: channel '21edd9e8 com.artandwords.thoughtoftheday/com.artandwords.thoughtoftheday.activities.main.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
    04-28 21:44:46.093 450-483/? E/InputDispatcher: channel '21edd9e8 com.artandwords.thoughtoftheday/com.artandwords.thoughtoftheday.activities.main.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
    04-28 21:44:46.093 155-13945/? W/TimedEventQueue: Event 25 was not found in the queue, already cancelled?
    04-28 21:44:46.093 155-3134/? W/AudioFlinger: session id 324 not found for pid 155
    04-28 21:44:46.103 450-450/? W/InputDispatcher: Attempted to unregister already unregistered input channel '21edd9e8 com.artandwords.thoughtoftheday/com.artandwords.thoughtoftheday.activities.main.MainActivity (server)'
    04-28 21:44:46.103 450-755/? I/WindowState: WIN DEATH: Window{21b33a28 u0 com.artandwords.thoughtoftheday/com.artandwords.thoughtoftheday.activities.DisplayThoughtActivity}
    04-28 21:44:46.103 450-13973/? W/ActivityManager: Exception thrown during pause
       android.os.TransactionTooLargeException
           at android.os.BinderProxy.transact(Native Method)
           at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:642)
           at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1007)
           at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3905)
           at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3837)
           at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:8588)
           at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:8465)
           at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:9170)
           at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:8699)
           at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
    04-28 21:44:46.103 450-450/? I/WindowState: WIN DEATH: Window{21edd9e8 u0 com.artandwords.thoughtoftheday/com.artandwords.thoughtoftheday.activities.main.MainActivity}
    04-28 21:44:46.103 450-636/? I/WindowState: WIN DEATH: Window{21be0690 u0 com.artandwords.thoughtoftheday/com.artandwords.thoughtoftheday.activities.DisplayThoughtActivity}
    04-28 21:44:46.113 450-13973/? I/WindowManager: computeScreenConfigurationLocked() Enter {1.15 ?mcc?mnc ?locale ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/?}
    04-28 21:44:46.113 450-13973/? I/WindowManager: dw=1200, dh=1920
    04-28 21:44:46.113 450-13973/? I/WindowManager: appWidth=1200, appHeight=1848
    04-28 21:44:46.113 450-13973/? I/WindowManager: tempdm=DisplayMetrics{density=1.5, width=1200, height=1848, scaledDensity=1.5, xdpi=221.201, ydpi=220.591}
    04-28 21:44:46.113 450-13973/? I/WindowManager: dm=DisplayMetrics{density=1.5, width=1200, height=1848, scaledDensity=1.5, xdpi=221.201, ydpi=220.591}, ro.product.device=ME302C
    04-28 21:44:46.113 450-13973/? I/WindowManager: getConfigDisplayWidth=1200, getConfigDisplayHeight=1810
    04-28 21:44:46.113 450-13973/? I/WindowManager: screenWidthDp=800, screenHeightDp=1206
    04-28 21:44:46.113 450-13973/? I/WindowManager: computeScreenConfigurationLocked() Leave {1.15 ?mcc?mnc ?locale ?layoutDir sw800dp w800dp h1206dp 240dpi xlrg port ?uimode ?night finger -keyb/v/h -nav/h}
    04-28 21:44:46.113 450-13973/? I/ActivityManager: Restarting because process died: ActivityRecord{21ab1f80 u0 com.artandwords.thoughtoftheday/.activities.main.MainActivity}
    04-28 21:44:46.113 450-13973/? W/ActivityManager: Exception when starting activity com.artandwords.thoughtoftheday/.activities.main.MainActivity
       android.os.DeadObjectException
           at android.os.BinderProxy.transact(Native Method)
           at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:730)
           at com.android.server.am.ActivityStack.realStartActivityLocked(ActivityStack.java:733)
           at com.android.server.am.ActivityStack.startSpecificActivityLocked(ActivityStack.java:840)
           at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1790)
           at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1449)
           at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1058)
           at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3905)
           at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3837)
           at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:8588)
           at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:8465)
           at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:9170)
           at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:8699)
           at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
    04-28 21:44:46.123 450-13973/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1396 com.android.server.am.ActivityStack.sendActivityBroadcastLocked:4923 com.android.server.am.ActivityStack.removeActivityFromHistoryLocked:4089 com.android.server.am.ActivityStack.removeHistoryRecordsForAppLocked:4346 com.android.server.am.ActivityManagerService.handleAppDiedLocked:3163
    04-28 21:44:46.123 450-13973/? I/ActivityManager: Start proc com.artandwords.thoughtoftheday for activity com.artandwords.thoughtoftheday/.activities.main.MainActivity: pid=13975
    </unknown>

    Edit 1 :

    Still investigating and entered FFmpeg.java to the method loadBinary while debugging, which code I’ll paste below and the line making the crash is switch (CpuArchHelper.getCpuArch())

    @Override
    public void loadBinary(FFmpegLoadBinaryResponseHandler ffmpegLoadBinaryResponseHandler) throws FFmpegNotSupportedException {
       String cpuArchNameFromAssets = null;
       switch (CpuArchHelper.getCpuArch()) {
           case x86:
               Log.i("Loading FFmpeg for x86 CPU");
               cpuArchNameFromAssets = "x86";
               break;
           case ARMv7:
               Log.i("Loading FFmpeg for armv7 CPU");
               cpuArchNameFromAssets = "armeabi-v7a";
               break;
           case NONE:
               throw new FFmpegNotSupportedException("Device not supported");
       }

       if (!TextUtils.isEmpty(cpuArchNameFromAssets)) {
           ffmpegLoadLibraryAsyncTask = new FFmpegLoadLibraryAsyncTask(context, cpuArchNameFromAssets, ffmpegLoadBinaryResponseHandler);
           ffmpegLoadLibraryAsyncTask.execute();
       } else {
           throw new FFmpegNotSupportedException("Device not supported");
       }
    }

    I’ll keep on investigating...

    Edit 2 :

    Further debugging has just lead me to the exact line where app crashes, and it’s CpuArchHelper.java from FFmpeg library :

    The line causing the crash is the next :

    String archInfo = cpuNativeArchHelper.cpuArchFromJNI();

    and I cannot even go inside cpuArchFromJNI() with F7 as it just crashes.

    package com.github.hiteshsondhi88.libffmpeg;

    import android.os.Build;

    class CpuArchHelper {

       static CpuArch getCpuArch() {
           Log.d("Build.CPU_ABI : " + Build.CPU_ABI);
           // check if device is x86 or x86_64
           if (Build.CPU_ABI.equals(getx86CpuAbi()) || Build.CPU_ABI.equals(getx86_64CpuAbi())) {
               return CpuArch.x86;
           } else {
               // check if device is armeabi
               if (Build.CPU_ABI.equals(getArmeabiv7CpuAbi())) {
                   ArmArchHelper cpuNativeArchHelper = new ArmArchHelper();
                   String archInfo = cpuNativeArchHelper.cpuArchFromJNI();
                   // check if device is arm v7
                   if (cpuNativeArchHelper.isARM_v7_CPU(archInfo)) {
                       // check if device is neon
                       return CpuArch.ARMv7;
                   }
                   // check if device is arm64 which is supported by ARMV7
               } else if (Build.CPU_ABI.equals(getArm64CpuAbi())) {
                   return CpuArch.ARMv7;
               }
           }
           return CpuArch.NONE;
       }

       static String getx86CpuAbi() {
           return "x86";
       }

       static String getx86_64CpuAbi() {
           return "x86_64";
       }

       static String getArm64CpuAbi() {
           return "arm64-v8a";
       }

       static String getArmeabiv7CpuAbi() {
           return "armeabi-v7a";
       }
    }

    This is ArmArchHelper.java class :

    package com.github.hiteshsondhi88.libffmpeg;

    class ArmArchHelper {
       static {
           System.loadLibrary("ARM_ARCH");
       }

       native String cpuArchFromJNI();

       boolean isARM_v7_CPU(String cpuInfoString) {
           return cpuInfoString.contains("v7");
       }

       boolean isNeonSupported(String cpuInfoString) {
           // check cpu arch for loading correct ffmpeg lib
           return cpuInfoString.contains("-neon");
       }

    }

    Edit 3 :

    Reading carefully LogCat I’ve noticed there is a TransactionTooLarge Exception :

    04-28 21:44:46.103 450-13973/? W/ActivityManager: Exception thrown during pause
       android.os.TransactionTooLargeException
           at android.os.BinderProxy.transact(Native Method)
           at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:642)
           at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:1007)
           at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3905)
           at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:3837)
           at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:8588)
           at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:8465)
           at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:9170)
           at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:8699)
           at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)

    Maybe this is what makes my app to crash, but I don’t know what to do with that, as it happens inside the FFMpeg library :s

    Edit 3 :

    As a note, I’ve tried in an old Android 4.2.2 (API 17) phone I also own and it’s working just fine, the video is generated without crashing.