我需要做的是解码视频帧和渲染在梯形表面上的帧。我使用Android2.2作为我的开发平台
我不使用mediaplayer服务,因为我需要访问解码帧。
到目前为止,我的情况如下:
所以现在我的问题是
所以对于我的问题。
发布于 2011-07-29 18:06:06
向添加其他视频格式和编解码器
如果您有“其他”视频格式的解析器,那么您需要实现Stagefright媒体提取器插件并集成到出色的播放器中。类似地,如果您拥有所需的视频编解码器的OMX组件,则需要将它们集成到OMXCodec类中。在stagefright中使用FFMPEG组件,或者使用FFMPEG播放器代替stagefright看起来并不简单。但是,如果Opencore中已经提供了所需的格式,那么您可以修改Android,以便为这些格式选择Opencore。您需要将获取YUV数据的逻辑移植到Opencore。(对MIOs弄脏了)
回放性能
表面平移器,用于正常播放,使用覆盖渲染。它通常提供大约4-8个视频缓冲区(到目前为止,我已经看到)。因此,您可以检查在打开的GL呈现中获得了多少不同的缓冲区。增加缓冲区肯定会提高性能。另外,检查YUV到RGB转换所需的时间。可以优化或使用开源库来提高性能。通常Open不用于视频渲染(以图形闻名)。所以对表演不太确定。
音频视频同步
使用音频时间作为参考。在Stagefright,令人敬畏的播放器使用音频播放器播放音频。此播放器实现了提供时间数据的接口。令人敬畏的播放器使用这个渲染视频。基本上,当视频帧的呈现时间与正在播放的音频示例的时间相匹配时,就会呈现视频帧。
沙什
https://stackoverflow.com/questions/6779741
复制相似问题