使用TXVideoEditer 添加水印后导出视频卡在99%?没有成功失败回调?

2021-05-27 12:01:07 浏览数 (1)

问题背景:

使用TXVideoEditer 添加水印,之后再通过

代码语言:objective-c复制
- (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

解决方案:

导出视频的时候添加视频格式后缀即可。

代码语言:objective-c复制
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];

0 人点赞