手把手教你配Liunx流媒體伺服器

火星人 @ 2014-03-12 , reply:0
←手機掃碼閱讀

  作者:華江
【IT168  】流媒體(Stream Media)指在互聯網或者區域網中使用流式傳輸技術的連續時基媒體,如:音頻、視頻或多媒體文件。流媒體指在網路中使用流式傳輸技術傳送音頻、視頻和多媒體文件等。Linux作為網路應用的先鋒,自然作為流媒體的最佳平台。LAMP (Linux + Apache + MySQL + PHP/Perl/Python) 近幾年來發展迅速,已經成為Web 伺服器的事實標準。下面手把手教您配置Liunx流媒體伺服器。

    目前有三種主流的流媒體系統: 分別是RealNetworks公司的RealMedia、Microsoft的Windows Media和Apple公司的QuickTime。

    Real Media包括三類文件:Real Audio、Real Video及Real Flash。Real Audio用來傳輸近乎CD音質的音頻數據,RealVideo用來傳輸連續視頻數據,而Real Flash則是Real Networks公司與Macromedia公司新近推出的一種高壓縮比的動畫格式。作為最早的網際網路流式技術,在視音頻方面RealMedia已成為網路視音頻播放事實上的標準。

    微軟公司的Windows Media的核心是ASF(Advanced Stream Format)。ASF是一種數據格式,音頻、視頻、圖像以及控制命令腳本等多媒體信息通過這種格式以網路數據包的形式傳輸,實現流式多媒體內容發布。其中,在網路上傳輸的內容就稱為ASF Stream。

    QuickTime是蘋果公司推出的能在計算機上播放高品質視頻圖像的技術,是面向專業視頻編輯、Web 網站創建和CD-ROM 內容製作開發的多媒體技術平台,是數字媒體領域事實上的工業標準,它可以通過Internet提供實時的數字化信息流、工作流與文件回放功能。

Linux網路環境流媒體工作傳輸原理我們看一下圖1。
 

圖1


    一般來說,流式傳輸的過程包括三個步驟:

    (1)用戶選定一流媒體服務后,Web瀏覽器與Web伺服器之間使用HTTP/TCP交換控制信息,得到需要傳輸的實時數據。然後客戶機上的Web瀏覽器啟動A/V Helper程序,使用HTTP從Web伺服器檢索相關參數對Helper程序初始化。這些參數可能包括目錄信息、A/V數據的編碼類型或與A/V檢索相關的伺服器地址。

    (2)A/V Helper程序及A/V伺服器運行實時流協議(RTSP),以交換A/V傳輸所需的控制信息。RTSP提供了操縱播放、快進、快退、暫停及錄製等命令的方法。

    (3)A/V伺服器使用RTP/UDP協議將A/V數據傳輸給A/V客戶程序(一般可認為客戶程序等同於Helper程序),一旦A/V數據抵達客戶端,A/V客戶程序即可播放輸出。在流式傳輸中,使用RTP/UDP和RTSP/TCP兩種不同的通信協議與A/V伺服器建立聯繫,是為了能夠把伺服器的輸出重定向到一個不同於運行A/V Helper程序所在客戶機的目的地址。

    Helix Universal Server最新是11.0,和以前版本來講加入了冗餘伺服器支持以及對內容的CACHE支持,這讓用戶能夠最快可能連接到伺服器,並且保證在任何可能的情況下都可以自動修復,就多義性擴展方面,首先我們看到Helix真的成了一個超級伺服器,它兼容一切常見的媒體格式,甚至包括其競爭對手的WM格式。本文就以Helix Universal Server 11為例介紹如何在Linux下構建流媒體伺服器。
 
一、 軟體下載

    使用Helix Server之前,首先要在http://licensekey.realnetworks.com/rnforms/頁面中填寫自己使用的操作系統、用戶姓名、電子郵件地址、公司名稱、網址等相應信息,接著你就可以下載到Helix Server的30天試用版。此時需要提醒大家注意的是,這裡的電子郵件地址一定要填寫可以正常使用的,否則將無法收取到RealNetworks公司發送的試用授權文件。註冊結束后,RealNetworks公司會向你的電子郵件發送一個授權碼(License Key),讓你在伺服器使用Helix,授權碼的格式是Zip包請把它解壓后保存,在安裝軟體時要使用。接著就可以選擇下載Helix Server了。最新版本號是:1101。

二、系統要求

    首先配置一個基於Apache的LAMP伺服器,另外在軟體方面它要求內核(Kenerl)至少在2.4以上,桌面解析度至少為800×600 ,桌面顏色至少16位增強色。硬體方面中央處理器:奔騰III667 以上 ,內存 128 兆 ,硬碟空間 600兆、OSS/Linux兼容音效卡、16兆顯示內存 。

三、安裝軟體

    1、 以根許可權登陸Linux X-Windows,建立一個Helix的目錄將授權碼拷貝到目錄中。
    #mkdir Helix
    #cp RNKey-Helix_Server-90-1479442709717329.lic /Helix

    2、改變下載的文件名稱和組屬性和組使它成為可執行文件。
    #chmod +x helix-server-retail-11.01-rhel4-setup.bin

    3、安裝詳細步驟
    ./ helix-server-retail-11.01-rhel4-setup.bin

    (1)Linux操作系統首先讓你列出授權碼的存放目錄:參考筆者的寫法:/root/Helix/ RNKey-Helix_Server-90-1479442709717329.lic
    (2)  接著系統會顯示很長的一份授權協議,在協議末尾處按回車鍵接受該協議。
    (3) Linux操作系統接著詢問安裝目錄,填寫root/Helix 后按回車鍵繼續。
    (4) Linux操作系統要求你填寫Helix Universal Server 的系統管理員(Adminstrator)的用戶名和密碼。一定不要忘記。
    (5) Linux操作系統接著系統詢問你用那個埠來連接RTSP (Progressive Networks Audio)。 實時流協議(RTSP)是應用級協議,控制實時數據的發送。RTSP提供了一個可擴展框架,使實時數據,如音頻與視頻,的受控、點播成為可能。數據源包括現場數據與存儲在剪輯中數據。該協議目的在於控制多個數據發送連接,為選擇發送通道,如UDP、組播UDP與TCP,提供途徑,並為選擇基於RTP上發送機制提供方法。這裡我們使用預設埠554。見圖2。
         
          

圖2 選擇RTSP埠

 

   (6)  Linux操作系統接著詢問你用那個埠來連接HTTP埠。流式傳輸的實現需要合適的傳輸協議。由於TCP需要較多的開銷,故不太適合傳輸實時數據。在流式傳輸的實現方案中,一般採用HTTP/TCP來傳輸控制信息,而用RTP/UDP來傳輸實時聲音數據。一般HTTP監聽埠設置為8080。

    (7)  Linux操作系統接著詢問你用那個埠來連接MMS協議。Helix Universal Server從8.0 版本后開始支持MMS協議。MMS 協議用於訪問 Windows Media 發布點上的單播內容。MMS 是連接 Windows Media 單播服務的默認方法。若觀眾在 Windows Media Player 中鍵入一個 URL 以連接內容,而不是通過超級鏈接訪問內容,則他們必須使用 MMS 協議引用該流。當使用 MMS 協議連接到發布點時,使用協議翻轉以獲得最佳連接。「協議翻轉」始於試圖通過 MMSU 連接客戶端。MMST 是 MMS 協議結合 UDP 數據傳送。如果 MMSU 連接不成功,則伺服器試圖使用 MMST。MMST 是 MMS 協議結合 TCP 數據傳送。一般設置為1755。

    (8) 下面要設置Helix 伺服器的系統管理員控制埠。這個埠可以自己設定,不過一定注意不要和已經定義的埠重複。這裡筆者設定為17965。

    (9)   接著系統給出所有選擇的匯總列表,請仔細閱讀。確認無誤后按「F」鍵表示接受設定,開始安裝。這裡參考筆者的配置見圖3。若有問題按Esc鍵回去從新選擇。
 

圖3系統設定的列表

    (10)   系統安裝結束后自動退出回到根目錄下。

(11)   啟動伺服器。執行以下操作進入安裝目錄。
    #cd Helix;#cp RNKey-Helix_Server-90-1479442709717329.lic /Licence;
    #cd Bin
    rmserver /root/Helix rmserver.cfg
    Helix Universal Server就可以正常啟動。

    (12)查看運行情況,使用命令,結果見圖4.:
    #ps -ef|grep rmserver
 

圖4 Helix Universal Server伺服器的進程


    說明其中PID為3773是主進程,其他兩個3776和3779是子進程。

    (13)測試Helix伺服器

    推薦使用RealPlayer10GOLD  for Linux,最新版本是: RealPlayer10GOLD.rpm ,安裝后在播放器的地址欄輸入Helix伺服器的URL例如:rtsp://192.168.1.16/001.rm 。其中rtsp表示連接Helix伺服器使用RTSP應用級協議,192.168.1.16是Helix伺服器IP地址,當然也可以使用主機名稱。注意事項:使用RealPlayer10GOLD 全屏播放,只需選擇設置全屏顯示就可以了,不過效果要差一些。建議傳輸率小於200Kbps的RM視頻文件,就不要使用全屏模式播放。使用快捷鍵「Ctrl+B」可以快速在原始大小和全屏之間自如切換。如果配合Real Procedure使用,可將視頻文件或VCD轉換為RM格式文件保存。這樣不但可以減小文件的容量,而且還可以自由編排、剪輯、製作DV。

    (14)停止Helix伺服器工作

    由於Helix伺服器沒有提供伺服器停止命令,所以只能通過使用傳統的「Kill」來「殺掉伺服器的進程」,使用命令:
    #kill 『cat ./Logs/rmserver.pid』

    (15)系統啟動時自動載入Helix伺服器

    如果想在啟動Linux伺服器時自動載入Helix服務。方法如下:開始菜單-首選項-更多首選項-會話-啟動程序-增加-啟動命令,右邊的瀏覽指定確定。

    Helix Universal Server伺服器進階配置

    (1)在Linux瀏覽器內輸入: 伺服器IP地址:管理員埠/admin/index.html 即:http://192.168.0.1:17965/admin/index.html 這時系統會彈出一個對話框,你分別輸入管理員用戶名和密碼,然後按「OK」鍵。17965是Helix 伺服器的系統管理員控制埠。

    (2)經過幾分鐘的系統驗證最後進入Helix Universal Serve管理中心,見圖5。
 
               

圖5 Helix Universal Serve管理中心 點擊看大圖

 

(3)進入Helix伺服器設置選單,Helix伺服器需要設定的十二個選項項:Ports、 IPBinging 、MIME Type 、Connecting Control 、Mount Points 、URL Aliasing 、HTTP Delivery、Cache Directives、Share Lincesing、USER/GROUP Name、Media Sample。下面我們詳細介紹它們的配置。
 
           

圖6 Helix Universal Serve 伺服器設置中心 點擊看大圖


    1、Port(埠配置):在瀏覽的圖中,我們可以看到自上而下依次定義了各種不同類型的埠,包括RTSP, PNA, HTTP, MONITOR, ADMIN等埠,是因為在安裝時已經設定好了,有一個新選項是Enable HTTP Fail Over URL for ASXGen,這是一個和ASX文件播放相關的選項.在Helix Server有WM媒體文件內容的時候會用得到,可以設定為5087,.其他部分可以跳過。

    2、IP Binding(IP地址綁定):一台Helix Server伺服器上可能有不止一塊的網卡,或者在一塊網卡上可能有不只一個的IP地址,在某些情況下,就必須對Helix Server的IP地址進行綁定.這個頁面就是用來進行對伺服器進行IP地址綁定以及對現有綁定進行編輯和刪除的。

    3、MIME Type(MIME類型):定義用於告訴伺服器如何正確的識別文件,以保證其能完整有效的通過HTTP協議進行傳輸.對應於相應的擴展名,在這裡都能找到相關的定義格式。

    4、Connecting Control(連接控制)用來定義Helix Server有關連接的選項,從中我們在這裡可以定義伺服器的最大連接數,最大允許連接數(這個就是有授權所規定的),以及對用戶播放器的限制, 比如僅限制Realplayer播放器使用,或者僅限制PLUS版本播放器使用等等.當然在這裡還可以對服務的帶寬進行限制,以保證同一台伺服器上面的其他服務有足夠的網路資源。

    5、Redundant Server(冗餘伺服器): 冗餘伺服器的配置頁面包括:伺服器列表,目錄映射關係以及例外目錄設置。

   6、Mount Points(配置載入點)這裡就是設置流媒體文件載入點。Helix Server 安裝完成後,將自動生成三個載入點,即 Content、secure、fsforcache 。默認情況下,Content 指向安裝目錄下的「 content 」文件夾,該文件夾里的視頻文件可以直接被訪問。如果想將其他文件夾中的視頻文件用於伺服器播放,則需要設置新的載入點。單擊「 + 」按鈕添加新的載入點的描述(如 movie ),在「 Mount Point 」欄編輯載入點名稱(如 /movie/),其將顯示在鏈接地址中(如 rtsp://ip:554/movie/ 文件名)。接下去在「 Base Path 」輸入載入點對應的絕對路徑,也就是被點播的視頻文件在本地(或網路)中的實際路徑。比如 /home/share 。最後選擇路徑類型完成設置。見圖5。
 

圖7 設置載入點

    7、URL Aliasing(鏈接簡化):是一個別名指向,通過一個簡單的別名,讓用戶更加方便的記憶,以後進入Helix伺服器管理中心不用輸入那一長串的地址,只要用 rtsp://server:port/alising 就能代替了。

    8、HTTP Delivery(HTTP 分發) :Helix Server 同樣需要通過HTTP傳輸某些文件.下面的這些目錄就是定義為通過HTTP協議傳輸的.你可以增加或者對目錄進行編輯管理. 通過HTTP協議傳輸文件對於處於防火牆後面的用戶是非常必要的,見圖8。
         

圖8 Helix 伺服器的HTTP 分發 點擊看大圖

          
    9、 Cache Directives(緩存管理):Helix Server 默認狀態下是對所有的點播文件和直播文件進行緩存的處理,這就會出現一個問題,在採用Helix Proxy對多個Server進行管理的時候,緩存將會導致一些不必要的麻煩,在這裡,就是設置對某寫文件和目錄關閉緩存功能的選項.比如一些實時性的新聞節目以及我們前面所說的從Server到Proxy的交流之間,都需要關閉緩存功能。

 

    10Share Licesing(許可證共享):容許訪問Helix伺服器的用戶名稱、IP地址的埠號。

    11、User/Group Name(用戶管理) :添加Helix的用戶名和組。

    12、Media Sample(媒體演示): 在這個頁面,需要測試當前伺服器的服務情況,通過這裡的示例文件,你可以點播包括RM, FLASH, RP/RT, MPEG-1, MPEG-4, QT, ASF/WMV/WMA, 在內的多種文件,Helix Server 對於文件多樣性上的支持有了很大的進步,見圖9。
 

圖9 Helix Server 支持的流媒體文件格式. 點擊看大圖


    不同類型媒體的訪問方式

    配置伺服器埠時使用了幾個不同埠號,就是為了對應不同的流媒體格式:

    (1)rm或rmvb格式:

    rtsp://伺服器ip:554/載入點名/目錄名/文件名
    說明如果使用預設配置那麼其中:554可以省略。應用實例:rtsp://192.114.32.87/vod2/tall.rm
    當在客戶端的realplayer播放器中輸入此地址時,如看到"正在聯接」和"正在緩衝」並且時間不斷的跳動時,那麼就成功了。

    (2)wmv、asf等Media格式

    mms://伺服器ip:1755/載入點名/目錄名/文件名
    說明如果使用預設配置其中:1755也可以省略。應用實例:    mms://192.114.32.87/vod2/slzq/slzq.wmv
    注意事項:用Helix點播media媒體文件時,請不要使用中文的目錄和文件名,否則很可能出現莫名其妙的錯誤,所以還是避開為妙。

Helix流媒體伺服器的安全認證

    經過前面的設置,搭建的伺服器已經可以很穩定地運行了。如果我們不想讓任何人都能訪問伺服器,就需要進行用戶認證設置,通常可以通過訪問控制和用戶認證來實現。 「 Access Control 」: Helix Server 可以建立基於 IP 地址和客戶端鏈接的訪問限制,通過建立訪問規則,能允許或拒絕來自某一 IP 或某台機器對某個埠的訪問請求。一旦用戶訪問被拒絕,其客戶端上就會彈出出錯提示。執行「 Security/Access Control 」操作,然後就可以添加新的規則來對用戶的訪問許可權進行設定,比如能夠設定允許或者禁止來自某個或者某段 IP 的訪問請求,而且可以針對用戶訪問的埠進行特殊設置。 「用戶認證」:當用戶眾多,設置的 IP 規則太多,或者用戶有的是通過代理集中上網的, IP 限制往往不能滿足要求,這時就需要進行用戶帳號認證許可。這時基於資料庫的用戶驗證,可以擴充進行計量收費,更具有靈活性、方便性,能與第三方配合擴充功能等效果。經過設置,用戶認證設置基本就完成了,現在可以測試一下是否正常,如果提示出現輸入帳號和密碼,那就是成功。

    總結:到此為止Liunx平台下流媒體伺服器Helix Server安裝和基礎配置就介紹到此。幫助中小企建立一個低成本的流媒體伺服器。

    流媒體將成為新互聯網應用(Web 2.0)的主流之一,並將推動互聯網整體架構的革新。在網路上傳輸音頻、視頻等多媒體信息,目前主要有下載和流式傳輸兩種方案。A/V文件一般都較大,所以需要的存儲容量也較大;同時由於網路帶寬的限制,下載常常要花數分鐘甚至數小時,所以這種處理方法延遲也很大。近年來,為解決文件下載時間過長的問題,適應網路多媒體化的發展趨勢,一種新興技術應運而生,這就是遵守特定網路協議的流媒體技術。流媒體技術在國內應用最多的行業是教育,其次是廣電、政府和電信,而企業中應用得較少。目前,流媒體技術在企業里的主要應用包括職工培訓、信息發布、產品介紹、遠程監控、視頻會議和客戶服務等。

    流媒體小貼士:

    流媒體傳輸協議

    目前,支持流媒體傳輸的協議主要有:

    實時傳輸協議RTP(Real-time Transport Protocol)
    用於Internet上針對多媒體數據流的一種傳輸協議。RTP通常工作在點對點或點對多點的傳輸情況下,其目的是提供時間信息和實現流同步。RTP通常使用UDP傳送數據,但也可工作在ATM或TCP等協議之上。

    實時傳輸控制協議RTCP(Real-time Transport Control Protocol)
    RTCP和RTP一起提供流量控制和擁塞控制服務。通常RTP和RTCP配合使用,RTP依靠RTCP為傳送的數據包提供可靠的傳送機制、流量控制和擁塞控制,因而特別適合傳送網上的實時數據。

    實時流協議RTSP(Real-time Streaming Protocol)
    它是由RealNetworks和Netscape共同提出的,該協議定義了點對多點應用程序如何有效地通過IP網路傳送多媒體數據。

    資源預留協議RSVP(Resource Reservation Protocol)
    它是網路控制協議,運行在傳輸層。由於音視頻流對網路的時延比傳統數據更敏感,因此在網路中除帶寬要求外還需滿足其它的條件。在Internet上開發的資源預留協議可以為流媒體的傳輸預留一部分網路資源,從而保證服務質量(QoS)。


 






[火星人 via ] 手把手教你配Liunx流媒體伺服器已經有342次圍觀

http://www.coctec.com/docs/linux/show-post-67624.html