You need to enable JavaScript to run this app.
导航

进阶功能

最近更新时间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,则可以使用全异步抽取 Meta 的能力,提升上传速度。您需要调用 setGetMetaMode 并将 mode 设为 BDVideoUploadGetMetaModeAsync。示例代码如下:

- (void)setGetMetaMode:(BDVideoUploadGetMetaMode)mode;

自定义上传配置

上传 SDK 支持自定义上传配置。您可在开始上传前调用 setUploadConfig 方法进行配置。setUploadConfig 方法的原型如下:

- (void)setUploadConfig:(NSDictionary*)config;

其中 config dictionary 可选字段和取值类型说明如下表所示。

字段名类型说明
BDFileUploadSliceSizeNSNumber(NSInteger)分片大小,单位为字节,默认值为 512 KB。
BDFileUploadSocketNumNSNumber(NSInteger)分片上传时的并发连接数。
BDFileUploadTcpOpenTimeOutMilliSecNSNumber(NSInteger)单次 TCP 建连超时时间,单位为毫秒, 默认值为 5000。
BDFileUploadMaxFailTimesNSNumber(NSInteger)建立连接超时时间,单位为秒。
BDFileUploadRWTimeoutNSNumber(NSInteger)单个分片传输超时时间,单位为秒,默认值为 40。
BDFileUploadSliceRetryCountNSNumber(NSInteger)单个分片上传可以重试的次数。
BDFileUploadFileRetryCountNSNumber(NSInteger)文件级别的上传重试次数。
BDFileUploadTranTimeOutUnitNSNumber(NSInteger)系统 socket 单次读写超时时间,单位为秒,默认值为 70。
BDFileUploadAliveMaxFailTimeNSNumber(NSInteger)复用连接的超时时间,单位为秒,默认值为 10。
BDFileUploadHttpsEnableNSNumber(BDUploadHttpsOpen)是否开启 HTTPS。可根据上传阶段分步开启。

BDFileUploadSliceSize 为例,设置上传文件分片大小的示例代码如下:

[self.videoUploadClient setUploadConfig:@{
    // 设置文件分片大小为 512 KB
    BDFileUploadSliceSize:@(512 * 1024),
}];

设置回调透传参数

调用 setRequestParameter 设置回调透传参数。该参数值会通过 FileUploadComplete 回调中的 CallbackArgs 参数返回给您的服务端。示例代码如下:

[self.uploader setRequestParameter:@[BDFileUploadCustomedParameter: ""]]

设置工作流模板 ID

上传视频支持设置工作流模板 ID,调用 setTemplateId 方法传入 templateId 参数,示例代码如下:

- (void)setTemplateId:(NSString *)templateId;
参数类型描述
templateIdNSString工作流模板 ID。登录视频点播控制台,进入空间,在媒体处理设置 > 工作流模板页面,获取工作流模板 ID。具体详见工作流模板