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

December 17, 2023
测试
测试
测试
测试
2 分钟阅读

问题背景:

使用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];

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多