基于FFmpeg+SDL_android。FFmpeg用于视频文件的解码输出,SDL + EGL用于解码后视频的输出。输出到Android的Surface显示出来。虽然有点迟,但是自己的方案还是实现了。
开源的Surface输出代码寻找花了一定时间,主要是SDL1.2并不好用。做了某些调整才能搭建起来。基本的框架还是源于自己的想法。
其中一些闭源的实现有RockPlayer,它是完全没有用到SDL的,用的大概是Java层直接的EGL swap的实现。Native code似乎是EGL的调用。还有一个就是WuZhenHua Player,就是后来的Super Player。用的也是SDL输出的思路。
但毫无例外,软解rmvb格式都是用的FFmpeg的开源代码。只是一个是开源做得好些,另一个压根没提到使用了FFmpeg而已,甚至连libffmpeg的文件名字都不保留。
阅读(1991) | 评论(0) | 转发(0) |