云点播 iOS 上传 SDK

对于在 iOS 平台上传视频的场景,云点播提供了 iOS 上传 SDK 。上传流程。

相关产品
云点播 产品页,含版本规格、价格与购买入口。
SDK 名称 云点播媒体上传 SDK
版本号 V1.3.1.0
SDK 介绍 为 App 的最终用户提供本地视频上传到云点播平台的场景。
开发者 腾讯云计算(北京)有限责任公司
合规使用说明 云点播媒体上传 SDK 合规使用指南
个人信息处理规则 云点播媒体上传 SDK 个人信息保护规则
下载 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 cancelPublish];

恢复上传,用相同的上传参数(视频路径和封面路径不变),再调用一次TXUGCPublish的publishVideo。

八、断点续传

在视频上传过程中,云点播支持断点续传,即当上传意外终止时,用户再次上传该文件,可以从中断处继续上传,减少重复上传时间。断点续传的有效时间是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 否
uploadResumeController 续点控制器,可自行实现续点键值的计算和保存,默认使用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 签名过期。
赞 (0)
上一篇 4天前
下一篇 4天前