用于网络播放的AVFoundation录制视频 - 必须在播放开始前下载整个文件

时间:2011-12-07 16:52:12

标签: objective-c ios ipad video avfoundation

我有一个iPad应用程序,可以录制视频并使用AVFoundation将其发送到我的SaaS应用程序。然后我的Web应用程序读取文件,并使用JWPlayer播放它。

我遇到的问题是,JWPlayer(或我尝试过的任何播放器)必须在播放之前下载整个视频文件。在做了一些阅读后,我发现从IOS录制的视频没有启用“从互联网快速启动”。或者沿着这些方向发展。

我正在使用AVFoundation。有没有不同的方法来保存视频,以便它立即从我的网络服务器流?我错过了什么。

1 个答案:

答案 0 :(得分:5)

AVWriter上的shouldOptimizeForNetworkUse属性允许您执行此操作。

您可以使用它在上传到您的服务器之前重写捕获的电影文件(或者立即捕获后,无论我认为合适)。

修改

好的,我现在不在Mac上,但这些内容也是如此:

AVAsset *originalFile = [AVAsset assetWithURL:originalFileURL];

NSURL *outputFileURL = wherever you want to put it;

NSError *readerError;  

NSError *writerError;

AVAssetReader *reader = [AVAssetReader assetReaderWithAsset:originalFile error:&readerError];

AVAssetWriter *writer = [AVAssetWriter assetWriterWithURL:outputFileURL fileType:AVFileTypeQuickTimeMovie error:&writerError];

writer.shouldOptimizeForNetworkUse = YES;

[writer startWriting];

...

等等。