最近更新时间:2023.11.29 11:41:12
首次发布时间:2022.10.19 11:39:13
本文为您介绍视频上传的进阶功能。
调用 setSnapshot
设置视频自动抽帧时间点,单位为秒。设置成功后,上传 SDK 将根据您设置的固定时间点截取视频帧,作为视频的封面图。示例代码如下:
[self.videoUploadClient setSnapshot:<#CGFloat#>];
如想开启断点续传功能,您需在每次初始化上传对象后、开始上传之前,调用 setUploadConfig
并设置 BDFileUploadDiskResumeOption
。开启断点续传后,用户在您的应用中上传文件时,如果发生强制退出应用等情况导致上传中断,下次上传同一个文件时,上传 SDK 会自动获取断点,并从断点处继续上传,从而节省上传时间。
示例代码如下:
- (void)initVideoUploader { ...... [videoUploadClient setUploadConfig:@{ // 开启断点续传功能: // 1:开启。任务中断后,从断点处续传。 // 0:关闭。任务中断后,重新开始上传。 BDFileUploadDiskResumeOption: @(1), }]; ...... }
如果您的业务场景无需实时抽取 Meta,则可以使用全异步抽取 Meta 的能力,提升上传速度。您需要调用 setGetMetaMode
并将 mode
设为 BDVideoUploadGetMetaModeAsync
。示例代码如下:
- (void)setGetMetaMode:(BDVideoUploadGetMetaMode)mode;
上传 SDK 支持自定义上传配置。您可在开始上传前调用 setUploadConfig
方法进行配置。setUploadConfig
方法的原型如下:
- (void)setUploadConfig:(NSDictionary*)config;
其中 config dictionary 可选字段和取值类型说明如下表所示。
字段名 | 类型 | 说明 |
---|---|---|
BDFileUploadSliceSize | NSNumber(NSInteger) | 分片大小,单位为字节,默认值为 512 KB。 |
BDFileUploadSocketNum | NSNumber(NSInteger) | 分片上传时的并发连接数。 |
BDFileUploadTcpOpenTimeOutMilliSec | NSNumber(NSInteger) | 单次 TCP 建连超时时间,单位为毫秒, 默认值为 5000。 |
BDFileUploadMaxFailTimes | NSNumber(NSInteger) | 建立连接超时时间,单位为秒。 |
BDFileUploadRWTimeout | NSNumber(NSInteger) | 单个分片传输超时时间,单位为秒,默认值为 40。 |
BDFileUploadSliceRetryCount | NSNumber(NSInteger) | 单个分片上传可以重试的次数。 |
BDFileUploadFileRetryCount | NSNumber(NSInteger) | 文件级别的上传重试次数。 |
BDFileUploadTranTimeOutUnit | NSNumber(NSInteger) | 系统 socket 单次读写超时时间,单位为秒,默认值为 70。 |
BDFileUploadAliveMaxFailTime | NSNumber(NSInteger) | 复用连接的超时时间,单位为秒,默认值为 10。 |
BDFileUploadHttpsEnable | NSNumber(BDUploadHttpsOpen) | 是否开启 HTTPS。可根据上传阶段分步开启。 |
以 BDFileUploadSliceSize
为例,设置上传文件分片大小的示例代码如下:
[self.videoUploadClient setUploadConfig:@{ // 设置文件分片大小为 512 KB BDFileUploadSliceSize:@(512 * 1024), }];
调用 setRequestParameter
设置回调透传参数。该参数值会通过 FileUploadComplete 回调中的 CallbackArgs
参数返回给您的服务端。示例代码如下:
[self.uploader setRequestParameter:@[BDFileUploadCustomedParameter: ""]]
上传视频支持设置工作流模板 ID,调用 setTemplateId
方法传入 templateId
参数,示例代码如下:
- (void)setTemplateId:(NSString *)templateId;
参数 | 类型 | 描述 |
---|---|---|
templateId | NSString | 工作流模板 ID。登录视频点播控制台,进入空间,在媒体处理设置 > 工作流模板页面,获取工作流模板 ID。具体详见工作流模板。 |