如何在 iOS 中为 mp4 添加字幕

how to add subtitle to mp4 in iOS

我已经知道我应该使用 AVFoundation 从 .mp4 文件中获取 CGContextRef;

并像这样使用:

CATextLayer *subtitle1Text = [[CATextLayer alloc] init];
[subtitle1Text setFont:@"Helvetica-Bold"];
[subtitle1Text setFontSize:36];
[subtitle1Text setFrame:CGRectMake(0, 0, size.width, 400)];
[subtitle1Text setString:[self.subtitles objectAtIndex:idx]];
[subtitle1Text setAlignmentMode:kCAAlignmentCenter];
[subtitle1Text setForegroundColor:[[UIColor whiteColor] CGColor]];

[subtitle1Text drawInContext:context];

制作字幕;

现在的问题是如何从 .mp4 文件中获取 CGContextRef?

我的意思是我有 url 的 .mp4 文件,但是如何在 mp4 中添加 CATextLayer?

您必须使用 AVFoundation 框架才能在视频上添加文本,您可以查看以下 link 以了解更多详细信息。您已经在视频层上添加了文本层,然后必须将其导出。

AVMutableComposition

查看下面的示例代码,有一种方法可以添加水印,您可以通过更改一些属性(例如开始时间和结束时间)来创建字幕。

AVSimpleEditoriOS