基于PXA270平臺的嵌入式流媒體播放器設(shè)計(jì)
2)設(shè)置環(huán)境變量export xvidcore= “the path of xvidcore”;
3)生成makefile ./configure- - host=localhost- - build=arm- linux- gcc;
4) 編譯源代碼make;make install;
將交叉編譯生成的庫文件libxvidcore.so.* 拷貝到交叉編譯器工作目錄的./local/lib 子目錄中,該庫文件為系統(tǒng)的其它模塊提供了編程接口。
解碼格式的可擴(kuò)展性
播放器支持的文件格式越多,其生命力也就越強(qiáng)大,PXA270 嵌入式處理器加上2700G 多媒體加速芯片的搭配方案為媒體播放提供了強(qiáng)大的硬件支持,通過軟件升級,理論上可以支持任何媒體格式。本方案的做法是:在播放器中實(shí)現(xiàn)一個索引表類,將來根據(jù)需要新添加的編碼格式作為獨(dú)立的類注冊到索引表中。基于linux 的c++解碼類源代碼可以由網(wǎng)上開放源碼的解碼器網(wǎng)站下載,系統(tǒng)中的MP1,MP2,MP3 和WAV 的解碼就是采用這種方法實(shí)現(xiàn)的。
播放模塊實(shí)現(xiàn)
文件的輸入
在播放器系統(tǒng)中,文件的來源有兩種:由網(wǎng)卡讀入存儲器后播放或通過其它數(shù)據(jù)傳輸途徑寫入存儲器,在存儲器中直接播放。sophia 板提供了網(wǎng)卡的驅(qū)動模塊,可以使用命令modprobe usbcore 和modprobe usbwlnc動態(tài)加載,為數(shù)據(jù)從網(wǎng)卡經(jīng)由操作系統(tǒng)到達(dá)播放進(jìn)程提供一個全雙工的通道。數(shù)據(jù)的處理由播放器中的stream input 類來實(shí)現(xiàn)。
流媒體協(xié)議
實(shí)現(xiàn)流式傳輸有兩種方法:實(shí)時流式傳輸和順序流式傳輸,系統(tǒng)使用的是實(shí)時流式傳輸,需要標(biāo)準(zhǔn)化的流媒體協(xié)議來保證客戶機(jī)和專用的流媒體服務(wù)器之間進(jìn)行通信。根據(jù)流媒體協(xié)議的功能可以分為兩類:
基本網(wǎng)絡(luò)協(xié)議
為媒體傳輸提供基本的網(wǎng)絡(luò)服務(wù)支持,由于TCP需要較多的開銷,不太適合傳輸實(shí)時數(shù)據(jù)。在流式傳輸?shù)膶?shí)現(xiàn)方案中,采用RTSP/TCP 來傳輸控制信息,而用RTP/UDP 來傳輸實(shí)時聲音、圖像數(shù)據(jù)。
傳輸協(xié)議
傳輸協(xié)議包括RTP、RTCP、RTSP 和RSVP,RTP和RTCP 控制端到端網(wǎng)絡(luò)數(shù)據(jù)的傳輸,RTSP 提供話路控制的功能,RSVP 是可選的,它為播放進(jìn)程在網(wǎng)上預(yù)先申請一部分網(wǎng)絡(luò)資源( 即帶寬),能在一定程度上為流媒體在Internet 上的傳輸提供特殊服務(wù)質(zhì)量QoS。為流媒體設(shè)計(jì)的協(xié)議棧如圖3 所示:從UDP/TCP層得到的數(shù)據(jù)包處理后得到打包的RTP 數(shù)據(jù)流,通過RTP/RTCP/RTSP 層分離出定時和同步信息以及包的序列號,將讀出的流文件交給ASF 和RM解碼模塊。
評論