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 的透明度是正确的。例如,以下代码演示了如

相关内容

热门资讯

黑科技攻略!微扑克ai人工智能... 黑科技攻略!微扑克ai人工智能(透视)果然是有挂(有挂挂)-哔哩哔哩,支持语音通讯、好友开房及战队组...
黑科技透明挂!红龙poker正... 黑科技透明挂!红龙poker正规吗(透视)往昔真的是有挂(有挂黑科技)-哔哩哔哩是由北京得红龙pok...
黑科技私人局!wpk数据手机软... 黑科技私人局!wpk数据手机软件叫啥(ai辅助)太坑了存在有挂(力荐教程黑科技详情)-哔哩哔哩进入游...
黑科技软件!德扑赔率胜率计算(... 黑科技软件!德扑赔率胜率计算(黑科技)都是是真的有挂(有挂德州)-哔哩哔哩;玩家必备必赢加哟《136...
黑科技真的!aapoker有外... 黑科技真的!aapoker有外挂吗(ai辅助)太坑了真的有挂(技巧教程黑科技脚本)-哔哩哔哩;1、a...
黑科技软件!AApoker辅助... 1、黑科技软件!AApoker辅助工具(透视)其实有挂(有挂智能)-哔哩哔哩;详细教程。2、AApo...
黑科技ai!aapoker有外... 黑科技ai!aapoker有外挂,wepoke有插件吗,攻略方法(有挂了解)-哔哩哔哩1)wepok...
黑科技软件!wepoke有辅助... 黑科技软件!wepoke有辅助吗(ai辅助)太坑了是真的有挂(软件教程黑科技技巧)-哔哩哔哩一、we...
黑科技线上!aa扑克网上的挂真... 黑科技线上!aa扑克网上的挂真的(智能ai)果然真的是有挂(有挂安装)-哔哩哔哩是一款可以让一直输的...
黑科技机器人!wpk有伙牌吗,... 您好,wepoker有外挂吗这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...