端側超分是基于終端的超分模型,在設備本地將視頻由低清晰度轉換成高清晰度,可以明顯改善視頻播放質量,同時降低傳輸成本。本文為您介紹如何在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為關閉