FFmpeg的的Andr​​oid Stagefright SIGSEGV错误(H264德code) [英] FFMpeg Android Stagefright SIGSEGV error (h264 decode)

查看:206
本文介绍了FFmpeg的的Andr​​oid Stagefright SIGSEGV错误(H264德code)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要去code H264 文件为 YUV 在Android 2.3+。据我了解,我需要与Stagefright沟通,因为它了唯一的出路,现在,关闭与访问的的OpenMAX IL 的实施之后。我已经使用FFmpeg的0.10(并试图0.9 / 0.9.1 ..)针对此问题,与NDK7编译它(也试过NDK6b具有相同的结果):

 的ffmpeg版本0.10版权所有(C)2000-2012 FFmpeg的开发
  建于2012年1月28日14时42分37秒用gcc 4.4.3
  配置:--target-OS = Linux的--cross- preFIX =臂的Linux androideabi- --arch =手臂--cpu =的ARMv7-A --sysroot = /家庭/格/安卓/ Android_NDK /平台/ Android的9 /弓臂 - 禁用avdevice --disable-DE codeR = H264  - 禁用德codeR = h264_vdpau --enable-libstagefright-H264  -  preFIX =构建/ stagefright / armeabi-V7A --extra-CFLAGS =' -  Iandroid源/框架/基/包括-Iandroid源/系统/核心/包括-Iandroid源/框架/基/媒体/ libstagefright -Iandroid源/框架/基/包括/媒体/ stagefright /的OpenMAX -I /家庭/格/安卓/ Android_NDK /来源/ CXX-STL /系统/包括-march =的ARMv7-A -mfloat-ABI = softfp -mfpu =霓虹灯' - 超LDFLAGS = -  WL  - 修复 -  Cortex-A8的-Landroid-库-Wl,-rpath链接,Android系统库--extra-CXXFLAGS =' -  WNO-multichar -fno-异常-fno-RTTI 
  libavutil 51. 34.101 / 51 34.101
  libav codeC 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
超快速的音频和视频连接codeR
用法:ffmpeg的[选项] [INFILE选项] -i INFILE] ... {[OUTFILE选项] OUTFILE} ...
 

硬件的:的BeagleBoard-XM + TI的Andr​​oid 2.3(官方)

所以,在进入下一个命令给我的错误与480P: 的ffmpeg -i /sdcard/Video/480p.mp4

  

停止(信号)的ffmpeg -i /sdcard/Video/480p.mp4

完整的Andr​​oid的答案,从亚行logcat: http://pastebin.com/76JLgtXX

Android的开发者,有谁知道这个错误的手段,以及如何处理呢? 我试图使DSP窗口更大,但没有运气。 像stagefright /sdcard/Video/480p.mp4命令工作正常。

P.S。此外,我发现,在一些较大的文件(720p)的Andr​​oid的下一个答案:

  

[libstagefright_h264 @ 0xd479b0]德code失败:80000000

解决方案

您启用libstagefright-H264在你的ffmpeg的配置标志,但没有启用它作为一个去codeR这样:

   - 让德codeR = libstagefright_h264
 

I need to decode h264 file to YUV on Android 2.3+. As I understand I need to communicate with Stagefright, as it`s the only way now, after closing access with OpenMAX IL implementations. I have used FFmpeg 0.10 (and tried 0.9/0.9.1..) for this issue, compiled it with NDK7 (and also tried NDK6b with the same result):

  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}...

Hardware: Beagleboard-Xm + TI Android 2.3 (official)

So, entering next command give me error with 480p: ffmpeg -i /sdcard/Video/480p.mp4

Stopped (signal) ffmpeg -i /sdcard/Video/480p.mp4

Full Android "answer" from ADB Logcat: http://pastebin.com/76JLgtXX

Android-developers, does anybody know what this error means and how to deal with it? I tried to make DSP window bigger, but with no luck. Commands like "stagefright /sdcard/Video/480p.mp4" works fine.

P.S. Additionally I found that on some bigger files (720p) Android answers next:

[libstagefright_h264 @ 0xd479b0] Decode failed: 80000000

解决方案

You enabled libstagefright-h264 in your ffmpeg configure flags but didn't enable it as a decoder as such:

--enable-decoder=libstagefright_h264

这篇关于FFmpeg的的Andr​​oid Stagefright SIGSEGV错误(H264德code)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆