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

基于JMF和GROUP遠程視頻會議的設計與實現

2011-02-09 01:57:12李毓麗
制造業自動化 2011年4期
關鍵詞:多媒體用戶系統

李毓麗

(廣州大學 華軟軟件學院 網絡技術系,廣州 510990)

0 引言

目前國內外軟件視頻會議系統解決方案基本是通過網絡即時通訊技術,實現基于互聯網的視頻、聲音、文字、文件的即時通訊服務,在網上實現人與人面對面交流。客戶端傳輸數據到服務器,服務器統一處理后再傳輸到客戶端,加大服務器的帶寬壓力。另外,會議系統基本都是基于WINDOWS操作系統,能擺脫平臺依賴的會議系統簡直就是鳳毛麟角。

總的來說,目前軟件視頻會議系統的主要不足在于:1)基于網絡單播;2)沒有提供跨平臺功能;3)沒有提供多國語言支持功能。為了實現一款跨平臺、支持多國語言及基于網絡組播視頻會議系統需要解決以下的問題:

1)如何實現音視頻數據的捕獲、播放、存儲、傳輸前編碼、組播傳輸

2)如何實現聊天文字、白板信息的組播傳輸及在線用戶信息對象的同步

3)如何實現平臺無關性

本文從中小規模企業對視頻會議系統的實際需要出發,提出并實現了一個基于JMF和JGROUP的視頻會議系統原型。由于JAVA語言本身跨平臺特性,本系統還具備大多同類軟件所不具備的強大的可移植功能。另外,JAVA語言對國際化的大力支持,本系統還具備了支持多種界面文字語言的功能。加之應用了多播技術、高效的編碼格式和簡捷穩定的信息傳輸機制,本系統在測試中體現出了較高的性能和穩定性。

1 實現捕獲、播放、存儲、傳輸前編碼、組播傳輸音視頻數據

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

表1 JMF 所支持的RTP 傳輸FORMAT

基于JMF 的RTP/RTCP傳輸模型的整體設計如圖1所示:

圖1 基于JMF 的RTP/RTCP傳輸模型的整體設計示意圖

1.1 利用JMF實現系統的技術難點及解決方案

1.1.1 降低網絡帶寬

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

1.1.2 對來自同一硬件的音/視頻數據流同時進行播放、

編碼后存儲及編碼后發送

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

1.2 系統實現

1.2.1 數據源(DataSource)的捕獲

JMF能捕獲的本地數據源有兩種:一種是來自于多媒體文件,另一種是來自于本地音視頻硬件。多媒體文件的數據源可通過JMF提供的MediaLocator類定位本地或網絡上多媒體文件的位置,然后采用Manager 類的createDataSource法捕獲數據源。對于本地音視頻硬件通過CaptureDeviceManager類的getDeviceList()方法獲取所有設備的CaptureDeviceInfo對象,然后通過JMFUtils類的createCaptureDataSource()方法捕獲數據源。

1.2.2 多媒體數據播放

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

1.2.3 多媒體數據的編碼和發送

同樣使用處理器來處理實時的視頻、音頻數據并且將數據軌道分別進行編碼,使其適合網絡傳輸。利用從處理器獲取的數據源建立可用于網絡傳輸的PushBufferDataSource數據源對象和PushBufferStream數據流對象數組,并建立RTP通訊管理類對象。為音/視頻分別創建一個RTPManger。一般所有參與者選擇一致的端口號,以便于管理。創建一個會話分為兩步:初始化本地地址和添加目的地址。為了實現組播,采用組播IP 地址,本地與目的地址均設為組播IP 地址。利用從RTPManger對象獲取的數據流發送多媒體數據。在初始化RTPManager 時,可通過BufferControl來設置接收buffer,以提高播放質量。1.2.4 多媒體數據接收

用上述的方法建立RTP通訊管理類對象數組,分別監聽音、視頻數據發送端口,添加SessionListener和ReceiveStreamListener監聽對象,用于監聽回話事件和接收數據流事件。當ReceiveStreamListener對象獲取到NewReceiveStreamEvent事件時,可通過NewReceiveStreamEvent對象獲取數據源,然后即可利用上面所提到的方法處理數據的播放和保存。

2 利用JGROUP實現聊天文字、白板信息的組播傳輸及在線用戶信息對象的同步

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

2.1 技術難點及解決方案

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

2.2 系統實現

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

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

2.2.2 用戶管理

使用上述方法一樣建立JChannel,利用JChannel建立分布式哈希表對象,已本地地址為關鍵字保存用戶對象,并注冊監聽器。當分布式哈希表對象有用戶對象加入、狀態變更、離開時,監聽器會接收到相應事件,各客戶端可根據事件修改在線用戶列表。

3 實現平臺無關性

java體系已經支持java程序的平臺無關性,只需要在編寫程序時不直接或者間接調用不屬于java api的本地方法,不接使用文件路徑分隔符,而是采用File類的separator屬性獲取當前系統的文件分隔符。

[1] 孫一林,彭波.Java網絡編程實例[M].北京:清華大學出版社.2005.

[2] 馮博,應群.網絡視頻流媒體技術與應用[M].北京:清華大學出版社.2001.

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

[4] 孫奎,殷兆麟.基于JMF的多人視頻聊天軟件的設計與實現[J].計算機工程與設計.2007:68-72.

[5] 江霖及,遲佳.基于JMF 的音,視頻聊天實現 [DB,CD].中國科技論文在線.2007.

[6] 王丹.視頻會議系統現狀、關鍵技術及其應用[J].現代電視技術. 2002(1):20-24.

[7] 楊波.視頻會議系統發展分析報告[J].江蘇通信技術.2003.19(3):34-40.

猜你喜歡
多媒體用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
借助多媒體探尋有效設問的“四度”
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
多媒體在《機械制圖》課中的應用
消費導刊(2018年10期)2018-08-20 02:56:28
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
多媒體達人煉成記
河南電力(2016年5期)2016-02-06 02:11:40
主站蜘蛛池模板: YW尤物AV无码国产在线观看| 都市激情亚洲综合久久| 日韩中文无码av超清| 九九免费观看全部免费视频| 激情网址在线观看| 欧美午夜精品| 国产成人亚洲精品无码电影| 国产在线日本| 亚洲第七页| 人妻无码中文字幕第一区| 精品国产aⅴ一区二区三区| 99在线国产| 久久精品丝袜| 波多野结衣中文字幕一区| 国产精品美乳| 婷婷综合色| …亚洲 欧洲 另类 春色| 亚洲Aⅴ无码专区在线观看q| 精品人妻无码中字系列| 免费在线国产一区二区三区精品| 99久久精品美女高潮喷水| 日韩a级毛片| 99视频在线精品免费观看6| 亚洲精品成人片在线观看| 久久久精品国产SM调教网站| 亚洲欧美综合精品久久成人网| 奇米精品一区二区三区在线观看| 一级成人a做片免费| 亚洲美女高潮久久久久久久| 99一级毛片| 亚洲成人动漫在线| 亚洲日韩图片专区第1页| 国产精品九九视频| 久热中文字幕在线| 国产午夜小视频| 亚洲日本韩在线观看| 五月婷婷综合在线视频| 亚洲V日韩V无码一区二区| 亚洲欧美综合另类图片小说区| 毛片一级在线| 色精品视频| 日韩专区第一页| 国产欧美日韩资源在线观看| 又黄又爽视频好爽视频| 日日噜噜夜夜狠狠视频| 日韩精品高清自在线| 日韩精品一区二区深田咏美| 性欧美在线| 久久精品只有这里有| 亚洲精品高清视频| 婷婷激情亚洲| 黄色在线不卡| 91福利免费视频| 免费在线a视频| 日韩天堂网| 强奷白丝美女在线观看| 国产高清在线观看| 国产亚洲精品无码专| 欧美亚洲第一页| 91黄视频在线观看| 亚洲区第一页| 成人免费一区二区三区| 国产第三区| 99精品欧美一区| 国产一区亚洲一区| 亚洲福利片无码最新在线播放| 久久一级电影| 夜夜操国产| 成人福利在线视频免费观看| 中文字幕在线日韩91| 91麻豆国产视频| 国产jizz| 米奇精品一区二区三区| 欧美成人免费午夜全| 国产精品专区第一页在线观看| 又爽又黄又无遮挡网站| 成人中文字幕在线| 国产青青操| 欧美一级特黄aaaaaa在线看片| 午夜限制老子影院888| 999国产精品永久免费视频精品久久| 亚国产欧美在线人成|