问题背景:
使用TXVideoEditer 添加水印,之后再通过
- (void) generateVideo:(TXVideoCompressed)videoCompressed videoOutputPath:(NSString *)videoOutputPath;
导出添加水印之后的视频,在导出的时候没有成功和失败的回调,并且进度一直在99%。
问题根源:
再导出视频路径的时候,需要拼接视频后缀。如果是直接获取的网络视频名称,建议检查这个名称是否带有后缀。
正确:/var/mobile/Containers/Data/Application/7C70754F-60F1-4955-B69A-7A41611775E6/Library/Caches/WaterMark.mp4
错误:/var/mobile/Containers/Data/Application/7C70754F-60F1-4955-B69A-7A41611775E6/Library/Caches/WaterMark
解决方案:
导出视频的时候添加视频格式后缀即可。
NSURL*url= [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"1621582392155992" ofType:@"mp4"]];
[_ugcEdit setVideoPath:url.path];
[_ugcEdit setVideoBitrate:2000000];
// 配置代理
// 设置生成事件的回调委托对象,可以获取生成进度与结果
// _fileName = @"1621582392155992.mp4";
// 2. 对视频进行处理,这里以添加水印为例
UIImage *image = [UIImage imageNamed:@"watermark"];
[_ugcEdit setWaterMark:image normalizationFrame:CGRectMake(0, 0, 0.3 , 0.3 * image.size.height / image.size.width)];
//拿到cache文件夹的路径
NSString *cache=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
cache = [cache stringByAppendingPathComponent:@"WaterMark.mp4"];
_savePath = cache;
[_ugcEdit generateVideo:VIDEO_COMPRESSED_720P videoOutputPath:cache];