我现在已经完全设置了使用AVFoundation框架录制视频的功能,这一切都很好,但现在我希望在录制期间添加叠加层(也可以在AVCaptureVideoPreviewLayer层上看到)
我可以将此叠加UIView对象添加到VideoPreviewLayer,但我正在努力如何在录制的视频上获得相同的视图.这UIView可能包含从UILabels到UIImageViews的任何内容.
在我的应用程序中,我需要捕获视频并在该视频上添加水印.水印应为文本(时间和注释).我看到使用"QTKit"Frame工作的代码.但是我读到该框架不适用于iPhone.
提前致谢.
我想使用 AVFoundation 为具有指定帧和持续时间的视频添加水印。我无法从谷歌和教程中找到答案。StackOverflow 上的一篇文章如何使用 AVFoundation 使用不同的图像和不同的 CMTimes 为您的视频添加水印并不能解决问题。它只是改变从开始时间到结束时间的不透明度。你有什么想法。谢谢!
我找到了一些示例,说明如何在视频上添加文本叠加层.
Ray的教程 - http://www.raywenderlich.com/30200/avfoundation-tutorial-adding-overlays-and-animations-to-videos
这个答案 - 如何在iOS上捕获的视频中添加水印
我还引用了其他几个.我的代码看起来与答案几乎完全相同,我一直在尝试调整它以使文本覆盖仅在视频开头显示一两秒钟.有关如何实现这一目标的任何帮助?
这是我的代码.这样可以导出视频,并在整个持续时间内显示叠加层.
if(vA) {
videoCompositionTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[videoCompositionTrack insertTimeRange:videoTimerange ofTrack:[[vA tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:&error];
[videoCompositionTrack setPreferredTransform:[[[vA tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] preferredTransform]];
if(error)
NSLog(@"%@", error);
}
if(aA) {
audioCompositionTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[audioCompositionTrack insertTimeRange:audioTimerange ofTrack:[[aA tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:&error];
if(error)
NSLog(@"%@", error);
}
CGSize videoSize = [videoCompositionTrack naturalSize];
UIImage *myImage = [UIImage imageNamed:@"cover.png"];
CALayer *aLayer = [CALayer layer];
aLayer.contents = (id)myImage.CGImage;
aLayer.frame = CGRectMake(5, 25, 100, 56);
aLayer.opacity = 0.7;
CATextLayer *titleLayer = …Run Code Online (Sandbox Code Playgroud) 有人可以帮助我使用Swift编程语言为录制的视频添加水印.作为参考,我正在研究AVFoundation框架.
以下是两个要求,
提前致谢.