You need to enable JavaScript to run this app.
导航
起播选档
最近更新时间:2025.11.13 14:55:45首次发布时间:2025.09.29 19:58:22
复制全文
我的收藏
有用
有用
无用
无用

起播选档是指在视频开始播放前,根据用户的网络状况、设备信息及业务场景,智能选择一个最合适的清晰度进行播放。起播选档旨在优化视频的起播体验,在保障首帧速度的同时,尽可能提供更高的初始画质。与 ABR 播放的不同之处在于,起播选档仅在播放开始前进行一次选档决策。播放过程中,清晰度将保持不变,不会根据网络波动自动切换。iOS 播放器 SDK 支持以下两种视频源的起播选档:

  • 自研协议:适用于播放基于火山引擎自研协议的 Vid 或 VideoModel 播放源。
  • 标准协议:适用于播放标准协议的 HLS Master M3U8 视频源。

前提条件

在集成此功能前,请确保您已满足以下所有条件:

  • 开启云端配置:此功能依赖云端开关。如需使用,请提交工单联系火山引擎技术支持团队为指定的 AppID 开启起播选档的云端控制开关。
  • 集成 SDK 并完成基础的 SDK 初始化:参考集成 SDK快速开始文档完成项目的基本配置和 SDK 初始化。SDK 版本要求:
    • 播放自研协议视频要求 1.46.3.x 或之后版本。
    • 播放 Master M3U8 协议视频要求 1.48.1.x 或之后版本。

核心接入流程

步骤 1:全局初始化

初始化播放器 SDK 后,调用以下代码进行选档模块的全局配置。此操作只需执行一次。

// 在调用 [TTSDKManager startWithConfiguration:configuration] 之后,进行全局配置

// 1. 使用默认参数初始化选档模块
// 该配置为抖音同款默认选档配置,能综合匹配目标码率和网速,保障体验和成本最优。
[TTVideoEngineStrategyAutoSelectConfig globalInitWithSDKDefaultConfig];

// 2. (推荐) 开启选档结果的日志上报,便于问题排查和数据分析。
[TTVideoEngine setGlobalForKey:VEGSKeyEngineSelectResultReport_BOOL value:@(YES)];

// 3. (推荐) 使预加载任务也采用相同的选档策略,提升预加载效率和命中率。
// 此开关对 App 内所有的预加载任务生效。
[TTVideoEngine ls_localServerConfigure].isEnablePreloadAutoSelect = YES;

步骤 2:为播放器实例开启选档

对于每一次播放,您都需要在创建 TTVideoEngine 实例后、设置 videoSource 之前,为该实例开启起播选档功能。

// 在创建 TTVideoEngine 实例后、设置 videoSource 前调用
if (AutoSelectSwitchOn) {    
    // 1.设置代理,用于接收选档结果等回调信息 (可选,推荐)
    // 开启起播选档后,无需再调用 configResolution 方法手动指定起播清晰度
    self.videoEngine.autoSelectDelegate = self;
    
    // 2.为当前播放器实例开启起播选档功能
    [self.videoEngine setOptionForKey:VEKKeyPlayerEnableAutoSelectBitrate_BOOL value:@YES];
    
    // 3.(按需配置) 如果您播放的是标准的 Master M3U8 视频源,需额外开启针对 M3U8 的开关。
    // 对于自研协议(Vid/VideoModel)播放,则无需添加此行。
    [self.videoEngine setOptionForKey:VEKKeyMasterm3u8AutoStartupBitrateSelectionEnable_BOOL value:@(YES)];

} else {
    // 如果不开启起播选档,则按原有逻辑手动设置起播清晰度
    [self.videoEngine configResolution:YourDefaultResolution];
}

// 后续设置 videoSource 并播放
// [self.videoEngine setVideoEngineVideoSource:vidSource];
// [self.videoEngine play];