數(shù)字媒體的研究與實(shí)現(xiàn)

時(shí)間:2022-05-08 02:53:18

導(dǎo)語(yǔ):數(shù)字媒體的研究與實(shí)現(xiàn)一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

數(shù)字媒體的研究與實(shí)現(xiàn)

數(shù)字媒體服務(wù)器實(shí)現(xiàn)的基本思路

UPnP論壇開發(fā)了UPnPAVarchitecture作為針對(duì)影音傳輸?shù)臄?shù)字家庭多媒體標(biāo)準(zhǔn)[5]。主要由三種功能實(shí)體組成:數(shù)字媒體服務(wù)器,AV控制點(diǎn)和數(shù)字媒體播放器[6]。交互模型如圖2所示,媒體內(nèi)容是利用帶外傳輸協(xié)議從數(shù)字媒體服務(wù)器向數(shù)字媒體播放器進(jìn)行傳輸?shù)?,在傳輸過程中,控制點(diǎn)只是利用UPnP網(wǎng)絡(luò)發(fā)現(xiàn)存儲(chǔ)媒體內(nèi)容的AV設(shè)備,并觸發(fā)媒體內(nèi)容的帶外傳輸,并沒有參與媒體內(nèi)容的傳輸[7]。在實(shí)際應(yīng)用中,AV控制點(diǎn)可以和數(shù)字媒體服務(wù)器或數(shù)字媒體播放器在一個(gè)設(shè)備上結(jié)合實(shí)現(xiàn)。數(shù)字媒體服務(wù)器(DigitalMediaServer),屬于家庭網(wǎng)絡(luò)設(shè)備類(HomeNetworkDevices)[8]。它主要負(fù)責(zé)提供、存儲(chǔ)及管理數(shù)據(jù)。在UPnPAV架構(gòu)中,數(shù)字媒體服務(wù)器主要由三個(gè)模塊組成:內(nèi)容目錄模塊、連接管理模塊、內(nèi)容傳輸模塊。其中內(nèi)容傳輸模塊是可選的,取決于所支持的傳輸協(xié)議。(1)內(nèi)容目錄模塊。內(nèi)容目錄是數(shù)字媒體服務(wù)器的最主要的功能,它可以使控制點(diǎn)和數(shù)字媒體服務(wù)器之間建立一個(gè)接口,讓控制點(diǎn)可以獲得數(shù)字媒體服務(wù)器所分享的數(shù)據(jù)。該模塊提供14個(gè)行為,瀏覽(Browse)行為為控制點(diǎn)提供了數(shù)字媒體服務(wù)器各級(jí)目錄下的多媒體數(shù)據(jù)的具體路徑,是14個(gè)行為中的主要行為。(2)連接管理模塊。連接管理模塊負(fù)責(zé)管理數(shù)字媒體服務(wù)器與特定設(shè)備的連接。提供的主要行為是初始化連接(PrepareForConnection)行為。當(dāng)用戶通過控制點(diǎn)得到多媒體數(shù)據(jù)的具體路徑后,只有通過連接管理模塊,才能真正獲取到數(shù)字媒體服務(wù)器所分享的數(shù)據(jù)。(3)內(nèi)容傳輸模塊。內(nèi)容傳輸主要負(fù)責(zé)AV控制點(diǎn)對(duì)相關(guān)多媒體內(nèi)容的播放控制,包括停止、前進(jìn)、后退、定位等。內(nèi)容傳輸服務(wù)對(duì)于媒體服務(wù)器來(lái)說(shuō)是可選項(xiàng),為了簡(jiǎn)化起見本文沒有加以研究。

數(shù)字媒體服務(wù)器的實(shí)現(xiàn)與測(cè)試

本設(shè)計(jì)主要基于linux平臺(tái)的開源軟件ushare[9]、ffmpeg、libupnp和libiconv實(shí)現(xiàn)。視頻部分是通過精簡(jiǎn)和配置ffmpeg庫(kù)完成對(duì)DLNA所需求的媒體格式的支持;libupnp主要完成UPnP協(xié)議的實(shí)現(xiàn),libdlna和ushare主要實(shí)現(xiàn)數(shù)字媒體服務(wù)器功能;libiconv是實(shí)現(xiàn)對(duì)數(shù)字媒體服務(wù)器的漢化功能。本課題中,在一臺(tái)電腦中實(shí)現(xiàn)數(shù)字媒體服務(wù)器,用另外一臺(tái)電腦當(dāng)數(shù)字媒體播放器和控制點(diǎn),測(cè)試模型如圖3所示,軟件采用Intel公司的UPnP測(cè)試工具DigitalMediaSoftwareEnablingKit,開發(fā)平臺(tái)為L(zhǎng)inux,語(yǔ)言工具為C,播放器使用WindowsMediaPlayer12。Fig.3Testmodel先啟動(dòng)控制點(diǎn),數(shù)字媒體服務(wù)器啟動(dòng)后,通過控制點(diǎn)可以發(fā)現(xiàn)數(shù)字媒體服務(wù)器,并且可以瀏覽數(shù)字媒體服務(wù)器上共享的文件內(nèi)容和文件的詳細(xì)信息;使用WindowsMediaPlayer12播放數(shù)字媒體服務(wù)器中音視頻信息,即控制點(diǎn)可以將服務(wù)器的媒體文件用網(wǎng)絡(luò)上的另外一個(gè)媒體播放器來(lái)播放。數(shù)字媒體服務(wù)器的抓包過程如圖4所示。圖4中,device1為數(shù)字媒體播放器(DigitalMediaRenderer),device2為AV控制點(diǎn)(AVControlPoint),device3為數(shù)字媒體服務(wù)器。本設(shè)計(jì)使用的是WindowsMediaPlayer12充當(dāng)ControlPoint和MediaRenderer。MediaServer、ControlPoint和MediaRenderer啟動(dòng)后,會(huì)分別向網(wǎng)絡(luò)中廣播自己的設(shè)備類型(第3、4和7條報(bào)文)以及能夠提供的服務(wù)。發(fā)現(xiàn)網(wǎng)絡(luò)中的媒體服務(wù)器后,WindowsMediaPlayer12會(huì)進(jìn)一步獲取服務(wù)器提供的服務(wù)描述,這些描述主要包括內(nèi)容目錄服務(wù)和連接管理服務(wù)以及音視頻內(nèi)容的具體URL鏈接。如圖5所示:圖5為MediaServer發(fā)送的設(shè)別描述(ServiceDescription),清晰描述了自己的服務(wù)類型(MediaServer)、提供的服務(wù)(ConnectionManager和ContenDirectory)和具體鏈接地址。通過這些鏈接,WindowsMediaPlay-er12可以正確連接到服務(wù)器上,執(zhí)行瀏覽(Browse)、獲取(Get)以及傳輸音視頻等操作。圖4最后幾條報(bào)文顯示,WindowsMediaPlayer12通過Browse動(dòng)作完成對(duì)服務(wù)器內(nèi)容的瀏覽操作,選定某個(gè)MP3音頻后,通過連接管理服務(wù)完成傳輸MP3的操作,從而實(shí)現(xiàn)在本地播放。

本文重點(diǎn)介紹了基于UPnPAV協(xié)議的媒體服務(wù)器在DLNA架構(gòu)中的研究與實(shí)現(xiàn)方法。從測(cè)試結(jié)果來(lái)看,本次設(shè)計(jì)實(shí)現(xiàn)了對(duì)多媒體內(nèi)容提供共享服務(wù)的功能,順利完成了數(shù)字媒體服務(wù)器的設(shè)計(jì)。課題使用的是開源庫(kù)來(lái)開發(fā)程序,可以有效的減少開發(fā)量,以及模塊測(cè)試的工作量。

本文作者:張容娟工作單位:福州大學(xué)陽(yáng)光學(xué)院