iphone监控客户端ffmpeg解码成功,使用uiimage贴图没显示
2013-02-20 20:56
387 查看
各位大哥,我参考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是一张已知的图片,结果也没有图像。 是不是需要分线程,一个作接收,一个作解码。请大侠指点
- (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是一张已知的图片,结果也没有图像。 是不是需要分线程,一个作接收,一个作解码。请大侠指点
相关文章推荐
- android jni中将大数据回调到java层的时候用法,比如视频流,音频流等,图片流等 比如我用ffmpeg解码好视频流,想送到java层使用opengGL进行显示,opencv进行人脸识别等等
- FFMPEG教程2_解码后在屏幕显示(使用2014年新SDK重新整理编译通过)
- windows下 使用 ffmpeg 解码显示编码为H264的RTSP流
- 使用tinymini210开发远程的温度监控系统,实现C#和安卓客户端显示数据和控制
- 使用FFMPeg解码显示ts流
- 使用 Ruby on Rails 和 Eclipse 开发 iPhone 应用程序之 2 :向客户端显示 iPhone 内容
- libav/FFMPEG 视频音频编解码库使用
- 使用paros监控你的ipad/iphone http请求
- FFmpeg + Opencv 解码和显示
- 基于onvif规范的视频监控系统客户端(四):QT5.8+FFMPEG实现rtsp流的播放
- 使用ffmpeg 解码mp4文件的时候出现 Error splitting the input into NAL units.
- 使用UIImagePickerController从IPhone照片库或照相机获取图像
- APPRO IPNC方案 Android手机监控客户端---ffmpeg移植
- Android使用FFMPEG解码成PPM图片
- 基于ffmpeg-1.1的视频解码并输出到LCD显示
- 使用 ffmpeg 进行网络推流:拉流->解封装->解码->处理原始数据(音频、视频)->编码->编码->推流
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(二)用ffmpeg解码音频
- linux性能监控工具-(显示系统整体资源使用情况-top命令)
- Android音视频学习第1章:使用ffmpeg进行视频解码
- linux之x86裁剪移植---ffmpeg的H264解码显示(420、422)