gpt4 book ai didi

objective-c - 视频剪辑导出错误: 'Invalid output file type' in objective-c

转载 作者:行者123 更新时间:2023-12-02 04:27:20 33 4
gpt4 key购买 nike

我正在尝试修剪现有视频剪辑并将该剪辑重新保存在与原始文件相同的位置。但是,当我运行我的应用程序时,出现此错误:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“输出文件类型无效”

我找到了建议,但它们要求我更改 AVMediaTypeVideo 的输出文件类型。我想保留 AVMediaTypeVideo 因为这是原始视频文件的保存方式。

这是我到目前为止所拥有的:

AVMutableComposition *finalClip = [[AVMutableComposition alloc]init];

NSString *outputPath = [[NSString alloc] initWithFormat:@"%@%@", NSTemporaryDirectory(), @"output.mov"];

NSURL *outputURL = [[NSURL alloc] initFileURLWithPath:outputPath];

AVURLAsset *videoclip = [AVURLAsset URLAssetWithURL:outputURL options:nil];

AVMutableCompositionTrack *finalClipTrack = [finalClip addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];

[finalClipTrack insertTimeRange:CMTimeRangeMake(CMTimeMake((duration*indexNum), 1), CMTimeMake(duration,1)) ofTrack:[[videoclip tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil];

NSString *outputPathwe = [[NSString alloc] initWithFormat:@"%@%@", NSTemporaryDirectory(), @"outputwe.mov"];

NSURL *outputURLwe = [[NSURL alloc] initFileURLWithPath:outputPathwe];

if ([[NSFileManager defaultManager] fileExistsAtPath:outputPathwe])
[[NSFileManager defaultManager] removeItemAtPath:outputPathwe error:nil];

AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:finalClip presetName:AVAssetExportPresetHighestQuality];

exporter.outputFileType = AVMediaTypeVideo;

exporter.outputURL=outputURLwe;

[exporter exportAsynchronouslyWithCompletionHandler:^{

dispatch_async(dispatch_get_main_queue(), ^{

[self exportDidFinish:exporter];

});
}];

我觉得这很简单,但我只是想念。这是我第一次使用 AVFoundation,因此我们将不胜感激!

最佳答案

AVMediaTypeVideo 是“媒体类型”而不是“输出文件类型”。您的原始视频具有 AVMediaTypeVideo 类型的轨道。原始视频不是 AVMediaTypeVideo 类型。

AVAssetExportSession 的 outputFileTypeNSString 类型的常量。允许的值列在 AVFoundation/AVMediaFormat.h 中。对于视频,它们是:

  • AVFileTypeQuickTimeMovie
  • AVFileTypeMPEG4
  • AVFileTypeAppleM4V

您必须选择允许的值之一用于 AVAssetExportSessionoutputFileType

关于objective-c - 视频剪辑导出错误: 'Invalid output file type' in objective-c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26005200/

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