常見問答
文章目錄
-
-
- 常見問答
- 1. 如何支援多機位.
- 2. 如何支援合流
- 3. 綠色物體不想被摳去怎麼辦?
- 4. 如何推流
- 5. 如何外接美顔
- 6. 如何自定義界面.
- 7. 預置點和 藍牙鍵盤支援嗎?
- 8.實際直播場景要注意哪些?
1. 如何支援多機位.
- 我們提供了多個輸入接口, 讓你把外面的圖像資料實時的輸入到SDK裡.
- android系統常見的有:MediaPlayer播放器, ijkplayer, usb攝像頭, MediaCodec接口等 這些接口都有一個API叫 setSurface, 意思是設定一個圖像輸入口, 我們SDK提供了一個建立surface的可與之比對.把我們建立好的surface設定到這些播放控件中, 即可把外面的圖像資料引入到我們SDK中.
- 接入後,我們把多機位的控制分為兩部分, 播放控制和圖像畫面控制, 播放控制是在外面完成, SDK因隻傳遞了畫面進來, 故需要用您的控件來控制播放流的各種動作,比如暫停/調速,切換等; 對圖像畫面的顯示位置,顯示大小,是否摳綠等的調節, 是在SDK内部完成的.
- 現在支援的有MediaPlayer, ijkPlayer, MediaCodec, USB攝像頭-uvc格式.
- USB攝像頭舉例代碼如下:
//增加一個圖層到容器裡,可增加多層,傳回這一次的控制對象LSOCamLayer
usbUvcLayer=lsoCamera.addSurfaceLayer(width ,height, true, 0);
if(usbUvcLayer!=null){
//圖層對象擷取到surface設定到usb播放控件中
uvcCameraHandler.startPreview( usbUvcLayer.getSurface());
//圖層設定摳綠功能
usbUvcLayer.setGreenMatting(LSOSegmentType.GREEN_MATTING);
}
// 可增加多層, 并有removeLayer()删除這個圖層.
- ios系統常見的是AVPlayer, 此控件支援網絡url資料流, 隻需要設定好URL的路徑, 即可播放.
- 如果需求是大于2個機位,則可以調節每個位置在上層或下層, 也可以調節縮放每個機位的話, 并上下左右平面布局;
2. 如何支援合流
- 如果是外面輸入的圖像流,則類似我們說的多機位.
- 如果是自定義的UI界面, 想疊加到圖像中,則我們也支援的. 我們提供了一個UI控件容器, 你把您的各種控件增加到此容器中即可. 比如android, 我們提供了LSORelativeLayout, ios提供了UIView, 可以讓您把很多文本/按鈕,動畫等繪制到此根view中. 繪制後, 會在推流的時候, 合并為同一個圖像輸出;
3. 綠色物體不想被摳去怎麼辦?
- 有兩個方法. 1. 背景用藍布或紅布; 2. 區域保護.
- 背景用藍布或紅布: 步驟是把背景換成一塊藍布或紅布, 然後在SDK裡設定摳藍色或紅色即可.
- 區域保護: 可設定圖像畫面中某個區域,不被摳去. 比如産品是固定在左下方,則把圖像的左下方設定為不被摳去的地方即可.
4. 如何推流
- 我們提供了引出圖像的方法, android可引出NV21格式或RGBA格式的圖像, ios引出的圖像格式是:bgra或CVImageBufferRef, 并均支援在引出過程中,設定圖像的寬高.
- 輸出的圖像資料, 是在内部已經疊加成一幀圖像;
- 拿到這些圖像資料後, 可設定到推流SDK或外部使用.
5. 如何外接美顔
- 我們示範demo裡已經接入了相芯的美顔SDK,
- 如果你要接入别家SDK,也支援的, android的圖像以紋理的形式引出, ios以sampeBuffer形式引出.
- 可參考我們的代碼, 把輸入的圖像,經過别家SDK,把美顔的結果一紋理或資料的格式傳回即可.
6. 如何自定義界面.
- 我們提供了最簡單的摳綠工程:
- android 下載下傳:https://github.com/LanSoSdk/android_green_matting
- ios下載下傳位址:https://github.com/LanSoSdk/ios_green_matting
- 以上工程, 是以最少的代碼,示範了摳綠的效果. 您可以把示範代碼拷貝過去, 然後在此基礎上開發您的界面.
- 最簡單的示範和我們完整工程的示範, 用的是同一份SDK, 隻是一個簡單易讀, 一個功能示範豐富.
7. 預置點和 藍牙鍵盤支援嗎?
- 全面支援
- 具體是: 你可以拿到每一層畫面的控制對象, 根據此對象, 你可以設定此畫面在任意位置/任意寬高/任意角度顯示,并可以設定是否摳圖等;
- 我們示範demo裡有藍牙鍵盤的控制代碼, 這些都是開源的, 修改對應的判斷語句即可自定義
8.實際直播場景要注意哪些?
- 不要距離綠布太近, 如果太近,綠布在燈光的照射下,會反光到人或物體上, SDK的摳綠原理可想象為判斷每個像素是否是綠色, 如果是綠色則摳去, 這樣的話,一些反射到人或物體上的綠色,就會被摳去.
- 調節辦法是: 先關閉綠幕摳圖功能, 一個人或物體站在綠布前面, 另一個人調節燈光強弱和調節距離綠幕的遠近, 以人或物體的表面沒有反光為好. 可配合我們的摳綠強度調節.