最近遇到使用EasyPusher推送视频的时候发现播放的时候只有声音没有画面,这个很奇怪,刚开始以为是手机不兼容的原因,后来在同一部手机上也出现了这种情况,然后就思考了变量在哪儿导致的问题,我修改了分辨率,之前640x480是有画面的,现在修改为320x240就不行了,就跟踪了一下解码后的数据,发现原来问题出在关键帧以及SPS/PPS判断上了。
之前判断:
//outData是编码器编码后的数据帧
if (outData[0] == 0 && outData[1] == 0 && outData[2] == 0 && outData[3] == 1 && outData[4] == 103) {
mPpsSps = outData;