短视频 SDK iOS(视频拼接)

如果有多个视频需要拼接成一个视频,可以使用 TXVideoJoiner,可以将多个视频前后拼接成一个视频,也可以将多个视频画面叠加的形式进行拼接。

相关产品
短视频 SDK 产品页,含版本规格、价格与购买入口。

一、1. 基础拼接功能

如果你只想将多个视频文件简单地前后拼接成一个视频文件,可以参见以下代码:

// 创建 TXVideoJoiner。TXPreviewParam为nil 表示这里不需要预览TXVideoJoiner* _videoJoin = [[TXVideoJoiner alloc] initWithPreview:nil];// 设置待拼接的视频文件组 _composeArray[_videoJoin setVideoPathList:_composeArray];// 设置回调,监听合并进度和合并完成事件_videoJoin.joinerDelegate = self;// 开始合并[_videoJoin joinVideo:VIDEO_COMPRESSED_540P videoOutputPath:_outFilePath]

二、2. 预览拼接文件

如果你想在合并视频之前对要合并的视频进行预览,可以参见如下代码:

//准备预览 ViewTXPreviewParam *param = [[TXPreviewParam alloc] init];param.videoView = _videoPreview.renderView;param.renderMode = PREVIEW_RENDER_MODE_FILL_EDGE;// 创建 TXVideoJoiner 对象并设置预览 viewTXVideoJoiner* _videoJoin = [[TXVideoJoiner alloc] initWithPreview:param];_videoJoin.previewDelegate = _videoPreview;// 设置待拼接的视频文件组 _composeArray[_videoJoin setVideoPathList:_composeArray];// 开始预览[_videoJoin startPlay]

设置好预览 view 同时传入待合成的视频文件数组后,可以开始播放预览,合成模块提供了一组接口来做视频的播放预览:

·startPlay:表示视频播放开始。

·pausePlay:表示视频播放暂停。

·resumePlay:表示视频播放恢复。

三、3. 视频合演

TXVideoJoiner 不仅仅支持将多个视频前后拼接起来,还可以将多个视频的画面合并在一起进行拼接,参见如下代码:

TXVideoJoiner* _videoJoin = [[TXVideoJoiner alloc] initWithPreview:nil];[_videoJoin setVideoPathList:_composeArray];_videoJoin.joinerDelegate = self;// 设置合演画面参数TXSplitScreenParams* splitScreenParams = [[TXSplitScreenParams alloc] init];splitScreenParams.canvasWidth = 720 * 2; // 合演时的画面宽度splitScreenParams.canvasHeight = 1280; // 合演时画面的高度// 每个视频在画面中的位置和大小splitScreenParams.rects = @[[NSValue valueWithCGRect:CGRectMake(0, 0, splitScreenParams.canvasWidth / 2, splitScreenParams.canvasHeight)], [NSValue valueWithCGRect:CGRectMake(splitScreenParams.canvasWidth / 2, 0, splitScreenParams.canvasWidth / 2, splitScreenParams.canvasHeight)]];splitScreenParams.durationMode = ALIGNS_TO_LONGEST; // // 指定合演视频的长度跟最长的视频一致[_videoJoiner setSplitScreenList:splitScreenParams];// 设置合演时,每个视频音频混合时的比重[_videoJoiner setVideoVolumes:@[@0, @1]];[_videoJoin joinVideo:VIDEO_COMPRESSED_540P videoOutputPath:_outFilePath]

当我们调用setSplitScreenList和setVideoVolumes设置合演时的画面参数和声音混合大小之后,不仅仅对调用splitJoinVideo生成视频生效,也对视频预览生效。

赞 (0)
上一篇 4天前
下一篇 4天前