在iOS中将视频裁剪成圆形?
我正在尝试裁剪一段用iPhone摄像头拍摄的视频,然后将其放在UIImageView的顶部。我一直在关注这个问题,如何在iOS中将视频裁剪成圆形?。我现在可以把这个视频放在另一个已经录好的视频上。现在我想让背景是图像,前景是裁剪过的视频。我现在的主要问题是在我想要裁剪的部分裁剪视频。我不能在这里发布所有代码,但这里是github repo的位置,进行修改的类称为CustomVideoCompositor.m。我很难把它编辑成圆形,我希望它是一个椭圆形,在下半部分,比宽的部分高 编辑 我想进行切割,以便只有圆角矩形的这一部分中的内容才会被裁剪并可用在iOS中将视频裁剪成圆形?,ios,xcode,camera,Ios,Xcode,Camera,我正在尝试裁剪一段用iPhone摄像头拍摄的视频,然后将其放在UIImageView的顶部。我一直在关注这个问题,如何在iOS中将视频裁剪成圆形?。我现在可以把这个视频放在另一个已经录好的视频上。现在我想让背景是图像,前景是裁剪过的视频。我现在的主要问题是在我想要裁剪的部分裁剪视频。我不能在这里发布所有代码,但这里是github repo的位置,进行修改的类称为CustomVideoCompositor.m。我很难把它编辑成圆形,我希望它是一个椭圆形,在下半部分,比宽的部分高 编辑 我想进行切割
您需要使用AVPlayer,因为它可以让您一次播放多个视频,或者让您的视频显示在另一个视图的顶部。此外,通过使用AVPlayer和AVPlayerLayer,很容易使视频显示为圆形。(这里有一个很好的教程,可以了解更多信息:) 以下是代码(针对Objective-C): 在视图控制器.h文件中:
#import <AVFoundation/AVFoundation.h>
如果您只想要剪切视频的视觉效果,而不需要修改视频文件,您只需在视频层中添加一个遮罩即可。我指的是CALayer
mask
property
您可以这样创建圆形遮罩:绘制黑色矩形,然后在其上绘制透明圆形。我正在尝试在Xcode中执行此操作,Xcode中没有
let
?啊,您使用的是Objective-C吗?我用的是斯威夫特。嘿,非常感谢,但这只是改变了视频播放器的画面,对吗?不是真的裁剪视频,如果视频被保存到相机卷上,它会是完整的吗?有没有办法保存已裁剪的视频或实际裁剪视频?你知道我的意思吗?是的,只是视频的帧被裁剪了,所以视频在镜头中保持不变。我以前从未亲自剪辑过视频并保存过它,但我相信这可以通过AVFoundation来实现。让我们来看看。
[super viewDidLoad];
// Set up the image view first (the imageView is an IBOutlet)
self.imageView.image = [UIImage imageNamed:@"image"];
self.imageView.alpha = 0.2;
NSURL *url = [[NSBundle mainBundle] URLForResource:@"video" withExtension:@"mp4"];
AVPlayer *player = [AVPlayer playerWithURL:url];
CGFloat diameter = MIN(self.view.frame.size.width, self.view.frame.size.height) * 0.8;
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:player];
layer.videoGravity = AVLayerVideoGravityResizeAspectFill;
layer.frame = CGRectMake((self.view.frame.size.width - diameter) / 2,
(self.view.frame.size.height - diameter) / 2,
diameter, diameter);
layer.cornerRadius = diameter / 2;
layer.masksToBounds = YES;
// Put the AVPlayerLayer on top of the image view.
[self.view.layer addSublayer:layer];
[player play];