【发布时间】:2011-09-05 13:46:34
【问题描述】:
我正在使用 AVFoundation 框架捕获视频。借助 Apple 文档http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_MediaCapture.html%23//apple_ref/doc/uid/TP40010188-CH5-SW2
现在我做了以下事情
1.创建videoCaptureDevice
2.创建AVCaptureDeviceInput并设置videoCaptureDevice
3.创建AVCaptureVideoDataOutput并实现Delegate
4.Created AVCaptureSession - 将输入设置为 AVCaptureDeviceInput 并将输出设置为 AVCaptureVideoDataOutput
5.在 AVCaptureVideoDataOutput 委托方法中
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
我得到了 CMSamplebuffer 并转换成 UIImage 并测试使用打印 UIImageview
[self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];
每件事都进展顺利............
我的问题是, 我需要通过 UDP Socket 发送视频帧。即使我尝试了以下一个是坏主意,UIImage 到 NSData 并通过 UDP Pocket 发送。但是视频处理延迟了。主要是因为 UIImage 到 NSDate 的问题
所以请给我解决我的问题
1) 任何方式将 CMSampleBUffer 或 CVImageBuffer 转换为 NSData ??
2)像Audio Queue Service和Queue for Video一样存储UIImage,做UIImage到NSDate
并发送???
如果我落后于错误的算法,请按写入方向引导我
提前致谢
【问题讨论】:
标签: ios video-capture avfoundation video-processing core-video