AVAsynchronousVideoCompositionRequestsourceFrameByTrackIDnilforvideowithalpha
创始人
2024-11-12 20:30:37
0次

这是一个视频合成中的常见错误,通常在视频包含 alpha 通道时会出现。要解决此问题,需要将合成项目中的每个视频轨道的 sourceTrackID 属性设置为唯一的 ID 值,以确保能够正确地检索每个轨道中的帧。以下是一个示例代码,用于设置两个视频轨道的 ID 值:

AVMutableComposition *composition = [AVMutableComposition composition];

// 添加第一个视频轨道
AVMutableCompositionTrack *videoTrack1 = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
videoTrack1.preferredTransform = CGAffineTransformMakeRotation(M_PI_2);
AVAsset *asset1 = [AVAsset assetWithURL:[NSURL fileURLWithPath:@"video1.mov"]];
AVAssetTrack *assetTrack1 = [asset1 tracksWithMediaType:AVMediaTypeVideo].firstObject;
CMTimeRange assetTimeRange1 = CMTimeRangeMake(kCMTimeZero, asset1.duration);
[videoTrack1 insertTimeRange:assetTimeRange1 ofTrack:assetTrack1 atTime:kCMTimeZero error:nil];
videoTrack1.sourceTrackID = kCMPersistentTrackID_Invalid; // 设置第一个视频轨道的 ID 值

// 添加第二个视频轨道
AVMutableCompositionTrack *videoTrack2 = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
videoTrack2.preferredTransform = CGAffineTransformMakeRotation(M_PI_2);
AVAsset *asset2 = [AVAsset assetWithURL:[NSURL fileURLWithPath:@"video2.mov"]];
AVAssetTrack *assetTrack2 = [asset2 tracksWithMediaType:AVMediaTypeVideo].firstObject;
CMTimeRange assetTimeRange2 = CMTimeRangeMake(kCMTimeZero, asset2.duration);
[videoTrack2 insertTimeRange:assetTimeRange2 ofTrack:assetTrack2 atTime:kCMTimeZero error:nil];
videoTrack2.sourceTrackID = kCMPersistentTrackID_Invalid + 1; // 设置第二个视频轨道的 ID 值

注意:在代码示例中,我们将第一个视频轨道的 ID 值设置为 kCMPersistentTrackID_Invalid,这是一个保留值,用于表示 '无效的 ID 值” 。

此外,还要确保视频合成器的应用程序配方中,处理 AVVideoCompositionRenderContext 的透明度是正确的。例如,以下代码演示了如

相关内容

热门资讯

玩家亲测!五龙捕鱼开挂功能神器... 玩家亲测!五龙捕鱼开挂功能神器,五龙捕鱼总是是真的有开挂神器(有辅助挂讲解)1、五龙捕鱼公共底牌简单...
分享一款!杜鹃花透视功能方法,... 分享一款!杜鹃花透视功能方法,杜鹃花切实是有透视方法(详细教程辅助)1、不需要AI权限,帮助你快速的...
推荐几款新版!至友互娱透视功能... 推荐几款新版!至友互娱透视功能教程,至友互娱总是真的是有透视教程(有辅助挂神器)至友互娱是不是有人用...
最新技巧!河落杠次开挂功能方法... 最新技巧!河落杠次开挂功能方法,河落杠次果然有开挂方法(有辅助挂工具)1、超多福利:超高返利,海量正...
必备辅助推荐!大咖娱乐透视挂功... 必备辅助推荐!大咖娱乐透视挂功能工具,大咖娱乐一贯是有透视挂工具(有辅助挂规律)1、上手简单,内置详...
重大消息!中至上饶麻将透视挂功... 重大消息!中至上饶麻将透视挂功能插件,中至上饶麻将都是是真的有透视挂插件(有辅助挂实锤)中至上饶麻将...
实测分享!干瞪眼透视功能技巧,... 实测分享!干瞪眼透视功能技巧,干瞪眼总是是真的有透视技巧(有辅助挂头条)该软件可以轻松地帮助玩家将干...
总算明白!云龙干瞪眼雀牌辅助功... 总算明白!云龙干瞪眼雀牌辅助功能app,云龙干瞪眼雀牌好像是有辅助app(有辅助挂头条)云龙干瞪眼雀...
交流学习经验!乐天棋牌辅助功能... 交流学习经验!乐天棋牌辅助功能插件,乐天棋牌本来是真的有辅助插件(有辅助挂辅教程)1.乐天棋牌 选牌...
技术分享!红拐弯开挂功能教程,... 技术分享!红拐弯开挂功能教程,红拐弯总是真的有开挂教程(有辅助挂app)在进入红拐弯软件靠谱后,参与...