问题描述
我需要去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的Android 2.3(官方)
所以,在进入下一个命令给我的错误与480P:的ffmpeg -i /sdcard/Video/480p.mp4
完整的Android的答案,从亚行logcat: http://pastebin.com/76JLgtXX
Android的开发者,有谁知道这个错误的手段,以及如何处理呢?我试图使DSP窗口更大,但没有运气。像stagefright /sdcard/Video/480p.mp4命令工作正常。
P.S。此外,我发现,在一些较大的文件(720p)的Android的下一个答案:
您启用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
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:
You enabled libstagefright-h264 in your ffmpeg configure flags but didn't enable it as a decoder as such:
--enable-decoder=libstagefright_h264
这篇关于FFmpeg的的Android Stagefright SIGSEGV错误(H264德code)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!