【发布时间】:2013-06-29 13:23:40
【问题描述】:
目标:
使用AVCaptureMovieFileOutput 将视频录制到 .mov 文件中。在录制视频时,我想将其上传到 S3。上传部分应该是可行的多部分上传。 (Mac OS X +10.8 应用)
问题:
如何在使用 AVCaptureMovieFileOutput 写入文件并增大大小的同时从块中读取 .mov 文件?
到目前为止我做了什么:
// session = AVCaptureSession with audio and video inputs
fileOutput = [[AVCaptureSession alloc] init];
[session addOutput:fileOutput]
[session startRunning]
[fileOutput startRecordingToOutputFileURL: fileUrl recordingDelegate:self]
// In async dispatch queue
inputStream = [NSInputStream inputStreamWithFileAtPath:fileUrl]
// schedule in run loop, open and run
此时我开始在带有NSStreamEventHasBytesAvailable 的委托对象上接收stream:handleEvent: 消息。但几秒钟后,消息停止进入(在总字节数为 250.000-300.000 字节 (0.2MB) 之后)即使 .mov 文件的大小增长到 >10MB,也会发生这种情况。
问题:
为什么
NSInputStream委托不能继续接收流事件?最初可用的数据是否不可靠?
这总体上是一种可行的方法吗?还是有其他方法可以实现我想要的?
谢谢!
【问题讨论】:
-
您找到解决方案了吗? @乔纳斯
标签: objective-c cocoa avfoundation nsinputstream