gpt4 book ai didi

iphone - 使用 AVMutableComposition 合并两个 m4v 电影文件 - 视频不会合并

转载 作者:行者123 更新时间:2023-12-03 20:52:28 24 4
gpt4 key购买 nike

我正在使用以下代码尝试合并存储在文档文件夹中的两个 m4v 文件:

CMTime insertionPoint = kCMTimeZero;
NSError * error = nil;

AVMutableComposition *composition = [AVMutableComposition composition];

AVURLAsset* asset = [AVURLAsset URLAssetWithURL: [assetURLArray objectForKey:kIntroVideo] options:nil];

if (![composition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset.duration)
ofAsset:asset
atTime:insertionPoint
error:&error])
{
NSLog(@"error: %@",error);
}

insertionPoint = CMTimeAdd(insertionPoint, asset.duration);

AVURLAsset* asset2 = [AVURLAsset URLAssetWithURL: [assetURLArray objectForKey:kMainVideo] options:nil];

if (![composition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset2.duration)
ofAsset:asset2
atTime:insertionPoint
error:&error])
{
NSLog(@"error: %@",error);
}

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:composition presetName:AVAssetExportPresetHighestQuality];

NSString *exportVideoPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/FinishedVideo.m4v"];

NSURL *exportURL = [NSURL fileURLWithPath:exportVideoPath];
exportSession.outputURL = exportURL;
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
switch (exportSession.status) {
case AVAssetExportSessionStatusFailed:{
NSLog (@"FAIL");
break;
}
case AVAssetExportSessionStatusCompleted: {
NSLog (@"SUCCESS");
}
};
}];
}

问题是两个视频无法正确合并。合并的电影总时长是正确的,但是视频永远不会转换到第二部电影,并在其持续时间内继续显示第一部电影的最后一帧。奇怪的是,我可以听到在后台播放的第二个视频的音频。

有人知道哪里出了问题吗?

编辑 - 奇怪的是,如果我合并两个长度完全相同的剪辑,它就可以工作。

编辑 - 已尝试将文件扩展名更改为 .mov,但存在同样的问题。

最佳答案

您尚未将合成设置为导出 session 。

行后:

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:compositionpresetName:AVAssetExportPresetHighestQuality];

添加此行

exportSession.videoComposition = 合成;

这应该可以解决您的问题。

关于iphone - 使用 AVMutableComposition 合并两个 m4v 电影文件 - 视频不会合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285007/

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