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

Chr*_*ken 3 video objective-c avfoundation ipad ios

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

我遇到的问题是,JWPlayer(或我尝试过的任何播放器)必须在播放之前下载整个视频文件.在做了一些阅读后,我发现从IOS录制的视频没有启用"从互联网快速启动".或类似的规定.

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

pau*_*ley 5

shouldOptimizeForNetworkUse属性AVWriter允许您这样做.

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

编辑:

好吧,我现在不在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];

...
Run Code Online (Sandbox Code Playgroud)

等等.