ios - 带有流式 AVAsset -11800 错误的 AVExportSession

标签 ios objective-c ios7 avfoundation

我一直在使用 AVPlayer 播放由 Streaming URL 支持的基础 Assets 的视频。

我正在尝试创建视频片段(仅 9 秒剪辑),以便在本地保存剪辑。

我使用以下代码尝试了 AVAssetExportSession,但 session 每次都返回 AVAssetExportSessionStatusFailed。具体错误为Error Domain=AVFoundationErrorDomain Code=-11800,表示未知错误。

AVURLAsset *otherAsset = [[AVURLAsset alloc] initWithURL:streamURL options:options];

NSArray *exportPresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:otherAsset];
NSLog(exportPresets.description);

AVAssetExportSession *session = [AVAssetExportSession exportSessionWithAsset:otherAsset presetName:AVAssetExportPresetMediumQuality];
NSArray *supportedFileTypes = session.supportedFileTypes;
NSLog(supportedFileTypes.description);


NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex: 0];
NSString *dstPath = [documentsDirectory stringByAppendingString:@"/sample.mov"];
NSURL *savetUrl = [NSURL fileURLWithPath:dstPath];

session.outputFileType = @"com.apple.quicktime-movie";
session.outputURL = savetUrl;

session.shouldOptimizeForNetworkUse = YES;

[session exportAsynchronouslyWithCompletionHandler:
 ^(void ) {


     switch ([session status]) {
         case AVAssetExportSessionStatusFailed:
             NSLog([session error].description);
             NSLog(@"Export failed: %@",[[session error]localizedDescription]);
             break;
         case AVAssetExportSessionStatusCancelled:
             NSLog(@"Export canceled");
             break;
         default:
             NSLog(@"Export Success, File Saved.");
             break;
     }
 }
 ];

我已经检查以确保我没有覆盖文件,并检查了 AVAssetExportSessionStatusFailed 的其他原因。

我猜 AVAssetExportSession 不适合与流媒体 Assets 一起使用。 (我可能是错的)。

我的猜测是对的,还是我需要做其他事情。是否有更简单的方法来截取和缓存流式 URL?

谢谢你的时间!

最佳答案

据我所知,除了iOS7下的本地文件外,没有其他方法可以导出。

不过,它似乎在 iOS8 下运行良好。

如果您不必设置 exportInterval,我建议您只使用 NSData.writeToFile(filePath, atomically: bool)。

希望这会有所帮助!

关于ios - 带有流式 AVAsset -11800 错误的 AVExportSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25292979/

相关文章:

ios - Xcode 5 - CPU 和内存使用失控

objective-c - 在 Core Data 中存储大量文本

objective-c - 从 NSString 中删除标记字符

ios - CLLocationManager 没有定义 requestAlwaysAuthorization 或 requestWhenInUseAuthorization

objective-c - 没有应用程序重启,本地化图像不会加载

ios - 如何使用自定义图像为 MKAnnotationView 设置动画

IOS 7 顶部和底部的黑条(仅运行 3.5)

ios - 如何在 shoudPerformSegueWithIdentifier 和 Firebase 中对用户进行身份验证?

ios - SWRevealViewController 中的后退按钮

ios7 - ios - 3.5"布局切断屏幕底部