FFMpeg Android Stagefright SIGSEGV错误(h264解码)
问题描述:
我需要在Android 2.3+上解码h264文件到YUV。据我所知,我需要与Stagefright进行沟通,因为它是目前唯一的方式,在关闭访问OpenMAX IL实现之后。我已经使用FFmpeg的0.10(并试图0.9/0.9.1 ..)对于这个问题,有NDK7编译它(也试过NDK6b具有相同的结果):FFMpeg Android Stagefright SIGSEGV错误(h264解码)
ffmpeg version 0.10 Copyright (c) 2000-2012 the FFmpeg developers
built on Jan 28 2012 14:42:37 with gcc 4.4.3
configuration: --target-os=linux --cross-prefix=arm-linux-androideabi- --arch=arm --cpu=armv7-a --sysroot=/home/grid/Android/Android_NDK/platforms/android-9/arch-arm --disable-avdevice --disable-decoder=h264 --disable-decoder=h264_vdpau --enable-libstagefright-h264 --prefix=build/stagefright/armeabi-v7a --extra-cflags='-Iandroid-source/frameworks/base/include -Iandroid-source/system/core/include -Iandroid-source/frameworks/base/media/libstagefright -Iandroid-source/frameworks/base/include/media/stagefright/openmax -I/home/grid/Android/Android_NDK/sources/cxx-stl/system/include -march=armv7-a -mfloat-abi=softfp -mfpu=neon' --extra-ldflags='-Wl,--fix-cortex-a8 -Landroid-libs -Wl,-rpath-link,android-libs' --extra-cxxflags='-Wno-multichar -fno-exceptions -fno-rtti'
libavutil 51. 34.101/51. 34.101
libavcodec 53. 60.100/53. 60.100
libavformat 53. 31.100/53. 31.100
libavfilter 2. 60.100/2. 60.100
libswscale 2. 1.100/2. 1.100
libswresample 0. 6.100/0. 6.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
硬件:的BeagleBoard-XM + TI的Android 2.3(官方)
所以,在进入下一个命令给我的错误与480P: 的ffmpeg -i /sdcard/Video/480p.mp4
停止(信号)的ffmpeg -i/SD卡/视频/480p.mp4
完整的Android“答案”,从亚行logcat: http://pastebin.com/76JLgtXX
Android的开发者,没有任何人知道这个错误是什么手段,以及如何应对的呢? 我试图让DSP窗口更大,但没有运气。 像“stagefright /sdcard/Video/480p.mp4”的命令工作正常。
P.S.此外,我发现,在一些较大的文件(720P)Android的下一个答案:
[libstagefright_h264 @ 0xd479b0]解码失败:8000
答
您启用libstagefright-H264在你的ffmpeg的配置标志,但没有使其成为如此的解码器:
--enable-decoder=libstagefright_h264