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