基于STi7105高清機(jī)頂盒實(shí)現(xiàn)視頻通話設(shè)計(jì)方案
視頻通話功能模塊與中間件軟件采用部分融合的方式,中間件負(fù)責(zé)與上層的用戶應(yīng)用軟件的接口,視頻通話功能模塊負(fù)責(zé)與系統(tǒng)底層的接口,同時(shí)與中間件封裝層的接口。此方案優(yōu)點(diǎn)在于各方面工作量小,相對(duì)來(lái)說(shuō)所需時(shí)間短。視頻通話功能模塊由控制模塊、協(xié)議處理模塊、音視頻采集模塊、音頻編解碼模塊、視頻編解碼模塊、用戶界面模塊等組成,軟件功能模塊如圖4 所示。
圖4 軟件功能模塊示意圖
控制模塊主要是接收并執(zhí)行應(yīng)用的命令,向應(yīng)用上報(bào)信息,控制視頻通話的交互動(dòng)作,控制媒體流的處理等。
協(xié)議處理模塊包含SIP 協(xié)議處理、RTP 協(xié)議處理等,大都是基于IETF 標(biāo)準(zhǔn)的。SIP 協(xié)議棧的功能是用于建立、更改和終止多媒體會(huì)話或呼叫,進(jìn)行多媒體通話的信令處理;RTP 協(xié)議棧的功能是對(duì)流媒體數(shù)據(jù)進(jìn)行封包并實(shí)現(xiàn)媒體流的實(shí)時(shí)傳輸,用于多媒體數(shù)據(jù)包的排序及糾錯(cuò)。
音視頻采集模塊支持?jǐn)z像頭、電話機(jī)或者藍(lán)牙耳機(jī)等外設(shè),并將輸入的視音頻信號(hào)傳送給音視頻編碼模塊。
音頻編解碼模塊對(duì)本地用戶輸入的語(yǔ)音信號(hào)進(jìn)行編碼,并對(duì)網(wǎng)絡(luò)接收到的音頻數(shù)據(jù)包進(jìn)行解碼。
視頻編解碼模塊對(duì)本地用戶輸入的視頻信號(hào)進(jìn)行編碼,并對(duì)網(wǎng)絡(luò)接收到的視頻數(shù)據(jù)包進(jìn)行解碼。
應(yīng)用接口封裝提供應(yīng)用程序接口給應(yīng)用層的Java 應(yīng)用程序所使用,Java 應(yīng)用程序給用戶提供了可以下載的豐富應(yīng)用。
用戶界面模塊實(shí)現(xiàn)用戶的撥號(hào)、畫中畫顯示、操作界面等,界面應(yīng)當(dāng)足夠的友好和方便,完成人機(jī)交互。
終端軟件流程如圖5 所示。
圖5 流程示意圖
以本地機(jī)頂盒發(fā)起呼叫為例,簡(jiǎn)單流程如下:
?。?)主叫機(jī)頂盒啟動(dòng)并初始化。
?。?)攝像頭、電話機(jī)等外設(shè)啟動(dòng)初始化。
?。?)機(jī)頂盒向服務(wù)器進(jìn)行注冊(cè),機(jī)頂盒自動(dòng)向服務(wù)器發(fā)送注冊(cè)消息進(jìn)行注冊(cè)。注冊(cè)成功后,服務(wù)器將會(huì)動(dòng)態(tài)地建立用戶的邏輯地址和其當(dāng)前聯(lián)系地址之間的對(duì)應(yīng)關(guān)系,以便實(shí)現(xiàn)呼叫路由和對(duì)用戶移動(dòng)性的支持。
?。?)機(jī)頂盒進(jìn)入偵聽等待狀態(tài)。
(5)主叫機(jī)頂盒向被叫機(jī)頂盒發(fā)出INVITE 請(qǐng)求,INVITE 請(qǐng)求的作用是發(fā)起并建立呼叫,邀請(qǐng)被叫機(jī)頂盒加入主叫機(jī)頂盒建立的呼叫。
?。?)被叫機(jī)頂盒收到請(qǐng)求后對(duì)主叫機(jī)頂盒做出響應(yīng),被叫機(jī)頂盒對(duì)請(qǐng)求的響應(yīng)分為臨時(shí)響應(yīng)(狀態(tài)碼為1xx)和最終響應(yīng)(狀態(tài)碼為2xx),主叫機(jī)頂盒只對(duì)最終響應(yīng)做出回應(yīng)。被叫機(jī)頂盒做出的最終響應(yīng)是200 OK,表示被叫機(jī)頂盒接受并開始處理呼叫請(qǐng)求。
?。?)主叫機(jī)頂盒收到響應(yīng)后發(fā)送ACK 請(qǐng)求,向被叫機(jī)頂盒告知主叫機(jī)頂盒收到了最終響應(yīng),被叫機(jī)頂盒收到主叫機(jī)頂盒的ACK 請(qǐng)求,標(biāo)志呼叫建立階段結(jié)束。
(8)進(jìn)入通話過程。
?。?)當(dāng)參與呼叫的任一方要終止呼叫時(shí),該機(jī)頂盒將會(huì)構(gòu)造并發(fā)送一個(gè)BYE 消息給對(duì)方機(jī)頂盒。對(duì)方機(jī)頂盒收到BYE 請(qǐng)求后,將會(huì)釋放與此相關(guān)的資源,回送一個(gè)成功相應(yīng),表示呼叫已經(jīng)終止。
4 結(jié)語(yǔ)
本文以STi7105 芯片為基礎(chǔ),介紹了盡量利用高清互動(dòng)機(jī)頂盒的現(xiàn)有編解碼能力實(shí)現(xiàn)視頻通話功能;在此基礎(chǔ)上可以向其他具有類似編解碼能力芯片的機(jī)頂盒移植,比如STi7162、Hi3716 等;當(dāng)需要更高的音視頻編碼質(zhì)量時(shí),也可以使用具有獨(dú)立編碼功能的攝像頭、電話機(jī)等外設(shè)。隨著高清機(jī)頂盒的普及,這種基于高清機(jī)頂盒的視頻電話,使視頻通信服務(wù)從高高在上的大客戶業(yè)務(wù)轉(zhuǎn)向普通家庭用戶,也順應(yīng)了三網(wǎng)融合的時(shí)代要求。
評(píng)論