999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JMF和GROUP遠(yuǎn)程視頻會(huì)議的設(shè)計(jì)與實(shí)現(xiàn)

2011-02-09 01:57:12李毓麗
制造業(yè)自動(dòng)化 2011年4期
關(guān)鍵詞:多媒體用戶系統(tǒng)

李毓麗

(廣州大學(xué) 華軟軟件學(xué)院 網(wǎng)絡(luò)技術(shù)系,廣州 510990)

0 引言

目前國(guó)內(nèi)外軟件視頻會(huì)議系統(tǒng)解決方案基本是通過(guò)網(wǎng)絡(luò)即時(shí)通訊技術(shù),實(shí)現(xiàn)基于互聯(lián)網(wǎng)的視頻、聲音、文字、文件的即時(shí)通訊服務(wù),在網(wǎng)上實(shí)現(xiàn)人與人面對(duì)面交流。客戶端傳輸數(shù)據(jù)到服務(wù)器,服務(wù)器統(tǒng)一處理后再傳輸?shù)娇蛻舳耍哟蠓?wù)器的帶寬壓力。另外,會(huì)議系統(tǒng)基本都是基于WINDOWS操作系統(tǒng),能擺脫平臺(tái)依賴的會(huì)議系統(tǒng)簡(jiǎn)直就是鳳毛麟角。

總的來(lái)說(shuō),目前軟件視頻會(huì)議系統(tǒng)的主要不足在于:1)基于網(wǎng)絡(luò)單播;2)沒(méi)有提供跨平臺(tái)功能;3)沒(méi)有提供多國(guó)語(yǔ)言支持功能。為了實(shí)現(xiàn)一款跨平臺(tái)、支持多國(guó)語(yǔ)言及基于網(wǎng)絡(luò)組播視頻會(huì)議系統(tǒng)需要解決以下的問(wèn)題:

1)如何實(shí)現(xiàn)音視頻數(shù)據(jù)的捕獲、播放、存儲(chǔ)、傳輸前編碼、組播傳輸

2)如何實(shí)現(xiàn)聊天文字、白板信息的組播傳輸及在線用戶信息對(duì)象的同步

3)如何實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性

本文從中小規(guī)模企業(yè)對(duì)視頻會(huì)議系統(tǒng)的實(shí)際需要出發(fā),提出并實(shí)現(xiàn)了一個(gè)基于JMF和JGROUP的視頻會(huì)議系統(tǒng)原型。由于JAVA語(yǔ)言本身跨平臺(tái)特性,本系統(tǒng)還具備大多同類軟件所不具備的強(qiáng)大的可移植功能。另外,JAVA語(yǔ)言對(duì)國(guó)際化的大力支持,本系統(tǒng)還具備了支持多種界面文字語(yǔ)言的功能。加之應(yīng)用了多播技術(shù)、高效的編碼格式和簡(jiǎn)捷穩(wěn)定的信息傳輸機(jī)制,本系統(tǒng)在測(cè)試中體現(xiàn)出了較高的性能和穩(wěn)定性。

1 實(shí)現(xiàn)捕獲、播放、存儲(chǔ)、傳輸前編碼、組播傳輸音視頻數(shù)據(jù)

JMF(Java Media Framework)是Sun 公司提出的Java 媒體架構(gòu)。它是對(duì)應(yīng)Java 2平臺(tái)標(biāo)準(zhǔn)版(J2SE)的一種可選用的應(yīng)用編程接口(API)。JMF所提供的多媒體功能如下:1)可以在Java Applet和應(yīng)用程序中播放各種媒體文件。它提供了對(duì)各種主要媒體形式和編碼的支持,如JPEG、H.263、MP3、Macromedias Flash。JMF 2.1.1 還支持多種媒體類型如Quicktime、MOV、Microsoft AVI和MPEG-1。2)在互聯(lián)網(wǎng)上傳輸音頻和視頻數(shù)據(jù)流。3)可以利用攝像機(jī)一類的設(shè)備截取音頻和視頻并保存為多媒體文件。4)處理多媒體文件轉(zhuǎn)換文件格式。5)在互聯(lián)網(wǎng)上廣播音頻和視頻數(shù)據(jù)。JMF主要由兩大部分構(gòu)成:JMF API和JMF RTP API。前者是JMF的核心,負(fù)責(zé)對(duì)媒體的基本操作;后者則屬于前者的擴(kuò)展,用于RTP媒體流的發(fā)送與接收。JMF 針對(duì)RTP 的媒體傳輸類型相當(dāng)有限,只有一種內(nèi)容描述(ContentDescriptor)RAW_RTP。JMF所支持的RTP 負(fù)載類型也非常有限,如表1 所示。

表1 JMF 所支持的RTP 傳輸FORMAT

基于JMF 的RTP/RTCP傳輸模型的整體設(shè)計(jì)如圖1所示:

圖1 基于JMF 的RTP/RTCP傳輸模型的整體設(shè)計(jì)示意圖

1.1 利用JMF實(shí)現(xiàn)系統(tǒng)的技術(shù)難點(diǎn)及解決方案

1.1.1 降低網(wǎng)絡(luò)帶寬

網(wǎng)絡(luò)帶寬是視頻軟件設(shè)計(jì)中首先要考慮的問(wèn)題。本系統(tǒng)采用組播方式代替?zhèn)鹘y(tǒng)的單播方式。組播的源和目的地是一對(duì)多的關(guān)系,并且該用戶同一組播地址的用戶才能接收到。組播允許路由器在分支處將數(shù)據(jù)包復(fù)制到多條鏈路上,因此發(fā)送方只需發(fā)送一個(gè)數(shù)據(jù)包即可讓該數(shù)據(jù)包被同一組播地址的用戶所接收,每個(gè)用戶就不再需要為向其他用戶發(fā)送/接收數(shù)據(jù)包而一一建立鏈接,大大降低用戶所需帶寬。以最低帶寬需求為例:視頻采用h263/rtp格式、160×120分辨率、10幀/秒需帶寬為60kb/s ,音頻采用G723/rtp、單聲道、8位采樣格式所需帶寬為5kb/s。以目前家庭ADSL寬帶1M的帶寬,完全能實(shí)現(xiàn)16人同時(shí)參加視頻會(huì)議。

1.1.2 對(duì)來(lái)自同一硬件的音/視頻數(shù)據(jù)流同時(shí)進(jìn)行播放、

編碼后存儲(chǔ)及編碼后發(fā)送

JMF可捕獲來(lái)自于硬件的多媒體數(shù)據(jù)并創(chuàng)建數(shù)據(jù)源,并且JMF Manger類提供了createCloneableDataSource(數(shù)據(jù)源對(duì)象)方法,創(chuàng)建一個(gè)新的可克隆的數(shù)據(jù)源對(duì)象。每種操作都能獲取一個(gè)克隆的數(shù)據(jù)源對(duì)象,而且可以對(duì)自己的數(shù)據(jù)源對(duì)象進(jìn)行不同的編碼(如存儲(chǔ)操作采用MOV視頻格式編碼,而發(fā)送操作則采用適合RTP要求的多媒體格式編碼)而不影響其他操作,不用像其他語(yǔ)言一樣采用各種技術(shù)方法復(fù)制數(shù)據(jù)流。

1.2 系統(tǒng)實(shí)現(xiàn)

1.2.1 數(shù)據(jù)源(DataSource)的捕獲

JMF能捕獲的本地?cái)?shù)據(jù)源有兩種:一種是來(lái)自于多媒體文件,另一種是來(lái)自于本地音視頻硬件。多媒體文件的數(shù)據(jù)源可通過(guò)JMF提供的MediaLocator類定位本地或網(wǎng)絡(luò)上多媒體文件的位置,然后采用Manager 類的createDataSource法捕獲數(shù)據(jù)源。對(duì)于本地音視頻硬件通過(guò)CaptureDeviceManager類的getDeviceList()方法獲取所有設(shè)備的CaptureDeviceInfo對(duì)象,然后通過(guò)JMFUtils類的createCaptureDataSource()方法捕獲數(shù)據(jù)源。

1.2.2 多媒體數(shù)據(jù)播放

在JMF中對(duì)應(yīng)播放器的接口是Player,可通過(guò)Manager類的createPlayer(數(shù)據(jù)源對(duì)象)方法獲取。Player對(duì)象將音頻/視頻數(shù)據(jù)源、文件數(shù)據(jù)源作為輸入,然后將數(shù)據(jù)流輸出到音箱或屏幕上,就像CD播放機(jī)讀取CD唱片中的歌曲,然后將信號(hào)送到音箱上一樣。獲得了一個(gè)Player對(duì)象后,你可以通過(guò)調(diào)用getVisualComponent()方法得到Player對(duì)象的圖像部件(Visual Component,在圖像部件上可以播放多媒體的圖像)。然后將圖像部件加入到應(yīng)用程序界面上。

1.2.3 多媒體數(shù)據(jù)的編碼和發(fā)送

同樣使用處理器來(lái)處理實(shí)時(shí)的視頻、音頻數(shù)據(jù)并且將數(shù)據(jù)軌道分別進(jìn)行編碼,使其適合網(wǎng)絡(luò)傳輸。利用從處理器獲取的數(shù)據(jù)源建立可用于網(wǎng)絡(luò)傳輸?shù)腜ushBufferDataSource數(shù)據(jù)源對(duì)象和PushBufferStream數(shù)據(jù)流對(duì)象數(shù)組,并建立RTP通訊管理類對(duì)象。為音/視頻分別創(chuàng)建一個(gè)RTPManger。一般所有參與者選擇一致的端口號(hào),以便于管理。創(chuàng)建一個(gè)會(huì)話分為兩步:初始化本地地址和添加目的地址。為了實(shí)現(xiàn)組播,采用組播IP 地址,本地與目的地址均設(shè)為組播IP 地址。利用從RTPManger對(duì)象獲取的數(shù)據(jù)流發(fā)送多媒體數(shù)據(jù)。在初始化RTPManager 時(shí),可通過(guò)BufferControl來(lái)設(shè)置接收buffer,以提高播放質(zhì)量。1.2.4 多媒體數(shù)據(jù)接收

用上述的方法建立RTP通訊管理類對(duì)象數(shù)組,分別監(jiān)聽(tīng)音、視頻數(shù)據(jù)發(fā)送端口,添加SessionListener和ReceiveStreamListener監(jiān)聽(tīng)對(duì)象,用于監(jiān)聽(tīng)回話事件和接收數(shù)據(jù)流事件。當(dāng)ReceiveStreamListener對(duì)象獲取到NewReceiveStreamEvent事件時(shí),可通過(guò)NewReceiveStreamEvent對(duì)象獲取數(shù)據(jù)源,然后即可利用上面所提到的方法處理數(shù)據(jù)的播放和保存。

2 利用JGROUP實(shí)現(xiàn)聊天文字、白板信息的組播傳輸及在線用戶信息對(duì)象的同步

JGroup是一種可靠的群組通訊工具,用Java實(shí)現(xiàn)。JGroup以IP多播為基礎(chǔ)并且提供可靠性和群組功能。其中,可靠性包括: 消息不丟失; 大消息拆分和重組功能; 保證消息有序性; 消息原子性(某條消息要么全部成員都收到,或都收不到)。群組功能包括:群組成員知道群組內(nèi)所有其他成員;當(dāng)群組發(fā)生以下的事件,所有群組成員都能收到通知:1)新組員加入群;2)舊組員離開(kāi)群;3)某現(xiàn)有組員意外脫離群 。

2.1 技術(shù)難點(diǎn)及解決方案

實(shí)現(xiàn)在線用戶信息對(duì)象的同步,如果采用基于TCP的可序列化對(duì)象傳輸方法非常繁瑣,要建立服務(wù)器和客戶端鏈接并且進(jìn)行對(duì)象傳輸。如果直接采用JGROUP的消息發(fā)送機(jī)制,在用戶加入、離開(kāi)、狀態(tài)變更時(shí)都有發(fā)送信息到組內(nèi),過(guò)程也不簡(jiǎn)單。因此,JGROUP提供了兩個(gè)類來(lái)實(shí)現(xiàn)數(shù)據(jù)同步:分布式哈希表(DistributedHashtable)、分布式哈希樹(shù)(DistributedTree)。本系統(tǒng)通過(guò)建立分布式哈希表對(duì)象,保存一個(gè)在線用戶列表,使得所用在線用戶都能知道其他用戶的狀態(tài)。分布式哈希表允許在不同的主機(jī)上建立多個(gè)哈希表對(duì)象,所有的對(duì)象都具有同樣的狀態(tài)。當(dāng)新建一個(gè)含指定組的分布式哈希表對(duì)象時(shí),新對(duì)象會(huì)向已有的成員查詢當(dāng)前狀態(tài)并更新。當(dāng)對(duì)象調(diào)用put()或remove()時(shí),不同主機(jī)上的哈希表對(duì)象亦會(huì)同時(shí)更新。

2.2 系統(tǒng)實(shí)現(xiàn)

2.2.1 聊天文字、白板信息的組播傳輸

要想加入一個(gè)組,并與組內(nèi)其他的成員交互,必須建立一個(gè)信道(Channel)連接到組,同一個(gè)組內(nèi)的所有成員使用相同的組名稱。首先是創(chuàng)建一個(gè)信道,可以直接實(shí)例化一個(gè)Channel的實(shí)現(xiàn),這里用的是JChannel。創(chuàng)建完之后,信道現(xiàn)在處于未連接狀態(tài),需要通過(guò)connect方法將之連接到組,使其處于連接狀態(tài),這時(shí)就可以發(fā)送/接收消息了。

2.2.2 用戶管理

使用上述方法一樣建立JChannel,利用JChannel建立分布式哈希表對(duì)象,已本地地址為關(guān)鍵字保存用戶對(duì)象,并注冊(cè)監(jiān)聽(tīng)器。當(dāng)分布式哈希表對(duì)象有用戶對(duì)象加入、狀態(tài)變更、離開(kāi)時(shí),監(jiān)聽(tīng)器會(huì)接收到相應(yīng)事件,各客戶端可根據(jù)事件修改在線用戶列表。

3 實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性

java體系已經(jīng)支持java程序的平臺(tái)無(wú)關(guān)性,只需要在編寫(xiě)程序時(shí)不直接或者間接調(diào)用不屬于java api的本地方法,不接使用文件路徑分隔符,而是采用File類的separator屬性獲取當(dāng)前系統(tǒng)的文件分隔符。

[1] 孫一林,彭波.Java網(wǎng)絡(luò)編程實(shí)例[M].北京:清華大學(xué)出版社.2005.

[2] 馮博,應(yīng)群.網(wǎng)絡(luò)視頻流媒體技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社.2001.

[3] 劉東華,王巍,唐剛.O'Reilly:Java網(wǎng)絡(luò)編程(第2版)[M].北京:中國(guó)電力出版社.2001.

[4] 孫奎,殷兆麟.基于JMF的多人視頻聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì).2007:68-72.

[5] 江霖及,遲佳.基于JMF 的音,視頻聊天實(shí)現(xiàn) [DB,CD].中國(guó)科技論文在線.2007.

[6] 王丹.視頻會(huì)議系統(tǒng)現(xiàn)狀、關(guān)鍵技術(shù)及其應(yīng)用[J].現(xiàn)代電視技術(shù). 2002(1):20-24.

[7] 楊波.視頻會(huì)議系統(tǒng)發(fā)展分析報(bào)告[J].江蘇通信技術(shù).2003.19(3):34-40.

猜你喜歡
多媒體用戶系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
借助多媒體探尋有效設(shè)問(wèn)的“四度”
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
多媒體在《機(jī)械制圖》課中的應(yīng)用
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
多媒體達(dá)人煉成記
河南電力(2016年5期)2016-02-06 02:11:40
主站蜘蛛池模板: 日本不卡视频在线| 91在线精品麻豆欧美在线| 国产精品自在拍首页视频8| 国产欧美日韩va另类在线播放| 亚洲国产精品一区二区第一页免| 五月天丁香婷婷综合久久| 亚洲第七页| 国产欧美日韩精品综合在线| 欧美日本激情| 高清国产va日韩亚洲免费午夜电影| 国产福利观看| 无码内射中文字幕岛国片| 91免费片| 婷婷综合缴情亚洲五月伊| 中文毛片无遮挡播放免费| 88国产经典欧美一区二区三区| 青青草a国产免费观看| 91精品久久久久久无码人妻| 国产白浆视频| 亚洲精品无码专区在线观看 | 亚洲永久视频| 高清欧美性猛交XXXX黑人猛交| 国产乱人乱偷精品视频a人人澡| 久久综合一个色综合网| 精品国产乱码久久久久久一区二区| а∨天堂一区中文字幕| 欧美一级色视频| 亚洲第一成年免费网站| 国产人成在线观看| 狠狠做深爱婷婷综合一区| 97在线免费| 久久精品国产免费观看频道| 欧美日韩中文字幕在线| 一本大道在线一本久道| 国产精品成人免费视频99| 综合网久久| 91久久精品日日躁夜夜躁欧美| 99re视频在线| 美女无遮挡被啪啪到高潮免费| 色呦呦手机在线精品| 香蕉伊思人视频| h网站在线播放| 久久中文电影| 国产欧美精品专区一区二区| 国产成人三级在线观看视频| 91精品伊人久久大香线蕉| 久久精品娱乐亚洲领先| 日韩乱码免费一区二区三区| 伦精品一区二区三区视频| 欧美成人手机在线观看网址| 国产最新无码专区在线| 免费大黄网站在线观看| 久久青草精品一区二区三区| 色哟哟国产精品一区二区| 日韩在线1| 国产视频你懂得| 日韩大片免费观看视频播放| 国产精品19p| 精品久久香蕉国产线看观看gif | 91欧美在线| 在线观看免费AV网| 久久狠狠色噜噜狠狠狠狠97视色| 婷婷亚洲视频| 国产精品一区不卡| 精品国产99久久| 久久香蕉国产线看精品| 无码 在线 在线| 欧美国产精品不卡在线观看| 欧洲亚洲一区| 99热这里只有精品免费| 成人永久免费A∨一级在线播放| 亚洲电影天堂在线国语对白| 亚洲欧洲AV一区二区三区| 日韩精品少妇无码受不了| 欧美精品H在线播放| 国产成人综合亚洲欧洲色就色| 丁香五月亚洲综合在线 | 国产精品无码影视久久久久久久 | 18禁影院亚洲专区| 亚洲精品欧美日韩在线| 91在线日韩在线播放| 亚洲天堂在线视频|