Ios 使用alpha从多个视频中合成视频

Ios 使用alpha从多个视频中合成视频,ios,objective-c,video,Ios,Objective C,Video,我有两个视频,一个是用户用设备的摄像头拍摄的,另一个是alpha频道的视频,我想在第一个视频的顶部显示。 我已经搜索了很多,但还没有找到正确的方法。 1.覆盖视频的正确格式是什么(带有alpha的格式)? 2.我怎么做这两场比赛? 有一个叫做动作电影FX的应用程序,它正是我所说的。 提前谢谢。Ray Wenderlish有一个非常好的教程来做这件事 如果在每个层之上创建层,则基本概念为。例如,以下代码将在视频中添加UILabel: // 1 - Set up the text layer CAT

我有两个视频,一个是用户用设备的摄像头拍摄的,另一个是alpha频道的视频,我想在第一个视频的顶部显示。 我已经搜索了很多,但还没有找到正确的方法。 1.覆盖视频的正确格式是什么(带有alpha的格式)? 2.我怎么做这两场比赛? 有一个叫做动作电影FX的应用程序,它正是我所说的。
提前谢谢。

Ray Wenderlish有一个非常好的教程来做这件事

如果在每个层之上创建层,则基本概念为。例如,以下代码将在视频中添加UILabel:

// 1 - Set up the text layer
CATextLayer *subtitle1Text = [[CATextLayer alloc] init];
[subtitle1Text setFont:@"Helvetica-Bold"];
[subtitle1Text setFontSize:36];
[subtitle1Text setFrame:CGRectMake(0, 0, size.width, 100)];
[subtitle1Text setString:_subTitle1.text];
[subtitle1Text setAlignmentMode:kCAAlignmentCenter];
[subtitle1Text setForegroundColor:[[UIColor whiteColor] CGColor]];

// 2 - The usual overlay
CALayer *overlayLayer = [CALayer layer];
[overlayLayer addSublayer:subtitle1Text];
overlayLayer.frame = CGRectMake(0, 0, size.width, size.height);
[overlayLayer setMasksToBounds:YES];

CALayer *parentLayer = [CALayer layer];
CALayer *videoLayer = [CALayer layer];
parentLayer.frame = CGRectMake(0, 0, size.width, size.height);
videoLayer.frame = CGRectMake(0, 0, size.width, size.height);
[parentLayer addSublayer:videoLayer];
[parentLayer addSublayer:overlayLayer];

composition.animationTool = [AVVideoCompositionCoreAnimationTool
                                     videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];

虽然下面提到的示例将在视频上合成带有alpha的静态图像,但它不适用于将在另一个视频上合成带有alpha的视频。有关iOS下具有完整alpha通道的视频的实际工作示例,请参阅