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

流媒體視頻服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

2009-04-29 00:00:00杜文華張東升李曉峰
電腦知識(shí)與技術(shù) 2009年15期

摘要:介紹了用于流媒體傳輸?shù)腞TP協(xié)議和實(shí)時(shí)流化協(xié)議RTSP,提出了視頻點(diǎn)播服務(wù)器與客戶端的交互過(guò)程,并詳細(xì)介紹了LiveMedia庫(kù)知識(shí),建立了視頻點(diǎn)播服務(wù)器,特別是加入了計(jì)費(fèi)模塊,實(shí)現(xiàn)了計(jì)費(fèi)功能,并可以用于中小型的酒店,小區(qū)中,節(jié)約了成本。

關(guān)鍵詞:VOD;RTSP;LiveMedia;計(jì)費(fèi)接口

中圖分類號(hào):TP915.04 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)15-4019-03

The Design and Implementation of Streaming Media Video Server

ZHAO Peng1, DU Wen-hua2,ZHANG Dong-sheng3,LI Xiao-feng1,ZHAO Jie4

(1.Department of Computer Science and Technology,Shandong Jianzhu University, Jinan 250101, China; 2.Shandong Institute of Education,Jinan 250014,China;3.Jinan Cigarette Factory,Jinan 250104,China;4.No.5 High School of Qingzhou City in Shandong Provice,Qingzhou 262514,China)

Abstract: This paper describes RTP protocol for streaming media transmission and the RTSP Protocol for the Real-Time Streaming,introduces a video-on-demand server and the client interaction’s process, and puts up with the knowledge of LiveMedia library in detail, sets up the on-demand server, in particular, adds the billing module, implements the billing function, and can be used for small and medium-sized hotels, communities in order to save the cost.

Key words: VOD;RTSP;LiveMedia;the Billing Interface

1 引言

近年來(lái),隨著Internet技術(shù)的發(fā)展,主干網(wǎng)和接入網(wǎng)速率不斷提高,為寬帶應(yīng)用提供了必需的硬件基礎(chǔ)設(shè)施;網(wǎng)絡(luò)和多媒體技術(shù)的發(fā)展為VOD(video on demand)產(chǎn)生創(chuàng)造了條件。同時(shí),VOD屬于流媒體技術(shù)的一種主要應(yīng)用,它改變了傳統(tǒng)的用戶被動(dòng)接受的方式(如收看電視),而代之以交互的方式,變革了人們傳統(tǒng)的娛樂方式,具有極為廣闊的前景。本文從降低系統(tǒng)成本的角度進(jìn)行分析探索,提出了基于開源項(xiàng)目LiveMedia的方案。

2 流媒體服務(wù)器的概況

2.1 相關(guān)協(xié)議

與流媒體傳輸相關(guān)的協(xié)議有RTP,RTCP,RTSP,其中RTSP,RTP等實(shí)際應(yīng)屬于應(yīng)用層協(xié)議,它們利用傳輸層TCP和UDP提供的服務(wù)來(lái)完成多媒體流式數(shù)據(jù)的傳輸,協(xié)議圖如圖1所示。

2.2RTP簡(jiǎn)介

1) RTP[1]是針對(duì)Internet上多媒體數(shù)據(jù)流的一個(gè)傳輸協(xié)議,由IETF(Internet工程任務(wù)組)作為RFC1889發(fā)布。RTP被定義為在一對(duì)一或一對(duì)多的傳輸情況下工作,其目的是提供時(shí)間信息和實(shí)現(xiàn)流同步。RTP的典型應(yīng)用建立在UDP上,但也可以在TCP或ATM等其他協(xié)議之上工作。RTP本身只保證實(shí)時(shí)數(shù)據(jù)的傳輸,并不能為按順序傳送數(shù)據(jù)包提供可靠的傳送機(jī)制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù)。

RTP和UDP協(xié)議二者共同完成傳輸層協(xié)議功能。UDP協(xié)議只是傳輸數(shù)據(jù)包,不管數(shù)據(jù)包傳輸?shù)臅r(shí)間順序RTP的協(xié)議數(shù)據(jù)單元是用UDP分組來(lái)承載的。RTP協(xié)議雖然是傳輸層協(xié)議但是它沒有作為OSI體系結(jié)構(gòu)中單獨(dú)的一層來(lái)實(shí)現(xiàn)。

2) RTCP負(fù)責(zé)管理傳輸質(zhì)量在當(dāng)前應(yīng)用進(jìn)程之間交換控制信息。在RTP會(huì)話期間,各參與者周期性地傳送RTCP包,包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計(jì)資料。因此,服務(wù)器可以利用這些信息動(dòng)態(tài)地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化,故特別適合傳送網(wǎng)上的實(shí)時(shí)數(shù)據(jù)。

當(dāng)應(yīng)用程序開始一個(gè)RTP會(huì)話時(shí)將使用兩個(gè)端口:一個(gè)給RTP,一個(gè)給RTCP。

2.3 RTSP簡(jiǎn)介

實(shí)時(shí)流協(xié)議RTSP(Real-time Streaming Protocol)[2]是由Real Networks和Netscape共同提出的。該協(xié)議定義了一對(duì)多應(yīng)用程序如何有效地通過(guò)IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上。它使用TCP或RTP完成數(shù)據(jù)傳輸。HTTP與RTSP相比,HTTP傳送HTML,而RTSP傳送是多媒體數(shù)據(jù)。HTTP請(qǐng)求由客戶機(jī)發(fā)出,服務(wù)器作出響應(yīng);使用RTSP時(shí),客戶機(jī)和服務(wù)器都可以發(fā)出請(qǐng)求,即RTSP可以是雙向的。

RTSP建立并控制一個(gè)或幾個(gè)時(shí)間同步的連續(xù)流媒體,如音頻和視頻。盡管連續(xù)媒體流與控制流交叉是可能的,RTSP本身并不發(fā)送連續(xù)流。換言之,RTSP充當(dāng)多媒體服務(wù)器的網(wǎng)絡(luò)遠(yuǎn)程控制。RTSP提供了一個(gè)可擴(kuò)展框架,實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)(如音頻與視頻)的受控、按需傳送。數(shù)據(jù)源包括實(shí)況數(shù)據(jù)與存儲(chǔ)的剪輯。RTSP用于控制多個(gè)數(shù)據(jù)發(fā)送會(huì)話,提供了選擇發(fā)送通道(如UDP、組播UDP與TCP等)的方式,并提供了選擇基于RTP的發(fā)送機(jī)制的方法。

RTSP主要為媒體服務(wù)器提供遠(yuǎn)程控制功能,在多媒體流傳輸?shù)倪^(guò)程中,播放器和服務(wù)器之間通過(guò)交換RTSP消息來(lái)實(shí)現(xiàn)資源描述信息的獲取、連接的建立、播放控制等功能。RTSP消息用純文本格式表示,使用SDP(SessionDescriptionProtocol)協(xié)議描述。

3 服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

3.1 服務(wù)器的設(shè)計(jì)

服務(wù)器與客戶端經(jīng)過(guò)OPTIONS,DESCRIBE,SETUP,PLAY后,服務(wù)器發(fā)送視頻流RTP包到客戶端,并且客戶端每隔一小段時(shí)間向服務(wù)器發(fā)送RTCP反饋報(bào)告,服務(wù)器可以利用這些信息動(dòng)態(tài)地改變傳輸速率,用戶收到視頻流后,解碼播放。正如文章[3]所說(shuō),如圖2所示客戶端與服務(wù)器端的交互過(guò)程。

1) Option:客戶端通過(guò)發(fā)送Option消息請(qǐng)求,服務(wù)器端通告它支持的所有交互方法。

2) Describe:客戶端發(fā)送Describe請(qǐng)求,通過(guò)服務(wù)器端權(quán)限驗(yàn)證,響應(yīng)關(guān)于請(qǐng)求媒體的相關(guān)信息;

3) Setup:客戶機(jī)發(fā)送一個(gè)Setup請(qǐng)求,其中包括協(xié)議集和端口號(hào)(或者是端口號(hào)的一個(gè)范圍),客戶機(jī)通過(guò)這些協(xié)議集和端口來(lái)接收媒體流。服務(wù)器從中選擇一個(gè)協(xié)議和端口,然后在應(yīng)答消息中傳回給客戶機(jī);

4) Play/Pause:播放和暫停,客戶端可以設(shè)置播放的區(qū)間和暫停的時(shí)刻;

5) Teardown:客戶端發(fā)出關(guān)閉請(qǐng)求,服務(wù)器端響應(yīng)請(qǐng)求,播放連接到此結(jié)束。

3.2 LiveMedia項(xiàng)目的介紹

LiveMedia[4]項(xiàng)目都是由標(biāo)準(zhǔn)C++語(yǔ)言寫成,能夠跨平臺(tái)運(yùn)行,適合于構(gòu)建低成本的流媒體應(yīng)用系統(tǒng),也適合于嵌入式系統(tǒng)。

LiveMedia項(xiàng)目的源代碼包括四個(gè)基本的庫(kù),各種測(cè)試代碼以及Media Server。四個(gè)基本的庫(kù)分別是UsageEnvironmentTaskScheduler,groupsock,liveMedia和BasicUsageEnvironment。UsageEnvironmentTaskScheduler類用于事件的調(diào)度,實(shí)現(xiàn)異步讀取事件的句柄的設(shè)置以及錯(cuò)誤信息的輸出。另外,還有一個(gè)HashTable類定義了一個(gè)通用的hash表,其它代碼要用到這個(gè)表。這些都是抽象類,在應(yīng)用程序中基于這些類來(lái)實(shí)現(xiàn)自己的子類。Groupsock庫(kù)是是對(duì)網(wǎng)絡(luò)接口的封裝,用于收發(fā)數(shù)據(jù)包。正如名字本身,groupsock主要是面向多播數(shù)據(jù)的收發(fā)的,它也同時(shí)支持單播數(shù)據(jù)的收發(fā)。LiveMedia庫(kù)是中有一系列類,基類是Medium,這些類針對(duì)不同的流媒體類型和編碼。BasicUsageEnvironment庫(kù)主要是針對(duì)簡(jiǎn)單的控制臺(tái)應(yīng)用程序,利用select實(shí)現(xiàn)事件獲取和處理。定義了類UsageEnvironment的一個(gè)具體實(shí)現(xiàn),用作配置基本環(huán)境。

3.3 服務(wù)器的實(shí)現(xiàn)

Live555本身并不具備計(jì)費(fèi)功能,需要進(jìn)行二次開發(fā),添加計(jì)費(fèi)接口,才能滿足實(shí)際要求。根據(jù)對(duì)源碼的分析,結(jié)合具體的機(jī)頂盒,可以建立一套接字向計(jì)費(fèi)管理程序發(fā)送RTSP的方法,節(jié)目名稱,發(fā)送時(shí)間,機(jī)頂盒IP地址,根據(jù)此信息可以對(duì)其進(jìn)行實(shí)現(xiàn)按次(按天)計(jì)費(fèi)。

開發(fā)流程:

1) 建立使用環(huán)境

通過(guò)代碼TaskScheduler* scheduler = BasicTaskScheduler::createNew();

UsageEnvironment* env = BasicUsageEnvironment::createNew(*scheduler);來(lái)生成BasicUsageEnvironment類的一個(gè)對(duì)象,建立基本使用環(huán)境。

2) 權(quán)限控制

利用代碼UserAuthenticationDatabase* authDB = NULL;

authDB = newUserAuthenticationDatabase;

authDB -> addUserRecord(\"username 1 \", \"password 1 \");實(shí)現(xiàn)權(quán)限控制,可以阻止沒有權(quán)限的用戶進(jìn)行點(diǎn)播。沒有權(quán)限控制需要的可以省略此部分。

3) 建立RTSP服務(wù)器

利用代碼RTSPServer* rtspServer;

portNumBits rtspServerPortNum = 554;

rtspServer = DynamicRTSPServer::createNew(*env, rtspServerPortNum, authDB);建立RTSP服務(wù)器,該服務(wù)器完成與客戶端的交互,實(shí)現(xiàn)客戶端的VCR操作,即在客戶端完成對(duì)當(dāng)前節(jié)目的播放、暫停、倒退、快進(jìn)等操作。554是RTSP服務(wù)器的端口,也可以改為其它未被占用的端口,服務(wù)器的IP地址不用特別設(shè)定,它是運(yùn)行點(diǎn)播服務(wù)程序的計(jì)算機(jī)的IP地址。該服務(wù)器只創(chuàng)建一次,一個(gè)服務(wù)器響應(yīng)所有的點(diǎn)播用戶。

4) 執(zhí)行循環(huán)方法

通過(guò)代碼env->taskScheduler().doEventLoop();來(lái)執(zhí)行循環(huán)方法,對(duì)套接字的讀取事件和對(duì)媒體文件的延時(shí)發(fā)送操作都在這個(gè)循環(huán)中完成。

5) 計(jì)費(fèi)接口的添加

添加套接字sckIn并進(jìn)行套接字與執(zhí)行函數(shù)相關(guān)聯(lián)

envir().taskScheduler().turnOnBackgroundReadHandling(sckIn,(TaskScheduler::BackgroundHandlerProc *)incomingHandler, this);執(zhí)行函數(shù)的功能是:收到用戶的點(diǎn)播信息(RTSP的方法,節(jié)目名稱,發(fā)送時(shí)間,機(jī)頂盒IP地址)發(fā)送給計(jì)費(fèi)管理程序。這樣前臺(tái)程序收到用戶的信息執(zhí)行相應(yīng)的算法就可以進(jìn)行計(jì)費(fèi)了。

6) 測(cè)試:在linux下按照本文的方法添加了計(jì)費(fèi)模塊,并進(jìn)行了測(cè)試。測(cè)試環(huán)境基于百兆網(wǎng)絡(luò),一臺(tái)普通的PC可以支持100個(gè)碼率為800Kbps的h.264的ts流,客戶端采用虛擬客戶端和機(jī)頂盒,正確記錄了用戶的基本信息,并實(shí)現(xiàn)了計(jì)費(fèi)功能。

4 結(jié)論

設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于LiveMedia的視頻點(diǎn)播系統(tǒng),實(shí)現(xiàn)了計(jì)費(fèi)功能,達(dá)到了滿意的效果,并成功應(yīng)用于酒店中,但是隨著用戶并發(fā)量的增加,需要多臺(tái)PC機(jī)才能滿足應(yīng)用,負(fù)載均衡模塊的設(shè)計(jì),還有待進(jìn)一步的研究。

參考文獻(xiàn):

[1] Schulzrinne H, Casner S, Frederick R and Jacobson V, RTP: a Transport Protocol for Real-Time Applications, RFC 1889 [Z], January 1996.

[2] Schulzrinne H,Rao A,Lanphier R, Real Time Streaming Pro-tocol (RTSP)[R]. Tech Rep :RFC2326 ,1998.

[3] 張文鐘.stream-live555[EB/OL].http://140.113.13.90/material/multimedia%20com/stream-live555.pdf.

[4] LiveMedia網(wǎng)站[EB/OL].[2009-04-10].http://www.live555.com/.

[5] 高建水,陳耀武,李嵐嵐.基于RTSP協(xié)議的視頻點(diǎn)播系統(tǒng)設(shè)計(jì)[J].電子器件,2006,(4).

[6] 呂慰欣,王芙蓉.一種基于RTSP協(xié)議的電信級(jí)VOD系統(tǒng)[J]計(jì)算機(jī)與數(shù)字工程,2006,(11).

主站蜘蛛池模板: 视频二区中文无码| 91在线国内在线播放老师 | 欧洲精品视频在线观看| 女人av社区男人的天堂| 婷婷六月激情综合一区| 国产精品无码AV片在线观看播放| 夜夜高潮夜夜爽国产伦精品| 亚洲成A人V欧美综合| 久久熟女AV| 午夜福利亚洲精品| 婷婷久久综合九色综合88| 福利姬国产精品一区在线| 国产成人精品2021欧美日韩| 98精品全国免费观看视频| 浮力影院国产第一页| 99热国产这里只有精品无卡顿"| 国产偷倩视频| 亚洲成人精品| 国产日本欧美在线观看| 久久久亚洲国产美女国产盗摄| 精品久久人人爽人人玩人人妻| 亚洲丝袜中文字幕| 成年女人a毛片免费视频| 538国产在线| 久久综合AV免费观看| 亚洲国产91人成在线| 怡春院欧美一区二区三区免费| 欧美中文字幕在线二区| 亚洲国产综合精品中文第一| 亚洲国产精品无码AV| 亚洲av无码人妻| 亚洲天堂精品视频| 欧美一级特黄aaaaaa在线看片| 国产日韩精品欧美一区灰| 手机看片1024久久精品你懂的| 亚洲欧美自拍中文| 巨熟乳波霸若妻中文观看免费| 国产精品无码制服丝袜| 国产h视频在线观看视频| 成人亚洲国产| 六月婷婷综合| 国产精品自拍露脸视频| 91亚洲免费视频| 国产精品免费久久久久影院无码| 91蜜芽尤物福利在线观看| 成人免费午间影院在线观看| 伊人福利视频| 福利在线一区| 97在线公开视频| 五月婷婷综合在线视频| 色综合热无码热国产| 东京热一区二区三区无码视频| 极品性荡少妇一区二区色欲| 久久久久久久久亚洲精品| 九色综合伊人久久富二代| 亚洲第一成网站| 精品人妻系列无码专区久久| 久久久久久高潮白浆| 国产成人综合在线观看| 亚洲国产中文在线二区三区免| 超清无码一区二区三区| 91九色视频网| 精品夜恋影院亚洲欧洲| a级毛片一区二区免费视频| 亚洲国产精品人久久电影| 黄色网站不卡无码| 久久婷婷国产综合尤物精品| 国产成人精品无码一区二| 日韩在线播放欧美字幕| 国产无遮挡裸体免费视频| 韩国v欧美v亚洲v日本v| 欧美激情视频在线观看一区| 亚洲精品国产首次亮相| 日本欧美视频在线观看| 欧美激情网址| 亚洲福利片无码最新在线播放| 91久久精品国产| 毛片基地美国正在播放亚洲| 啪啪永久免费av| 成人午夜在线播放| 国产a在视频线精品视频下载| 日本人又色又爽的视频|