tencent cloud

短视频 SDK

动态与公告
产品动态
关于短视频 SDK “startPlay”接口名变更的公告
产品简介
产品概述
产品功能
应用场景
基本概念
购买指南
价格总览
退款说明
免费测试
License 指引
新增与续期 License
配置查看 License
Demo 体验
SDK 下载
SDK 下载
发布日志(App)
含 UI 集成方案
小视频 App
源码解读(iOS)
源码解读(Android)
不含 UI 集成方案
SDK 集成
拍照和录制
预览裁剪和拼接
上传和播放
美颜特效
高级功能和特效
API 文档
短视频编辑
短视频录制
技术支持
错误码表
功能答疑
常见问题
上传常见问题
Android 编译问题
Android 常见问题
iOS 常见问题
License 常见问题
UGSV 政策
隐私政策
数据处理和安全协议

iOS

PDF
聚焦模式
字号
最后更新时间: 2025-04-01 17:14:08
如果有多个视频需要拼接成一个视频,可以使用 TXVideoJoiner,可以将多个视频前后拼接成一个视频,也可以将多个视频画面叠加的形式进行拼接。

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. 预览拼接文件

如果您想在合并视频之前对要合并的视频进行预览,可以参见如下代码:
//准备预览 View
TXPreviewParam *param = [[TXPreviewParam alloc] init];
param.videoView = _videoPreview.renderView;
param.renderMode = PREVIEW_RENDER_MODE_FILL_EDGE;

// 创建 TXVideoJoiner 对象并设置预览 view
TXVideoJoiner* _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]
当我们调用setSplitScreenListsetVideoVolumes设置合演时的画面参数和声音混合大小之后,不仅仅对调用splitJoinVideo生成视频生效,也对视频预览生效。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈