高志寅,高志平
(浙江創(chuàng)億科技有限公司,浙江 杭州 310052)
智能電視服務(wù)[1-2]通過(guò)3個(gè)方面區(qū)別于傳統(tǒng)的電視服務(wù)(如圖1所示):第一,智能平臺(tái),包括服務(wù)器云端的視頻云和應(yīng)用云,以及終端的跨平臺(tái)智能操作系統(tǒng);第二,海量的智能應(yīng)用,除傳統(tǒng)的直播、點(diǎn)播、時(shí)移回看的視頻業(yè)務(wù)外,覆蓋資訊、游戲、社交、工具等各類(lèi)應(yīng)用需求;第三是智能操控,從傳統(tǒng)的紅外遙控,發(fā)展到2.4 GHz遙控、體感遙控、手機(jī)遙控、語(yǔ)音遙控、手勢(shì)識(shí)別、人臉識(shí)別等,不斷提高用戶(hù)使用的便捷性。

隨著有線(xiàn)高清雙向數(shù)字電視業(yè)務(wù)的推廣和智能終端技術(shù)向電視領(lǐng)域的延伸,國(guó)內(nèi)多家廠(chǎng)商推出了支持DVB和IP兩種接入方式的雙模機(jī)頂盒,基本上都采用Android操作系統(tǒng)。和已大量使用的高清機(jī)頂盒所采用的Linux系統(tǒng)相比,Android在Linux之上創(chuàng)建了單一框架,其作為類(lèi)似標(biāo)準(zhǔn)中間件,使得大量面向電視屏幕的應(yīng)用開(kāi)發(fā)變得更方便和具有更好的平臺(tái)移植性。本文旨在對(duì)雙模智能機(jī)頂盒的關(guān)鍵技術(shù)進(jìn)行分析探討,并描述對(duì)Android下實(shí)現(xiàn)DVB功能的具體實(shí)現(xiàn)方式,作為業(yè)界產(chǎn)品開(kāi)發(fā)參考。
Android是Google開(kāi)發(fā)的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成,是首個(gè)為移動(dòng)終端打造的真正開(kāi)放的移動(dòng)軟件。由于其免費(fèi)、開(kāi)源、開(kāi)放的特性,使得它在短短幾年內(nèi)已經(jīng)成為第一大智能手機(jī)操作系統(tǒng)。與此同時(shí),很多數(shù)字電視及機(jī)頂盒廠(chǎng)商對(duì)Android趨之若鶩,紛紛把Android系統(tǒng)移植到數(shù)字電視及機(jī)頂盒上。
但是,Android是專(zhuān)為手機(jī)開(kāi)發(fā)的系統(tǒng),它的framework并不支持?jǐn)?shù)字電視播放。而國(guó)內(nèi)的數(shù)字電視及機(jī)頂盒主要符合DVB標(biāo)準(zhǔn),如何在Android系統(tǒng)上,增加對(duì)符合DVB標(biāo)準(zhǔn)的數(shù)字電視的支持,是雙模智能機(jī)頂盒必須首先解決的問(wèn)題。
針對(duì)智能機(jī)頂盒的多屏互動(dòng)技術(shù)是指實(shí)現(xiàn)智能機(jī)頂盒、智能手機(jī)、平板電腦、PC等多屏設(shè)備關(guān)聯(lián)、內(nèi)容共享和用戶(hù)信息的交互技術(shù)。
設(shè)備的互聯(lián)控制提供類(lèi)似機(jī)頂盒遙控器、智能家居控制、家庭設(shè)備互聯(lián)等功能;內(nèi)容的共享實(shí)現(xiàn)本地和云端的音視頻資源互動(dòng),實(shí)現(xiàn)視頻直播、時(shí)移、點(diǎn)播業(yè)務(wù)的多屏同看、續(xù)看等功能;用戶(hù)信息的交互實(shí)現(xiàn)本地和云端信息的共享和同步功能。
目前,主流的智能機(jī)頂盒多屏互動(dòng)技術(shù)是基于以太網(wǎng)、WiFi或藍(lán)牙的物理連接方式,協(xié)議上主要采用市場(chǎng)上大家已比較熟悉的DLNA和蘋(píng)果Airplay。
雙模數(shù)字電視機(jī)頂盒在解碼播放音視頻資源上,一個(gè)來(lái)源是同軸電纜引入的DVB數(shù)字電視信號(hào),另一個(gè)來(lái)源是播放以太網(wǎng)口或者WiFi接入的流媒體資源。
通常的機(jī)頂盒主芯片提供了各類(lèi)視頻壓縮算法的硬解碼功能,由軟件實(shí)現(xiàn)流媒體播控協(xié)議的交互和不同格式的解封裝。需要支持類(lèi)似主流的http,RTSP,RTP,Apple http Live Streaming(m3u8)的網(wǎng)絡(luò)流媒體播放協(xié)議,以及支持如mp4,flv,avi,ts,mkv等多格式。同時(shí),要做好芯片平臺(tái)硬件解碼接口和Android框架的兼容。
基于Android平臺(tái),針對(duì)具體芯片實(shí)現(xiàn)可配置的穩(wěn)定可靠的軟硬件解碼架構(gòu),開(kāi)發(fā)的工作量是巨大的。
要在Android系統(tǒng)上實(shí)現(xiàn)數(shù)字電視功能,首先需要了解Android系統(tǒng)的框架。如圖2所示,Android系統(tǒng)分為4層:第1層是Linux操作系統(tǒng)及驅(qū)動(dòng);第2層是本地框架(也稱(chēng)為C框架);第3層是Java框架;第4層是Java應(yīng)用程序。

圖2 Android系統(tǒng)的框架
從Linux操作系統(tǒng)來(lái)看,第1層從屬于內(nèi)核空間,第2~4層從屬于用戶(hù)空間。第2層和第3層是本地代碼層(C/C++)和Java代碼層的接口。第3層和第4層之間,是Android的系統(tǒng)API的接口。對(duì)于Android應(yīng)用程序的開(kāi)發(fā),第3層及以下的內(nèi)容是不可見(jiàn)的,僅考慮系統(tǒng)API即可。
在Android系統(tǒng)的第2層中,有一個(gè)Media Framework,這個(gè)Media Framework就是用來(lái)支持多媒體的。但這個(gè)Media Framework并不支持DVB標(biāo)準(zhǔn)的數(shù)字電視。
數(shù)字電視的一般組成見(jiàn)圖3,它包括Tuner,Demodulator,Demux,Decoder,Video Presentation 這 5 個(gè) 部 分 。Tuner部分負(fù)責(zé)把高頻信號(hào)變成中頻信號(hào),Demodulator負(fù)責(zé)把中頻信號(hào)解調(diào)制,而Demux部分則是把復(fù)用在TS流中的某個(gè)節(jié)目解復(fù)用出來(lái),Decoder負(fù)責(zé)把解復(fù)用后視頻數(shù)據(jù)解碼成圖像幀數(shù)據(jù),最后通過(guò)Video Presentation和OSD層混合后輸出到各輸出端子,如YPbPr等。在用戶(hù)按下遙控器準(zhǔn)備看電視時(shí),系統(tǒng)需要去控制這5部分協(xié)調(diào)工作,然后把節(jié)目?jī)?nèi)容呈現(xiàn)在電視屏幕上。

針對(duì)具體的解碼部分,首先參考如圖4已有的Android多媒體播放的功能[3],最上面的Java應(yīng)用層的播放器應(yīng)用調(diào)用Java Framework層的android.media.Media-Player類(lèi)。Native層的多媒體框架media player對(duì)上層的提供的接口主要是MediaPlayer類(lèi)。多媒體服務(wù)Media Player Service用于啟動(dòng)一個(gè)多媒體的守護(hù)進(jìn)程。Android中使用OpenCore和StageFright兩個(gè)庫(kù)實(shí)現(xiàn)媒體播放。為保持架構(gòu)的一致性,將DVB節(jié)目流播放融入如圖4的Android媒體播放架構(gòu)中是較好的實(shí)現(xiàn)思路。
具體的方法從圖5可以看出,通過(guò)采用Java框架和C框架的通信機(jī)制,設(shè)計(jì)一個(gè)既能滿(mǎn)足需求又高效的通信方法,采用了套接字Socket方式C框架層實(shí)現(xiàn)數(shù)字電視功能,而在Java框架層把C框架層實(shí)現(xiàn)的數(shù)字電視功能通過(guò)Java API提供給Java應(yīng)用層的應(yīng)用程序調(diào)用,這樣大量的數(shù)字電視相關(guān)應(yīng)用就可以直接調(diào)用這個(gè)Java API接口,解決了Java應(yīng)用如何通過(guò)Java API使用底層C語(yǔ)言實(shí)現(xiàn)的數(shù)字電視軟件模塊功能的問(wèn)題,極大提高了Java應(yīng)用開(kāi)發(fā)的效率和可移植性。

智能電視關(guān)鍵技術(shù)的核心還是更好、更便捷地服務(wù)于用戶(hù)。豐富用戶(hù)基于電視大屏幕的視頻娛樂(lè)消費(fèi),通過(guò)應(yīng)用商店整合海量的內(nèi)容和應(yīng)用,形成滿(mǎn)足用戶(hù)個(gè)性化需求的細(xì)分模式,延長(zhǎng)用戶(hù)在電視屏幕的消費(fèi)時(shí)間和提高娛樂(lè)效率。智能終端產(chǎn)品的大量普及和對(duì)用戶(hù)眼球消費(fèi)時(shí)間的吸引,更加有利于產(chǎn)業(yè)開(kāi)發(fā)更多的衍生產(chǎn)品和建立對(duì)應(yīng)的盈利模式。

[1]薛楠,喬維.典型智能電視產(chǎn)業(yè)發(fā)展模式的啟示——以谷歌、蘋(píng)果和三星為例[J].電視技術(shù),2012,36(14):1-3.
[2]吳偉.智能電視技術(shù)分析[J].電視技術(shù),2011,35(24):7.
[3]MediaPlayer[EB/OL].[2012-08-04].http://developer.android.com/reference/android/media/MediaPlayer.html.