日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Darwin Stream server(DSS服务器)的Relay(中继/转发)设置

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Darwin Stream server(DSS服务器)的Relay(中继/转发)设置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先說一下需求:

有4臺主機ABCD。A機上跑live555,將攝像頭的實時視頻編碼為H264,用RTSP協議(URL:rtsp://IpAddr-B/CamLive.sdp)將視頻流推送至DSS服務器B。B將收到的流轉發給DSS服務器C??蛻舳薉運行VLC,用地址rtsp://IpAddr-C/CamLive.sdp訪問視頻流。

在上述直播轉發的實驗過程過程中,順帶實現點播轉發。在DSS服務器B上運行播放自帶的mp4文件f1.mp4和我自己錄制的mp4文件f2.mp4,并向DSS服務器C轉發。客戶端D運行VLC,用地址rtsp://IpAddr-C/File1.sdp和rtsp://IpAddr-C/File2.sdp訪問點播流。


實驗過程中在網上搜集了很多相關配置的資料,出現頻率較高的有(1)《D?a?r?w?i?n? ?r?e?l?a?y?配?置?/?Darwin服務器安裝以及中繼配置》,(2)《Darwin Streaming Server Relay Setting》,(3 論文)《基于Darwin Streaming Server快速流媒體中繼實現》。它們給了我很多幫助,同時也帶來了很多誤導,本文在此逐一點評。(僅限于技術探討,說的不對的地方還請原作者以及各位指正。)

文獻地址:

(1)http://wenku.baidu.com/link?url=Gm3fYUEO_wrn_toJamKzMvR468uVE0dfIsaHPhkrNVjCHDypyei5uT0KpzzHcnCytqbQdyIpiYaZBGDGQKhBhFRbQvz1vqObE1AivrqB65K

(2)http://blog.chinaunix.net/uid-20751538-id-252614.html

(3)http://www.doc88.com/p-877811973239.html


好,現在開始。


Step1:將B機和C機的DSS服務和webadmin啟動。




Step2:對于直播,在A機上啟動Live555向B機推送視頻流。對于點播,在B機上將視頻文件加入播放列表。





在這一步中,對于直播,Live555程序已經經過改寫,運行在A機上,將視頻監控的實時流主動向B機推送。B機接收到A機推送的流后會自動在Movies目錄下生成live51_30.sdp。

對于點播,直接在B機上配置播放列表即可,本例中,testf使用了DSS自帶的視頻文件sample_300kbit.mp4,testf2使用了我自己錄制的視頻文件aaa_after.mp4。這里要注意的是,對于自己錄制的mp4文件,需要經過處理,添加RTSP頭部后才能播放。我用的處理自有視頻文件的程序是MP4Box,下載地址。配置玩播放列表后別忘了點擊播放按鈕是status從stop編程play,點擊播放按鈕的時候,會在B機的Movies目錄下生成testf.sdp和testf2.sdp。

至此,B機上的配置全部結束。本例中B機的IP是192.1.101.30,可以用VLC通過rtsp://192.1.101.30/live51_30.sdp,rtsp://192.1.101.30/testf.sdp,rtsp://192.1.101.30/testf2.sdp 這三個URL觀看從B機發送的視頻流。


Step3:在C機上配置轉發/中繼,就是Relay。





本例中,live51對應B機中的直播中繼配置,testf和testf2分別對應B機中的自帶視頻點播和錄制視頻點播。因為流數據從B發出以后就不區分文件還是直播了,所以三個配置大同小異。

Source Setting中的地址填寫B機的地址,掛載點填寫B機上生成的sdp文件名;我只嘗試了Request incoming stream這種方式,需要填寫B機的用戶名和密碼。(這里有一點待定,我不填用戶名和密碼好像也行,所以猜測此處的用戶名和密碼可能是針對加密rtsp流的,不一定是B機DSS是管理員用戶名和密碼)。

Destination Settings中地址填寫127.0.0.1,因為目的地是C機本機,我選擇了Announced UDP方式,掛載點留空白,這樣DSS會在C機的Movies目錄下生成和B機上同名的sdp文件,用戶名密碼我填了C機的管理員用戶和口令(安裝DSS時配置的那個)。

選擇Announced UDP的好處是DSS會在目的地自動生成sdp文件,但根據手冊上的描述,該方式不具備穿越防火墻的能力,也就是說適用于局域網。在實驗過程中我也嘗試了Unannounced UDP方式(手冊上說這種方式適合穿越防火墻,應該可以用在Internet上),需要填寫一個目的地的監聽端口號,和最大TTL數(用于控制傳輸距離)。但該方法需要手工將B機上的sdp文件拷貝到C機,并且需要更改端口,由于對sdp文件內容不太了解,成功的次數少,而失敗的次數多。(我懷疑是不是跟下圖中兩處10位數字有關,那是session號嗎?是不是每次重連都要修改sdp文件?還有兩處IP地址分別是什么含義,到底哪一個有用?懇請牛人指導解答)最終作罷。


這里要點評一下前面提到的3篇文檔,第一篇《D?a?r?w?i?n? ?r?e?l?a?y?配?置?/?Darwin服務器安裝以及中繼配置》還是比較靠譜,他用的就是Unannounced UDP方式;第二篇《Darwin Streaming Server Relay Setting》中講到需要在兩臺DSS服務器上分別配置Relay,一推一拉,還很認真的給出了兩臺DSS服務器上的Relay Status(如下圖),其實根據實驗,不管是直播還是點播,都不需要在B機上配置Relay,只要在C機上配就行了。至于第三篇《基于Darwin Streaming Server快速流媒體中繼實現》,應該是誤導了不少人,文檔二的作者也沒看明白這篇論文,主要問題集中在論文第3.3節的小標題8上:文中說將第一臺DSS服務器上的playlist目錄內的文件夾拷貝到第二臺DSS服務器上,然后啟動第二臺DSS的playlist,但我嘗試后發現無法啟動playlist,我猜測原因可能是因為原始視頻文件仍然在第一臺DSS上的緣故,如果將視頻文件也拷貝到第二臺DSS上,那就沒有第一臺什么事了,也談不上轉發。況且使用這種方式每當第一臺DSS增加一路視頻,都需要做拷貝操作,似乎并不合理。如果我有幸能讓論文原作者看到此博文,請指正。


好了,回到主題,至此就配完了DSS轉發,本例中C機的IP是192.1.101.77。現在可以使用可以用VLC通過rtsp://192.1.101.77/live51_30.sdp,rtsp://192.1.101.77/testf.sdp,rtsp://192.1.101.77/testf2.sdp 這三個URL觀看從C機發送的視頻流了。




《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Darwin Stream server(DSS服务器)的Relay(中继/转发)设置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。