繁体   English   中英

使用AVCaptureMovieFileOutput写入时使用NSInputStream读取.mov文件

[英]Reading a .mov file with NSInputStream while writing with AVCaptureMovieFileOutput

目标 :使用AVCaptureMovieFileOutput将视频录制到.mov文件。 录制视频时,我想将其上传到S3。 上载部分应该可以与分段上传一起使用。 (Mac OS X +10.8应用程序)

问题 :当用AVCaptureMovieFileOutput写入.mov文件并增大大小时,如何从.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以上,也会发生这种情况。

问题:

  1. 为什么NSInputStream委托不继续接收流事件?

  2. 最初可用的数据不可靠吗?

  3. 这整体可行吗? 还是有另一种方式来实现我想要的?

谢谢!

我在http://www.gdcl.co.uk/2013/02/20/iOS-Video-Encoding.html上有一个示例,该示例从电影文件读取,同时从相机(iOS 6)记录到文件。 我正在使用单独的AVAssetWriter,但看起来这应该对您来说很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM