iphone监控客户端ffmpeg解码成功,使用uiimage贴图没显示

来源:互联网 发布:地图标识软件 编辑:程序博客网 时间:2024/05/21 19:35
各位大哥,我参考dropcam写了一个监控客户端,也就是利用live555实现rtsp连接并接收H264视频数据,用ffmpeg解码。具体是在rtspClient每接收到一帧数据调用didReceiveFrame函数,在didReceiveFrame回调函数中利用ffmpeg解码每接收到的一个帧,现在已经解码成功,保存为ppm图像是可以打开看到监控的图片,但用uiimage画图却一直是没有图像。不知道是什么原因,请教大侠。 - (void)didReceiveFrame:(const uint8_t*)frameData frameDataLength:(int)frameDataLength presentationTime:(struct timeval)presentationTime durationInMicroseconds:(unsigned)duration subsession:(RTSPSubsession*)subsession { 这边我省略了给每帧加入sps,pps头的代码,如果需要的可以联系我 if ([myDecoder isFrameReady]) { [myDecoder decodeFrame:myFrameData]; //解码器已经在前面初始化好,这里直接调用解码函数,myFrameData是加入了帧头的每帧数据 imageView.image = myDecoder.currentImage; //解码好后,经过yuv->rgb24->uiimage转换,得到currentImage。进行贴图播放 //保存图片 ,这里保存100张 if(i<100) { [myDecoder savePiture:i]; i++; } } } 网上有人说刷新UI必须在主线程中,但我的程序没有分线程。也试过[self performSelectorOnMainThread:@selector(updateView:) withObject:myDecoder.currentImage waitUntilDone:YES]; 方法。也还是不成功,我尝试过在didReceiveFrame中直接imageView.image = image1;image1是一张已知的图片,结果也没有图像。 是不是需要分线程,一个作接收,一个作解码。请大侠指点
原创粉丝点击