tencent cloud

云点播

动态与公告
产品动态
公告
产品简介
产品概述
产品特性
产品功能
产品优势
应用场景
解决方案
专业版
云点播专业版简介
快速入门
控制台指南
开发指南
购买指南
计费概述
计费方式
购买指引
账单查询
续费说明
欠费说明
退费说明
快速入门
控制台指南
控制台介绍
服务概览
应用管理
媒体管理
资源包管理
License 管理
实时日志分析
实践教程
媒体上传
如何将点播的媒体文件进行智能降冷
媒体处理
分发播放
如何接收事件通知
如何进行源站迁移
直播录制
如何进行自定义源站回源
直播精彩剪辑固化至云点播 VOD 指引
如何使用 EdgeOne 分发云点播内容
开发指南
媒体上传
媒体加工处理
媒体 AI
事件通知
媒体分发播放
媒体加密与版权保护
播放频道
访问管理
下载媒体文件
应用体系
错误码
播放器 SDK 文档
概述
基本概念
产品功能
Demo 体验
免费测试
购买指南
SDK 下载
License 指引
播放器教程
含 UI 集成方案
无 UI 集成方案
高级功能
API 文档
第三方播放器插件
Player SDK Policy
服务端 API 文档
History
Introduction
API Category
Other APIs
Media Processing APIs
Parameter Template APIs
Task Management APIs
Media Upload APIs
Media Management APIs
Event Notification Relevant API
Media Categorization APIs
Domain Name Management APIs
Distribution APIs
AI-based Sample Management APIs
Region Management APIs
Data Statistics APIs
Carousel-Related APIs
Just In Time Transcode APIs
No longer recommended APIs
Making API Requests
AI-based image processing APIs
Task Flow APIs
Data Types
Error Codes
Video on Demand API 2024-07-18
常见问题
移动端播放问题
费用相关问题
视频上传问题
视频发布问题
视频播放问题
Web 端播放问题
全屏播放问题
数据统计问题
访问管理相关问题
媒资降冷问题
相关协议
Service Level Agreement
VOD 政策
隐私政策
数据处理和安全协议
联系我们
词汇表

iOS 上传 SDK

PDF
聚焦模式
字号
最后更新时间: 2026-01-14 16:25:47
对于在 iOS 平台上传视频的场景,云点播提供了 iOS 上传 SDK 。上传流程请参见 客户端上传指引
SDK 名称
云点播 iOS 上传 SDK
版本号
V1.3.1.0
SDK 介绍
为 App 的最终用户提供本地视频上传到云点播平台的场景
开发者
腾讯云计算(北京)有限责任公司
下载 SDK
1. 单击下载 iOS 上传 Demo 及源码,将下载好的压缩包解压,可以看到 Demo 目录。
2. 上传源码在 LiteAVSDK_UGC_Upload_iOS/TXVodUpload 目录下。

集成上传库和源码

1. 拷贝上传源码目录TXVodUpload TXVodUpload.podspec 到您的工程中。
2. 在您的 Podfile 中添加如下依赖:
pod 'TXVodUpload', :path => '/TXVodUpload.podspec所在位置的路径'
3. 如果需要手动集成,可在您的 Podfile 中添加如下依赖:
pod 'QCloudQuic','6.3.9'
pod 'QCloudCOSXML/Slim','6.5.1'
// 根据您的工程已经有该依赖可以不用额外添加
pod 'AFNetworking','4.0.1'
4. 在 Build Settings 中设置 Other Linker Flags,加入参数-ObjC

简单视频上传

初始化上传对象

TXUGCPublish *_videoPublish = [[TXUGCPublish alloc] initWithUserID:@"upload_video_userid"];

设置上传对象回调

_videoPublish.delegate = self;
#pragma mark - TXVideoPublishListener

- (void)onPublishProgress:(NSInteger)uploadBytes totalBytes:(NSInteger)totalBytes {
self.progressView.progress = (float)uploadBytes/totalBytes;
NSLog(@"onPublishProgress [%ld/%ld]", uploadBytes, totalBytes);
}

- (void)onPublishComplete:(TXPublishResult*)result {
NSString *string = [NSString stringWithFormat:@"上传完成,错误码[%d],信息[%@]", result.retCode, result.retCode == 0? result.videoURL: result.descMsg];
[self showErrorMessage:string];
NSLog(@"onPublishComplete [%d/%@]", result.retCode, result.retCode == 0? result.videoURL: result.descMsg);
}

构造上传参数

TXPublishParam *publishParam = [[TXPublishParam alloc] init];

publishParam.signature = @"由您业务后台产生的签名";
publishParam.videoPath = @"视频文件路径";
signature计算规则请参见 客户端上传签名

调用上传

[_videoPublish publishVideo:publishParam];
说明:
上传方法根据用户文件的长度,自动选择普通上传以及分片上传,用户不用关心分片上传的每个步骤,即可实现分片上传。
如需上传至指定应用下,请参见 应用体系 - 客户端上传

高级功能

携带封面

在上传参数中带上封面图片即可。
TXPublishParam *publishParam = [[TXPublishParam alloc] init];
publishParam.signature = @"由您业务后台产生的签名";
publishParam.coverPath = @"封面图片文件路径";
publishParam.videoPath = @"视频文件路径";

取消和恢复上传

取消上传,调用cancelPublish接口。
[_videoPublish canclePublish];
恢复上传,用相同的上传参数(视频路径和封面路径不变),再调用一次TXUGCPublishpublishVideo

断点续传

在视频上传过程中,云点播支持断点续传,即当上传意外终止时,用户再次上传该文件,可以从中断处继续上传,减少重复上传时间。断点续传的有效时间是1天,即同一个视频上传被中断,那么1天内再次上传可以直接从断点处上传,超过1天默认会重新上传完整视频。
上传参数中的enableResume为断点续传开关,默认是开启的。

开启 https 上传

将上传参数中 TXPublishParam 中的 enableHTTPS 置为 true 即可,默认 false。
TXPublishParam *publishParam = [[TXPublishParam alloc] init];
publishParam.enableHTTPS = true;

关闭日志

关闭日志需要通过 TXUGCPublish 的setIsDebug方法进行操作,默认开启。开启的情况下,会打印 logcat 日志,同时也会将 log 保存到 app 私有目录下。
// NO 关闭日志
[_videoPublish setIsDebug:NO];


图片和媒体上传

// 创建对象
TXUGCPublish *_imagePublish = [[TXUGCPublish alloc] initWithUserID:@"upload_image_userid"];

// 设置回调
_imagePublish.mediaDelegate = self;

// 构造上传参数
TXMediaPublishParam *publishParam = [[TXMediaPublishParam alloc] init];
publishParam.signature = @"由您业务后台产生的签名";
publishParam.mediaPath = @"图片文件路径";

// 上传图片或媒体文件
[_imagePublish publishMedia:publishParam];


视频上传接口描述

初始化上传对象:TXUGCPublish::initWithUserID
参数名称
参数描述
类型
必填
userID
用户 userID,用于区分不同的用户。
NSString
开始上传:TXUGCPublish.publishVideo
参数名称
参数描述
类型
必填
param
发布参数。
TXPublishParam
上传参数:TXPublishParam
参数名称
参数描述
类型
必填
signature
NSString*
videoPath
本地视频文件路径。
NSString*
coverPath
封面图片本地路径,可不设置。
NSString*
fileName
上传到腾讯云的视频文件名称,不填默认用本地文件名。
NSString*
enableResume
是否启动断点续传,默认开启。
BOOL
enableHttps
是否启动 HTTPS,默认关闭。
BOOL
enablePreparePublish
是否开启预上传机制,默认开启。预上传机制可以大幅提升文件的上传质量。
BOOL
sliceSize
分片大小,支持最小为1M,最大10M,默认为上传文件大小除以10。
long
concurrentCount
分片上传最大并发数量,默认为4个。
int
trafficLimit
限速值设置范围为819200 ~ 838860800,即100KB/s ~ 100MB/s,如果超出该范围会返回400错误。不建议将该值设置太小,防止超时。-1 表示不限速。
long
uploadResumeController
续点控制器,可自行实现续点键值的计算和保存,默认使用 MD5 计算文件键值。
id<IUploadResumeController>
设置上传回调:TXUGCPublish.delegate
成员变量名称
变量描述
类型
必填
delegate
上传进度和结果回调代理。
TXVideoPublishListener
上传进度回调:onPublishProgress
变量名称
变量描述
类型
uploadBytes
已经上传的字节数。
NSInteger
totalBytes
总字节数。
NSInteger
上传结果回调:onPublishComplete
变量名称
变量描述
类型
result
上传结果。
TXPublishResult
上传事件回调:onPublishEvent
变量名称
变量描述
类型
evt
事件,用于调试打印。
NSDictionary
上传结果:TXPublishResult
成员变量名称
变量说明
类型
retCode
错误码。
int
descMsg
上传失败的错误描述。
NSString
videoId
点播视频文件 ID。
NSString
videoURL
视频存储地址。
NSString
coverURL
封面存储地址。
NSString
预上传:TXUGCPublishOptCenter.prepareUpload
参数名称
参数描述
类型
必填
signature
NSString

错误码

SDK 通过TXVideoPublishListener接口来订阅视频上传相关的状态。因此,可以用TXPublishResult中的retCode来确认视频发布的情况。
错误码
在 TVCCommon 中所对应的常量
含义
0
TVC_OK
上传成功
1001
TVC_ERR_UGC_REQUEST_FAILED
请求上传失败,通常是客户端签名过期或者非法,需要 App 重新申请签名
1002
TVC_ERR_UGC_PARSE_FAILED
请求信息解析失败
1003
TVC_ERR_VIDEO_UPLOAD_FAILED
上传视频失败
1004
TVC_ERR_COVER_UPLOAD_FAILED
上传封面失败
1005
TVC_ERR_UGC_FINISH_REQ_FAILED
结束上传请求失败
1006
TVC_ERR_UGC_FINISH_RSP_FAILED
结束上传响应错误
1008
TVC_ERR_FILE_NOT_EXIST
传入的文件路径上文件不存在
1009
TVC_ERR_ERR_UGC_PUBLISHING
视频正在上传中
1010
TVC_ERR_UGC_INVALID_PARAME
无效参数
1012
TVC_ERR_INVALID_SIGNATURE
短视频上传签名为空
1013
TVC_ERR_INVALID_VIDEOPATH
视频路径为空
1017
TVC_ERR_USER_CANCLE
用户调用取消上传
1020
TVC_ERR_UPLOAD_SIGN_EXPIRED
签名过期

图片和媒体上传接口描述

初始化上传对象:TXUGCPublish::initWithUserID
参数名称
参数描述
类型
必填
userID
用户 userID,用于区分不同的用户。
NSString
开始上传:TXUGCPublish.publishMedia
参数名称
参数描述
类型
必填
param
发布参数。
TXMediaPublishParam
上传参数:TXMediaPublishParam
参数名称
参数描述
类型
必填
signature
NSString*
mediaPath
本地图片/媒体文件路径。
NSString*
fileName
上传到腾讯云的图片/媒体文件名称,不填默认用本地文件名。
NSString*
enableResume
是否启动断点续传,默认开启。
BOOL
enableHttps
是否启动 HTTPS,默认关闭。
BOOL
enablePreparePublish
是否开启预上传机制,默认开启。预上传机制可以大幅提升文件的上传质量。
BOOL
sliceSize
分片大小,支持最小为1M,最大10M,默认为上传文件大小除以10。
long
concurrentCount
分片上传最大并发数量,默认为4个。
int
trafficLimit
限速值设置范围为819200 ~ 838860800,即100KB/s ~ 100MB/s,如果超出该范围会返回400错误。不建议将该值设置太小,防止超时。-1 表示不限速。
long
uploadResumController
续点控制器,可自行实现续点键值的计算和保存,默认使用 MD5 计算文件键值。
id<IUploadResumeController>
设置上传回调:TXUGCPublish.TXMediaPublishListener
成员变量名称
变量描述
类型
必填
mediaDelegate
上传进度和结果回调代理。
TXMediaPublishListener
上传进度回调:onMediaPublishProgress
变量名称
变量描述
类型
uploadBytes
已上传的字节数。
NSInteger
totalBytes
总字节数。
NSInteger
上传结果回调:onMediaPublishComplete
变量名称
变量描述
类型
result
上传结果。
TXMediaPublishResult
上传事件回调:onMediaPublishEvent
变量名称
变量描述
类型
evt
事件,用于调试打印。
NSDictionary
上传结果:TXMediaPublishResult
成员变量名称
变量说明
类型
retCode
错误码。
int
descMsg
上传失败的错误描述。
NSString
mediaId
图片/媒体文件 ID。
NSString
mediaURL
图片/媒体存储地址。
NSString
预上传:TXUGCPublishOptCenter.prepareUpload
参数名称
参数描述
类型
必填
signature
NSString

错误码

SDK 通过TXMediaPublishListener接口来订阅图片/媒体上传相关的状态。因此,可以用TXMediaPublishResult中的retCode来确认图片/媒体发布的情况。
错误码
在 TVCCommon 中所对应的常量
含义
0
TVC_OK
上传成功
1001
TVC_ERR_UGC_REQUEST_FAILED
请求上传失败,通常是客户端签名过期或者非法,需要 App 重新申请签名。
1002
TVC_ERR_UGC_PARSE_FAILED
请求信息解析失败。
1003
TVC_ERR_VIDEO_UPLOAD_FAILED
上传视频失败。
1004
TVC_ERR_COVER_UPLOAD_FAILED
上传封面失败。
1005
TVC_ERR_UGC_FINISH_REQ_FAILED
结束上传请求失败。
1006
TVC_ERR_UGC_FINISH_RSP_FAILED
结束上传响应错误。
1008
TVC_ERR_FILE_NOT_EXIST
传入的文件路径上文件不存在。
1009
TVC_ERR_ERR_UGC_PUBLISHING
视频正在上传中。
1010
TVC_ERR_UGC_INVALID_PARAME
无效参数。
1012
TVC_ERR_INVALID_SIGNATURE
短视频上传签名为空。
1013
TVC_ERR_INVALID_VIDEOPATH
视频路径为空。
1017
TVC_ERR_USER_CANCLE
用户调用取消上传。
1020
TVC_ERR_UPLOAD_SIGN_EXPIRED
签名过期。


帮助和支持

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

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

文档反馈