【短視頻SDK】Android如何使用硬編硬解?
為什麼要使用硬編硬解?
音頻和視頻編碼時有兩種選擇:軟件編碼和硬件編碼。軟編的效果更好但會占用更多的資源,硬編的效果差一些但占用的資源較少.
同樣解碼也有兩種選擇:硬件解碼和軟件解碼.硬解的效果相比軟解的速度有更大的優勢.由於Android設備和係統的多樣性,並非每一台設備都直接支持硬編,硬解,正確的使用硬編、硬解可以極大的提高性能.
內部硬編硬解策略?
短視頻SDK關於硬編硬解的默認策略是:默認開啟硬編,硬解,因為Android的多樣性問題為提升阿裏雲短視頻SDK使用硬編硬解的成功率和覆蓋率,阿裏雲短視頻SDK依靠阿裏機型庫top 300的Android機型進行測試之後,收集形成了內部的硬編黑名單和硬解白名單.如果硬編或者硬解失敗了,就會轉為軟編和軟解.
接口說明
為了方便用戶使用,阿裏雲短視頻SDK提供接口來擴展支持硬編黑名單和硬解白名單.關鍵接口:
/**
* 添加硬解碼器白名單,model和versions的順序必須對應起來
* 白名單中的機型將使用硬解,白名單外的機型將使用軟解
* @param models 機型model
* @param versions 機型係統版本號,如果不需要適配到版本號,則version填0即可
*/
public static void decoderAdaptiveList(String[] models, int[] versions);
/**
* 添加硬編黑名單,model和versions的順序必須對應起來
* 黑名單內的機型將使用軟編,黑名單外的機型都使用硬編
* @param models 機型model
* @param versions
*/
public static void encoderAdaptiveList(String[] models,int[] versions);
當然雖然默認是硬編硬解,開發者依然可以根據業務設置為軟編軟解,SDK提供了強製設置硬編、硬解的接口:
/**
* 設置強製開啟硬解,建議在開發階段debug的時候可以強製開啟硬解,正式環境下不建議強製開啟。
* 開發者可以在開發階段強製開啟硬解,適配測試後,將通過的機型使用{@link NativeAdaptiveUtil#decoderAdaptiveList(String[], int[])}接口
* 添加到白名單中。
* @param hwDecoderEnable
*/
public static void setHWDecoderEnable(boolean hwDecoderEnable);
/**
* 設置強製開啟硬編,建議在開發階段debug的時候可以強製開啟硬編,正式環境下不建議強製開啟。
* 開發者可以在開發階段強製開啟硬編,適配測試後,將不通過的機型使用{@link NativeAdaptiveUtil#encoderAdaptiveList(String[], int[])}接口
* 添加到黑名單中。
* @param hwEncoderEnable
*/
public static void setHWEncoderEnable(boolean hwEncoderEnable);
擴展白名單
如果您發現您的機器不支持硬編,或者您發現您的機器支持硬解,歡迎聯係我們告知我們。我們會在1~2個工作日內將您的信息加入硬編黑名單和硬解白名單中.您需要提供如下信息:
發送至:videosdk@service.aliyun.com 郵件主題:擴展硬編黑名單/硬解白名單.
手機型號:通過Build.MODEL來獲取
手機係統版本:通過Build.VERSION.RELEASE來獲取
是否支持硬編:XXX
是否支持硬解:通過接口isDeviceDecoderEnable來獲得是否支持硬解
最後更新:2017-09-20 15:32:55