Gle*_* Yu 33 video android h.264 hardware-acceleration stagefright
我需要为研究项目进行硬件加速的H.264解码,以测试自定义协议.
正如我在网上搜索一样,我发现了一些在Android上执行硬件加速视频解码的方法.
有些人"说" libstagefright是高通球员明显取得成功的唯一途径.
目前我不确定哪种方式可行.我现在有点困惑.如果一切正常,我当然更喜欢硬件无关的方法.
由于我用Galaxy Tab 7.7(3.2和Enxyos),VLC,Mobo,Rock,vplayer,rock和mobo测试了几个视频播放器的H/W加速度,VLC无法正常工作,vplayer似乎有渲染花费其性能的bug.
无论如何,我在Rockplayer上做了一个'操作'并删除了data\data\com.redirecting\rockplayer中的所有.so库,软件解码崩溃了,而hw解码工作仍然很好!我想知道他们是怎么做到的.在我看来,hw加速可以独立于硬件平台.
有人可以解决这个问题吗?或者提供任何参考资料或更多细节?
Oak*_*tes 22
要回答上述问题,请介绍几个与Android相关的概念
OpenMAX
Android使用OpenMAX进行编解码器接口.因此,所有本机编解码器(硬件加速或其他)提供OpenMAX接口.StageFright(播放器框架)使用此接口使用编解码器解码媒体
NDK
Android允许Java应用程序使用NDK与底层C/C++本机库进行交互.这需要使用JNI(Java Native Interface).
现在回答你的问题 How to tap native decoder to decode raw video bitstream?
在Android 4.0及更低版本中,Android无法访问Java层的底层视频解码器.您需要编写本机代码才能直接与OMX解码器交互.虽然这是可能的,但它并不是微不足道的,因为它需要知道OMX如何工作以及如何使用NDK将此OMX映射到应用程序.
在4.1(Jelly Bean版本)中,Android似乎通过JAVA API在应用程序级别提供对硬件加速解码器的访问.有关新API的更多详细信息,请访问http://developer.android.com/about/versions/android-4.1.html#Multimedia
| 归档时间: |
|
| 查看次数: |
60224 次 |
| 最近记录: |