端側超分是基於終端的超分模型,在裝置本地將視頻由低清晰度轉換成高清晰度,可以明顯改善視頻播放品質,同時降低傳輸成本。本文為您介紹如何在Android或iOS端配置端側超分功能。
背景資訊
隨著視頻業務的演化,使用者對高清、超高清等觀看體驗的追求在不斷提升。部分視頻源由於製作、儲存、分發限制無法提供高清晰度的版本,無法保證使用者的觀看體驗。傳統的雲端超高清製作方案對頻寬資源有依賴,無法滿足弱網等環境的使用者需求。
端側超分功能可以平衡視頻主觀品質、觀看體驗和頻寬成本,通過在本地將視頻由低清晰度轉換成高清晰度畫質,明顯提升視頻觀看體驗的同時不增加頻寬傳輸成本。
功能優勢
類目 | 說明 |
效能及功耗 |
|
相容性 |
|
功能形式 |
|
前提條件
您已擷取播放器SDK License授權併購買端側超分的增值服務。詳情請參見管理License。
Android端整合使用
擷取端側超分功能庫。
端側超分的功能庫,現需要您提交工單申請或聯絡阿里雲商務申請開通。
整合端側超分功能庫。
載入端側超分功能庫。
端側超分功能庫為動態庫,可以通過以下方法載入功能庫。
System.loadLibrary(libname);配置端側超分功能庫。
/** * 設定濾鏡配置。在prepare之前調用此方法。如果想更新濾鏡配置,則調用updateFilterConfig() * @param filterConfig */ /**** * Set filter config. call this before prepare. If want update filter config, call updateFilterConfig() * @param filterConfig */ abstract public void setFilterConfig(FilterConfig filterConfig); /** * 更新濾鏡配置 * @param target * @param options */ /**** * upadate filter config. * @param target * @param options */ abstract public void updateFilterConfig(String target, FilterConfig.FilterOptions options); /** * 開啟關閉濾鏡 * @param target 如果為空白,則對所有濾鏡生效 * @param invalid true:開啟;false:關閉 */ /**** * disable/enable filter. * @param target if empty , disable all filters. * @param invalid true: enable(default); false: disable */ abstract public void setFilterInvalid(String target, boolean invalid);
使用範例。
//filterConfig內部為json實現,具體的json格式如下 player.setFilterConfig(filterConfig); //設定端側超分功能有效,target同下面的json中“target”對應的value player.setFilterInvalid(target,false);[ { "target":"sr", "options":{ //該功能暫不需要具體option } } ]
iOS端整合使用
擷取端側超分功能庫。
端側超分的功能庫,現需要您提交工單申請或聯絡阿里雲商務申請開通。
整合端側超分功能庫。
端側超分功能庫為framework形式的動態庫,需要在Xcode的frameworks and libraries中添加該功能庫。可以通過以下方法添加功能庫。
說明下述範例程式碼以5.5.4.0版本為例,實際版本請根據您的業務情況選擇。iOS播放器SDK的發布版本請參見iOS播放器SDK。
pod 'AliPlayerSDK_iOS_NORMAL_SR_FILTER', '5.5.4.0'使用範例。
// 初始化 AVPFilter* srFilter = [[AVPFilter alloc] initWithTarget:@"normal_sr"]; // 使用這個庫,目前target名稱必須為normal_sr,不能自訂其他的字串 AVPFilterOptions* srOptions = [[AVPFilterOptions alloc] init]; [srOptions setOptions:@"path" value:@"xxx"]; // xxx為自訂沙箱相對路徑 [srFilter setOptions:srOptions]; [filterConfig addFilter:srFilter]; [self.player setFilterConfig:filterConfig]; // 開始使用 [self.player setFilterInvalid:@"normal_sr" invalid:YES]; // invalid設定YES為開啟,NO為關閉