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

時間:2022-05-08 02:53:18

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

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

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

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

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

本設(shè)計主要基于linux平臺的開源軟件ushare[9]、ffmpeg、libupnp和libiconv實現(xiàn)。視頻部分是通過精簡和配置ffmpeg庫完成對DLNA所需求的媒體格式的支持;libupnp主要完成UPnP協(xié)議的實現(xiàn),libdlna和ushare主要實現(xiàn)數(shù)字媒體服務(wù)器功能;libiconv是實現(xiàn)對數(shù)字媒體服務(wù)器的漢化功能。本課題中,在一臺電腦中實現(xiàn)數(shù)字媒體服務(wù)器,用另外一臺電腦當(dāng)數(shù)字媒體播放器和控制點,測試模型如圖3所示,軟件采用Intel公司的UPnP測試工具DigitalMediaSoftwareEnablingKit,開發(fā)平臺為Linux,語言工具為C,播放器使用WindowsMediaPlayer12。Fig.3Testmodel先啟動控制點,數(shù)字媒體服務(wù)器啟動后,通過控制點可以發(fā)現(xiàn)數(shù)字媒體服務(wù)器,并且可以瀏覽數(shù)字媒體服務(wù)器上共享的文件內(nèi)容和文件的詳細(xì)信息;使用WindowsMediaPlayer12播放數(shù)字媒體服務(wù)器中音視頻信息,即控制點可以將服務(wù)器的媒體文件用網(wǎng)絡(luò)上的另外一個媒體播放器來播放。數(shù)字媒體服務(wù)器的抓包過程如圖4所示。圖4中,device1為數(shù)字媒體播放器(DigitalMediaRenderer),device2為AV控制點(AVControlPoint),device3為數(shù)字媒體服務(wù)器。本設(shè)計使用的是WindowsMediaPlayer12充當(dāng)ControlPoint和MediaRenderer。MediaServer、ControlPoint和MediaRenderer啟動后,會分別向網(wǎng)絡(luò)中廣播自己的設(shè)備類型(第3、4和7條報文)以及能夠提供的服務(wù)。發(fā)現(xiàn)網(wǎng)絡(luò)中的媒體服務(wù)器后,WindowsMediaPlayer12會進(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最后幾條報文顯示,WindowsMediaPlayer12通過Browse動作完成對服務(wù)器內(nèi)容的瀏覽操作,選定某個MP3音頻后,通過連接管理服務(wù)完成傳輸MP3的操作,從而實現(xiàn)在本地播放。

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

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