手機遠程監控系統技術(shù)的五大要點(diǎn)
來(lái)源:數字音視工程網(wǎng) 編輯:merry2013 2016-05-19 07:12:37 加入收藏 咨詢(xún)

所在單位: | * |
姓名: | * |
手機: | * |
職位: | |
郵箱: | * |
其他聯(lián)系方式: | |
咨詢(xún)內容: | |
驗證碼: |
|
手機遠程監控系統主要涉及5大方面,分別為最核心的視頻編解碼、網(wǎng)絡(luò )傳輸、UI設計、服務(wù)端(手機流媒體)以及與其它系統的結合。
在手機上瀏覽實(shí)時(shí)視頻圖像畫(huà)面一般過(guò)程是手機客戶(hù)端發(fā)起一個(gè)視頻預覽請求到手機流媒體,告知流媒體當前客戶(hù)端想瀏覽那一路視頻,流媒體服務(wù)器去連接前端遠程的DVR/DVS取其子碼流數據,轉發(fā)傳輸QCIF畫(huà)面質(zhì)量的視頻數據到手機上,客戶(hù)端軟件調用解碼庫對接收到視頻數據解碼,最終通過(guò)DirectShow 繪制到界面上顯示。
視頻編解碼
要考慮到采用什么類(lèi)型編碼的視頻流是H.264或MPEG4,還是其它格式的視頻數據,一般視頻監控設備傳輸的是采用具有高壓縮比的H.264數據.確定了視頻數據編碼類(lèi)型就好辦了,那就去找其相應的編解碼庫,一般移植開(kāi)源的ffmpeg到WM上進(jìn)行優(yōu)化(已經(jīng)有人做了,大家可以直接Google一下找到相應的源代碼),移植其mpeg4 sp/h.264解碼器,在沒(méi)有任何優(yōu)化的情況下可支持32K,CIF,5-10fps的效果,對于一般的流媒體應用足夠了。以后還要經(jīng)過(guò)算法和匯編優(yōu)化。解碼后還需要經(jīng)過(guò)yuv2rgb和scale,需要注意的是ffmpeg的解碼有消隱區的說(shuō)法,即QCIF的圖像其linesize不是176而是 192,如果你發(fā)現解碼后圖像呈綠色,需用img_convert()轉一下(目的格式也是PIX_FMT_YUV420P)。Symbian上用DSA 直接寫(xiě)屏就行。Wndows Mobile上可以用sdl.音頻解碼主要包括AAC,AMRNB,AMRWB。AAC和AMRNB是gprs和edge帶寬支持的音頻(aac效果比 amrnb好),AMRWB是3G后的音頻格式。在ffmpeg 0.5 release中已經(jīng)支持amrnb/wb的fixed point解碼,很強大?;蛘邚腡CPMP播放器里面提取相應代碼,TCPMP有N多種可用的編解碼,其中就有H.264的,解碼效率聽(tīng)說(shuō)不錯,可借鑒。
網(wǎng)絡(luò )傳輸
視頻數據是采用TCP還是UDP呢,是自定義通信報文還是采用RTSP/RTP/RTCP這類(lèi)通信協(xié)議加以封裝.流媒體網(wǎng)絡(luò )傳輸要滿(mǎn)足高帶寬,低傳輸延遲,支持組播模式,基于差錯恢復的可靠保證和通道同步(尤其是視頻和音頻流的同步)。RTP/RTCP是一種基于組播的應用層協(xié)議,也是流媒體傳輸使用最廣泛的協(xié)議。實(shí)時(shí)傳輸協(xié)議RTP(Realtime Transport Protocol)在一對一或一對多的傳輸情況下工作,其目的是提供時(shí)間信息和實(shí)現流同步。RTP的典型應用建立在UDP上,但也可以在TCP或ATM協(xié)議上工作。RTP本身只保證實(shí)時(shí)數據的傳輸,并不能為按順序傳送數據包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù)。實(shí)時(shí)傳輸控制協(xié)議RTCP(Realtime Transport Control Protocol):負責管理傳輸質(zhì)量在當前應用進(jìn)程之間交換控制信息。在RTP會(huì )話(huà)期間,各參與者周期性地傳送RTCP包,包中含有已發(fā)送的數據包的數量、丟失的數據包的數量等統計資料,因此,服務(wù)器可以利用這些信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類(lèi)型。RTP和RTCP配合使用,能以有效的反饋和最小的開(kāi)銷(xiāo)使傳輸效率最佳化,故特別適合傳送網(wǎng)上的實(shí)時(shí)數據。
RTSP則是當前流媒體傳輸的主流標準,連微軟都拋棄了MMS而轉而支持RTSP, RTSP可以支持客戶(hù)端暫?;胤磐V沟炔僮?,基本不用考慮音視頻同步問(wèn)題(因為音頻視頻分別從不同RTP PORT讀入緩沖)。值得說(shuō)明的是,RTSP成功后,就開(kāi)始RTP傳輸,分為RTP OVER TCP和RTP OVER UDP,前者保證每個(gè)數據包都能收到,如果沒(méi)收到就重傳,而且不用考慮防火墻NAT;后者只保證盡最大努力的傳輸,不會(huì )重傳丟幀,實(shí)時(shí)性好,要解決防火墻和NAT問(wèn)題,因為世界上60%的GSM運營(yíng)商是這樣做的,使流媒體服務(wù)器根本不能連接到手機。如果對幀率要求比較高的手機電視,推薦采用UDP傳輸,因為延遲較大的重傳數據對用戶(hù)是沒(méi)有意義的,寧可丟棄。如果你決定使用RTP/PTSP,網(wǎng)絡(luò )部分可以采用強大的開(kāi)源庫live555來(lái)實(shí)現RTSP /RTP協(xié)議,其性能穩定而且支持大多數音視頻格式的傳輸。(當然ffmpeg也實(shí)現了網(wǎng)絡(luò )傳輸部分,經(jīng)過(guò)改動(dòng)后也能用)對live555經(jīng)過(guò)裁剪后可移植到symbian和windows mobile上.
現在手機上網(wǎng),其網(wǎng)絡(luò )傳輸速率一般不成問(wèn)題,2.75G EDGE網(wǎng)絡(luò )有高速度(最多236 kbps,對QCIF視頻畫(huà)面質(zhì)量傳輸來(lái)說(shuō)足夠了)和低能耗,據我了解與GPRS相近。當前的3G模塊比較耗電.未來(lái)隨著(zhù)3G的推廣,以及有消息稱(chēng)中國移動(dòng)TD-LTE(4G)2010年會(huì )進(jìn)入商用,下載一部164兆的電影,僅花了不到2分鐘,而通常300兆的電影,則只要3到5分鐘就能下載完畢。對此,業(yè)內人士介紹,4G可以達到百兆以上的速率,對于3G來(lái)說(shuō)又是一個(gè)質(zhì)的飛躍。如果說(shuō)3G是國道,4G就是高速公路。而對于4G與2G、3G之間最大的不同,技術(shù)人員介紹,除了速度比他們快之外,視頻監控、視頻通話(huà)效果也將更加流暢、高清。在網(wǎng)上看高清視頻,不用擔心畫(huà)面卡或聲像不同步……與3G相比,4G帶寬可達到170M以上,其下載速度比3G快80倍。
UI
用戶(hù)對手機軟件的界面是很在意的,做的好看了他會(huì )覺(jué)得有技術(shù)含量,做的好用了他會(huì )更加喜歡我們的產(chǎn)品。所以一套好的UI是必不可少的。手機軟件開(kāi)發(fā)的大部分工程是在做UI系統。一套好的自主的手機軟件UI系統是產(chǎn)品核心競爭力的一部分。在Windows Mobile的界面開(kāi)發(fā),使用C + SDK做漂亮的界面不容易,一旦在界面上控件比較多,控件的布局更是頭痛。 橫豎屏切換的時(shí)候也得考慮,不同手機屏幕尺寸可能也不一樣;不同的字體下,界面差異也非常大……
其實(shí)要做出好的界面最后還是要回歸RECT,也就是自己繪制貼圖。 如果要做的很漂亮,那還是自己封裝一套界面控件,這樣控制起來(lái)方便。 橫豎屏問(wèn)題,你繪制的時(shí)候不應該寫(xiě)死的位置坐標,應該取相對坐標。 在橫豎屏切換的時(shí)候會(huì )觸發(fā)WM_SIZE等一些消息,里面改變相對坐標的橫豎屏大小就OK啦. 做界面推薦一個(gè)MFC的擴展,Xtreme ToolkitPro,里面有大量的類(lèi),可以參考他們的類(lèi)來(lái)寫(xiě)寫(xiě)自己的控件.這就是現狀,沒(méi)辦法,剛開(kāi)始的時(shí)候會(huì )比較艱難。 積累以后有自己的一套控件庫,開(kāi)發(fā)速度會(huì )提高.
開(kāi)發(fā)應用每種方式都各有其優(yōu)勢, 沒(méi)有最好,只有更適合??淳唧w應用, 選擇最適合自己的技術(shù),自己熟悉的技術(shù)。
Win32 開(kāi)發(fā)的效率相對較低,但是靈活性較高。 WTL 對它不了解,不加評論,但似乎它的資料相對較少。
MFC 開(kāi)發(fā)效率不錯,但編譯后的程序體積較大。對了,它的資料也非常豐富。
評論comment