gpt4 book ai didi

objective-c - 使用 NSInputStream 读取 .mov 文件,同时使用 AVCaptureMovieFileOutput 写入

转载 作者:行者123 更新时间:2023-12-03 17:22:40 24 4
gpt4 key购买 nike

目标:使用 AVCaptureMovieFileOutput 将视频录制到 .mov 文件。在录制视频时,我想将其上传到 S3。上传部分应该可以通过多部分上传来实现。 (Mac OS X +10.8 应用程序)

问题:当使用 AVCaptureMovieFileOutput 写入文件且文件大小不断增长时,如何以 block 的形式读取 .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 在委托(delegate)对象上接收 stream:handleEvent: 消息。但几秒钟后,消息停止传入(总字节数达到 250.000-300.000 字节 (0.2MB) 后)即使 .mov 文件大小增长到 >10MB,也会发生这种情况。

问题:

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

  2. 最初获得的数据是否不可靠?

  3. 这总体上是一种可行的方法吗?或者还有其他方法可以实现我想要的吗?

谢谢!

最佳答案

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

关于objective-c - 使用 NSInputStream 读取 .mov 文件,同时使用 AVCaptureMovieFileOutput 写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17380668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com