android webrtc学习二(H264硬解码适配基于M79版本)
场景
Android webrtc个人觉得不太友好,对H264的支持实在是太低,不过这也正好触发我们不断的去学习和动手去解决遇到的问题;我使用的webrtc版本是m79这个版本,一开始是用master分支的,但考虑到master可能很多大神在修改,可能会有不稳定的情况,所以就选择了m79版本,这个在此刻应该算是最新的稳定版本了吧!
在使用webrtc开发音视频通话客户端过程当中,发现当IOS使用Default编解码的时候,Android使用Software(软编解码)才能和IOS互通,而当IOS改成H264编解码时,却发现虽然能跟IOS互通,但是Android却没有IOS的画面,而IOS却有Android的画面,IOS跟PC端也是稳定的,那么问题就定位在Android这里的,无论Android改成Default还是Hard编解码,跟IOS总是不能完美的通信;这时候查看DefaultVideoDecoderFactory、DefaultVideoEncoderFactory、HardwareVideoDecoderFactory、HardwareVideoEncoderFactory和MediaCodecVideoDecoderFactory(HardwareVideoDecoderFactory的父类)源码发现,针对硬解码和硬编码来说,webrtc是做了“白名单”设