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