我需要做的是解码视频帧并在梯形表面上渲染帧。我使用 Android 2.2 作为我的开发平台
我没有使用媒体播放器服务,因为我需要访问解码的帧。
这是我到目前为止所拥有的:
- 我正在使用 stagefright 框架来提取解码的视频帧。
- 然后将每一帧从 YUV420 转换为 RGB 格式
- 然后将转换后的帧复制到纹理并渲染到 OpenGL 表面
- 请注意,我使用的是处理而不是直接使用 OpenGL 调用。
所以现在我的问题是
- 我只能用 stagefright 解码 mp4 文件
- 渲染太慢,320x420 帧大约 100ms
- 还没有音频,我只能渲染视频,但我仍然不知道如何同步音频帧的播放。
所以对于我的问题...
- 如何支持其他视频格式?我应该使用 stagefright 还是应该切换到 ffmpeg?
- 我怎样才能提高性能?我应该能够支持至少 720p 吗?
- 我应该直接使用 OpenGL 调用而不是处理吗?这会提高性能吗?
- 如何在播放期间同步音频帧?