術(shù)語解釋
P2P中間件:P2P直播模塊的底層庫,負(fù)責(zé)建立P2P網(wǎng)絡(luò)和處理各種音視頻數(shù)據(jù)。
P2P直播模塊:在P2P中間件的基礎(chǔ)上封裝的針對直播這一特定場景的SDK。
采集端:指P2P直播模塊中負(fù)責(zé)采集和分發(fā)視頻的實(shí)例或者節(jié)點(diǎn)。
播放端:是P2P直播模塊中負(fù)責(zé)從采集端獲取視頻數(shù)據(jù)并播放的實(shí)例和節(jié)點(diǎn)。
設(shè)備端:常指采集端,運(yùn)行在特殊設(shè)備上的實(shí)例或者節(jié)點(diǎn)。
手機(jī)端:常指播放端,與APP集成的部分。
怎樣給直播模塊對接嵌入式設(shè)備的攝像頭?
1) 閱讀嵌入式設(shè)備的開發(fā)手冊,清楚設(shè)備關(guān)于視頻采集的API。
2) 閱讀《Peergine 擴(kuò)展設(shè)備輸入輸出C接口說明 v1.5.doc》和Demo代碼callbackVideo.cpp,



怎樣定位直播模塊登錄超時的問題?
登錄超時一般是網(wǎng)絡(luò)問題,主要排查方向是設(shè)備的網(wǎng)絡(luò)連接。設(shè)備能不能連接到公共網(wǎng)絡(luò)。
1、 Ping 服務(wù)器看看是否域名能夠正常解析,我們的測試服務(wù)器地址是 connect.peergine.com ,客戶自己搭建服務(wù)器后就ping客戶本身的服務(wù)器域名或者地址。
2、如果能ping通后檢測防火墻問題,看是否配置了一些防火墻規(guī)則限制了P2P流量。
如果還是不通。請?zhí)峤粏栴}到我們的討論群,同時提交日志和描述狀態(tài)信息,必要時提供遠(yuǎn)程服務(wù)。
3、目前需要排除的是防火墻對P2P的影響,請?jiān)谠O(shè)備上使用telnet connect.peergine.com?443?看看是否有反應(yīng),請將局域網(wǎng)防火墻關(guān)閉試試能不能登錄。如果還是不行換臺設(shè)備試試,或者換個網(wǎng)絡(luò)試試。
4、在嵌入式系統(tǒng)中,某些shell在輸入回車鍵后在字符串中輸入‘\n’或者‘\r’,如果這個時候輸入服務(wù)器地址的環(huán)節(jié)直接按回車會導(dǎo)致服務(wù)器地址是”\n” ,導(dǎo)致登錄超時。
怎樣對接嵌入式設(shè)備的音頻?
嵌入式測試程序原理說明:
因?yàn)榍度胧皆O(shè)備各種音頻采集和播放的接口都不統(tǒng)一,我們沒有辦法直接從音頻輸入設(shè)備采集音頻以及將音頻直接播放到音頻輸出設(shè)備。所以我們開放了一些接口支持客戶通過編程來對接音頻輸入輸出設(shè)備。
同時在SDK壓縮包中給出了一個演示程序。

演示程序音頻部分的做法是,接到播放端傳過來音頻后,將音頻數(shù)據(jù)再傳入中間件的音頻采集接口。
這樣就可以在播放端測試音頻數(shù)據(jù)是否能夠正常的傳輸?shù)搅嗽O(shè)備端,并且成功的從設(shè)備端傳回播放端。
設(shè)備端采集視頻的Demo演示的原理是循環(huán)的讀取一幀視頻數(shù)據(jù)測試視頻數(shù)據(jù)能不能正常的從設(shè)備端傳送到播放端并成功播放。
所以我們的對接視音頻的時候需要做的就是修改hardware_api.c文件,將從P2P中間件接收到的音頻數(shù)據(jù)調(diào)用設(shè)備的音頻輸出接口直接播放。同時要啟動設(shè)備的音頻采集,將采集到的音頻數(shù)據(jù)通過調(diào)用P2P中間件的音頻輸入接口輸入到P2P中間件。
同時需要注意的是設(shè)備采集音頻的采樣率以及設(shè)備支持播放音頻的采樣率。中間件只支持采樣率為11025 的音頻數(shù)據(jù)的傳輸。如果設(shè)備不支持這種采樣率的音頻數(shù)據(jù)的采集和播放,那么就需要了解一下pgLibDevAudioConvert.h 中的API接口,將其他采樣率的音頻轉(zhuǎn)化成11025采樣率,或者將11025采樣的的音頻轉(zhuǎn)化成其他采樣率。
音頻外部采集回調(diào)注冊后打開失敗
音頻的外部采集的回調(diào)的注冊和啟用同時要啟用音頻外部播放和啟用。
音頻轉(zhuǎn)換API支持的參數(shù)解析
8000,16000,32000,22050, 44100
441 = 11025/1000*40?
直播模塊播放端不能打開采集端視頻的原因
問題描述:
有客戶將直播模塊集成到APP中測試發(fā)現(xiàn):APP第一次打開可以看到采集端視頻,但是切換到后臺后(不殺死APP進(jìn)程)重新進(jìn)入APP,發(fā)現(xiàn)采集端視頻不能打開了。
具體情況:
直播模塊播放端對象Clean后然后置空銷毀。然后程序退到后臺,之后切換到前臺重新New 和初始化。發(fā)現(xiàn)調(diào)用VideoStart后接收不到采集端的視頻了,調(diào)用VideoStart后如截圖所示。
但是殺掉采集端APP這個進(jìn)程重新進(jìn)入就可以看到采集端視頻。
解決方法:檢查用來顯示采集端視頻的SurfaceView是否正常銷毀了。注意直播模塊的SurfaceView要使用pgLibLiveMultiView.Get 獲取,以及使用pgLibLiveMultiView
.Release銷毀。
特別注意,ExtVideo模塊使用的是pgLibView.Get 獲取pgLibView .Release銷毀。千萬不要混淆。
直播模塊關(guān)于視頻外部采集的問題。
參考文檔:《Peergine 擴(kuò)展設(shè)備輸入輸出C接口說明 v1.6.doc》
請先參考文檔已及及外部采集的Demo了解各個回調(diào)和API函數(shù)的意義。
啟動視頻外部采集的相關(guān)流程。
