国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于達(dá)芬奇技術(shù)的流媒體系統(tǒng)實現(xiàn)

2011-08-04 06:36:50王延家劉知貴
通信技術(shù) 2011年8期
關(guān)鍵詞:播放器音視頻線程

王延家,劉知貴

(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)

0 引言

流媒體技術(shù)正處在迅速發(fā)展的階段。因其具有實時性和連續(xù)性的特點,被廣泛用于多媒體新聞發(fā)布、視頻點播、實時視頻會議等互聯(lián)網(wǎng)信息服務(wù)的方方面面。H.264縮標(biāo)準(zhǔn)具有更高的壓縮率和質(zhì)量,同時還引入了面向包的機(jī)制,特別適合IP網(wǎng)絡(luò)傳輸,支持視頻的流媒體傳輸。借助TI's Davinci技術(shù)實現(xiàn)H.264編碼,利用開源的LiveMediaServer作為視頻流媒體服務(wù)器通過網(wǎng)絡(luò)實現(xiàn)多播,在不同地點通過運(yùn)行在PC機(jī)上的播放器實現(xiàn)視頻流的播放。

1 系統(tǒng)總體結(jié)構(gòu)實現(xiàn)

系統(tǒng)使用 DM6446數(shù)字視頻評估板(DVEM)[1]做硬件平臺,DM6446SOC迎合了嵌入式設(shè)備網(wǎng)絡(luò)連接和音視頻編解碼的需求。其系統(tǒng)框如圖1所示。CCD圖像傳感器采集的視頻信號經(jīng)過DM6446的VPSS解碼成YUV格式的數(shù)字信號,通過CodecEngine在DSP側(cè)實現(xiàn)視頻的H.264標(biāo)準(zhǔn)壓縮,壓縮后的視頻信號與運(yùn)行在ARM上的LiveMediaServer流媒體服務(wù)器交互,LiveMediaServer響應(yīng)運(yùn)行在遠(yuǎn)程客戶端 PC上的播放器軟件的請求,將數(shù)據(jù)通過網(wǎng)絡(luò)輸送到客戶端播放器,在客戶端可實現(xiàn)播放、暫停、存儲等相關(guān)功能。

圖1 系統(tǒng)框

2 音視頻處理的Davinci技術(shù)

Davinci技術(shù)是一種數(shù)字音視頻協(xié)同解決方案。其采用了一種開放式的模塊化架構(gòu),其各個組件都是可配置的,利于實現(xiàn)軟件的升級和各模塊的重用。主要有以下幾個大模塊組成[2]:

①DSP子系統(tǒng):主要實現(xiàn)各種格式的音視頻編解碼算法,算法實例可配置為不同的優(yōu)先級,由DSP/BIOS調(diào)度運(yùn)行。

②ARM子系統(tǒng):包括ARM9或Cortex-A8及各種外設(shè)。主要完成包括 DSP的初始化、引導(dǎo),應(yīng)用程序、圖形用戶界面的實現(xiàn)等功能。

③VPSS(視頻處理子系統(tǒng)):主要實現(xiàn)音/視頻的采集、各種預(yù)處理、顯示和提供圖形用戶界面等。

CodecEngine是處理器間通信的橋梁[3]。實現(xiàn)過程如圖2所示。

圖 2 算法調(diào)用用過程

首先調(diào)用 Engine API VIDENC_p_process(a,b,c);通過OSAL將參數(shù)和調(diào)用信息打包發(fā)送給處理器間通信協(xié)議DSPLink;DSPLink中轉(zhuǎn)給DSP側(cè)低優(yōu)先級的RMS(基礎(chǔ)服務(wù)程序),RMS根據(jù)傳遞來的信息調(diào)用DSP本地的算法創(chuàng)建算法實例;而后將句柄返回給ARM端的應(yīng)用程序完成調(diào)用過程。應(yīng)用程序線程使用信號量同步于RPC調(diào)用。DSP可以運(yùn)行多個算法實例,執(zhí)行調(diào)用的應(yīng)用程序線程間通過 FIFO方法實現(xiàn)同步。

3 流媒體服務(wù)器及實時傳輸協(xié)議

LiveMediaServer是一個完善的RTSP程序,支持MPEG、H.264、WAV、ACC等多種格式的音視頻文件,使用RTP、RTSP等流媒體傳輸協(xié)議[4-5]??赏瑫r實現(xiàn)多個不同格式的流傳輸并支持多播,默認(rèn)使用 RTP/UDP包傳輸。MediaServer采用“源-目的”模式。源者為數(shù)據(jù)的生產(chǎn)者,即數(shù)據(jù)源。目的為數(shù)據(jù)的消費者,即如把接收到的數(shù)據(jù)存儲到文件就是一個FileSink,而通過RTP打包傳輸就是1個RTPSink。服務(wù)器主類為 liveMedia庫下的 RTSPServer;mediaServer下的liveMediaServer為主程序的入口類,DynamicRTSPServer是RTSPServer的實現(xiàn)類。

RTP(實時傳輸協(xié)議):支持實時數(shù)據(jù)的端到端多播或單播網(wǎng)絡(luò)傳輸。它沒有交付機(jī)制,必須和UDP一起使用。RTP的主要貢獻(xiàn)是:時間戳、序號、有效載荷等,所有的有用信息都包含在其分組固定和擴(kuò)展首部中。

RTSP(實時流傳輸協(xié)議)[6]:作為MediaServer的傳輸控制協(xié)議。在PC播放器與MediaServer間建立并控制流信息,它充當(dāng)了“網(wǎng)絡(luò)遙控器”的角色[7]。RTSP客戶端維護(hù)多個連接,通過與控制通道無關(guān)的獨立協(xié)議發(fā)送的流,因此服務(wù)器需要維護(hù)“會話狀態(tài)”以便使 RTSP請求和流相互關(guān)聯(lián)。常用的命令有OPTIONS、DESCRIBE等。

4 系統(tǒng)設(shè)計與實現(xiàn)

4.1 視頻采集實現(xiàn)

Linux運(yùn)行后處于保護(hù)模式,不能直接對硬件進(jìn)行操作,需要借助系統(tǒng)提供的驅(qū)動程序模塊通過標(biāo)準(zhǔn)Linux API完成操作。既可以使用標(biāo)準(zhǔn)的Linux API(open、ioctl、poll等)也可以使用 TI開發(fā)的與標(biāo)準(zhǔn) Linux API兼容 EPSI API(VFPE_open、VFPE_control等)實現(xiàn)采集。采集視頻信號經(jīng)過A/V接口輸送到CCDC將視頻解碼數(shù)字化后送到視頻處理前端的視頻輸入口,DM6446視頻前端再將視頻信號進(jìn)行一些可選的預(yù)處理操作,將視頻數(shù)據(jù)的緩存地址提供給應(yīng)用程序。緩存地址應(yīng)分配物理連續(xù)的地址,流程如圖3所示。

圖3 采集流程

4.2 媒體服務(wù)器MediaServer實現(xiàn)

MediaServer是采用“源—目的”模式基于事件驅(qū)動實現(xiàn)的。TaskScheduler∶doEventLoop()開始事件循環(huán)?;具^程如下:

對源代碼進(jìn)行修改交叉編譯,實現(xiàn)服務(wù)器在基于 ARM的達(dá)芬奇平臺上的運(yùn)行。在子目錄有演示例程,修改其源碼使其從傳遞線程緩存中不斷讀取壓縮編碼的H.264視頻數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)。程序片段如下。

修改配置文件config.armlinux。執(zhí)行g(shù)enmakefiles在主目錄及子目錄下生成Makefile,執(zhí)行make編譯即可。

4.3 系統(tǒng)主程序的實現(xiàn)及測試

整個系統(tǒng)采用多線程機(jī)制,充分利用了系統(tǒng)資源提高系統(tǒng)的性能[8]。系統(tǒng)由4個POSIX線程(pthreads)組成,分別為主線程、采集線程、編碼線程、傳遞線程。線程之間使用條件信號量同步,只有當(dāng)所有的線程都完成初始化之后才能開始各自的循環(huán)。它們使用由Memory_contigAlloc()分配的緩存交換數(shù)據(jù)。MediaServer作為一個獨立進(jìn)程執(zhí)行。編碼線程從采集線程獲取數(shù)據(jù)進(jìn)行壓縮編碼;將編碼后的數(shù)據(jù)送到傳遞線程;傳遞線程與 MediaServer交互經(jīng)網(wǎng)絡(luò)傳送出去。線程間交互如圖4所示。

圖4 線程間數(shù)據(jù)交互

對系統(tǒng)進(jìn)行了測試。使用CCD圖像傳感器采集D1(720*480)格式的視頻信號序列,速率25幀/s,時間35 s左右。經(jīng)網(wǎng)絡(luò)傳輸后由遠(yuǎn)程 PC機(jī)上的兼容播放器進(jìn)行播放、控制。測試結(jié)果表明,視頻傳輸實時性良好、畫面質(zhì)量清晰。系統(tǒng)測試如圖5所示。

圖5 系統(tǒng)測試

5 結(jié)語

使用達(dá)芬奇技術(shù)和開源媒體 Live555StreamingMedia實現(xiàn)了一種嵌入式流媒體系統(tǒng)并對系統(tǒng)進(jìn)行了驗證。客戶端只需要使用播放器即可對遠(yuǎn)程場景進(jìn)行實時查看控制。各種新媒體格式及算法標(biāo)準(zhǔn)不斷涌現(xiàn),采用達(dá)芬奇技術(shù)的開放架構(gòu)便于軟件模塊的重用和升級,加上無線模塊以后可容易的實現(xiàn)無線傳輸功能,具有良好的應(yīng)用前景。

[1] Texas Instruments.TMS320DM6446 DVEVMv2.0Getting Started Guide[EB/OL]. (2008-11-06) [2011-02-15] .http://www.ti.com/lit/SPRUE66E.

[2] 彭啟琮.達(dá)芬奇技術(shù)—數(shù)字圖像/視頻信號處理新平臺[M].北京:電子工業(yè)出版社,2008:36-85,98-99.

[3] STEVE Preissig. Programming Details of Codec Engine For DaVinci Technology[EB/OL]. (2006-08-23) [2011-01-25].http://focus.ti.com/docs/prod/folders/print/tms320dm6446.html.

[4] LiveMediaServer[EB/OL]. (2001-07-08) [2011-01-09]. http://www.live555. com/mediaServer.

[5] 宋融融,陳惠民,凌勇. 流媒體播放器實時傳輸協(xié)議的實現(xiàn)[J].通信技術(shù),2005(S1):86-88.

[6] SCHULZRINNE H, RAO A, LANPHIER R.Real Time Streaming Protocol.[EB/OL] (1998-08-23)[2010-12-26].http://www.ietf.org/rfc/rfc2326.txt.

[7] 胡曉,高鷹, 余群,等. 移動數(shù)字化校園中流媒體的實現(xiàn)[J].通信技術(shù),2008,41(12):399-401.

[8] Texas Instruments.Encode Demo for the DVEVM/DVS DK1.2[EB/OL].(2007-07-08) [2011-01-19].http://www.ti.comSPRAA96.

猜你喜歡
播放器音視頻線程
Walkman誕生40周年 索尼適時發(fā)布NW-ZX500和NW-A100系列播放器
3KB深圳市一禾音視頻科技有限公司
基于STM32的MP3播放器設(shè)計
電子制作(2019年9期)2019-05-30 09:41:44
Moon ACE播放器/放大器一體機(jī)
WIFI音視頻信號傳輸?shù)年P(guān)鍵問題探究
電子制作(2018年12期)2018-08-01 00:48:06
高速公路整合移動音視頻系統(tǒng)應(yīng)用
淺談linux多線程協(xié)作
播放器背板注塑模具設(shè)計
中國塑料(2015年8期)2015-10-14 01:10:55
Roland專業(yè)音視頻新技術(shù)研討會在上海召開
Linux線程實現(xiàn)技術(shù)研究
齐齐哈尔市| 两当县| 赤城县| 昌都县| 逊克县| 瑞安市| 太原市| 醴陵市| 仁怀市| 南陵县| 息烽县| 鸡泽县| 尚志市| 上饶县| 和田市| 定西市| 旬邑县| 酉阳| 谢通门县| 裕民县| 吐鲁番市| 景洪市| 安岳县| 澄城县| 安仁县| 上饶县| 阿坝县| 中阳县| 普格县| 永平县| 嘉荫县| 昭平县| 巍山| 凉山| 丹东市| 麻城市| 夹江县| 克拉玛依市| 通辽市| 东兴市| 当雄县|