ios - 使用 alpha 从多个视频中合成视频

标签 ios objective-c video

我有两个视频,一个是用户使用设备的摄像头拍摄的,另一个是我想在第一个视频之上展示的带 alpha channel 的视频。 我一直在搜索,但没有找到正确的方法来做到这一点。 1. 覆盖视频的正确格式是什么(带有 alpha 的格式)? 2、两者如何匹配? 有一个名为 Action Movie FX 的应用程序完全符合我的要求。 提前致谢。

最佳答案

Ray Wenderlish 有一个非常好的教程可以做到这一点。 http://www.raywenderlich.com/30200/avfoundation-tutorial-adding-overlays-and-animations-to-videos .

在彼此之上创建层的基本概念。例如,以下代码会将 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];

关于ios - 使用 alpha 从多个视频中合成视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174739/

相关文章:

c# - 使用 VideoPlayer 播放 360 度立体视频

ios - YouTube 网页如何在移动 Safari 上自动开始视频播放而无需用户操作?

video - 使用ffmpeg将RGB转换为YUV422,颜色不正确

ios - 以编程方式创建 UITabBarController subview 而不加载 UITabBarItem 图像

css - 用于检测设备是否为 IOS 的 Javascript,如果为真则修改 CSS

iphone - 尝试使用 didSelectAnnotationView 和 didDeselectAnnotationView 对 subview 进行动画处理

ios - 带有在另一个类中声明的 pushViewController 的 UIButton

iphone - UIWebView 加载数据和 iWork 文件

objective-c - 所有测试均未完成 - xcode 4.5

ios - 如何使用 UITableViewHeaderFooterView?