我尝试使用AVCaptureSession从摄像头捕获视频,然后我想使用AVAssetWriter将结果写入文件(具体地说,使用多个AVAssetWriters将捕获写入分块视频,但我们不需要使这个问题复杂化)。但是,我在弄清楚数据实际需要传递到AVAssetWriter的位置时遇到了麻烦。在苹果开发人员文档中,我只看到AVCaptureSession数据被传递给AVCaptureFileOutput。也许我只是错过了一些东西。AVAssetWriter能否仅用作捕获会话的输出?一个相关的例子或少量代码(虽然不是必需的)将会受到欢迎。非常感谢!
发布于 2013-04-09 11:24:37
你的目标到底是什么?因为您所请求的(使用AVAssetWriter作为AVCaptureSession的输出)是不可能的。
基本上,AVCaptureSession对象有输入(例如:由某个AVCaptureInput子类表示的相机)和输出(以AVCaptureOutput的形式),而AVAssetWriter不是AVCaptureOutput子类,因此无法直接从AVCaptureSession使用它。
如果希望使用AVAssetWriter,则必须使用AVCaptureFileOutput实例写出数据,然后使用AVAssetReader读回数据,以某种方式修改数据,然后通过AVAssetWriter输出数据。
最后要记住的是:AVAssetReader的文档并不能保证实时操作。
发布于 2013-04-10 04:33:30
看看http://www.gdcl.co.uk/2013/02/20/iOS-Video-Encoding.html吧。这展示了如何将捕获输出与资产编写器连接,然后从资产编写器提取数据以进行流式传输。
G
https://stackoverflow.com/questions/15889936
复制相似问题