1. 程式人生 > >音訊和視訊流SmartFoxServer 2X

音訊和視訊流SmartFoxServer 2X

RedBox是SmartFoxServer 2X的免費附件,可將音訊和視訊流功能新增到伺服器,從而可以將這些功能整合到任何現有的ActionScript3應用程式中。

RedBox由三個主要元件組成:

用於音訊/視訊流和錄音的開源Red5媒體伺服器;
一套專門的客戶端ActionScript3 API,提供高階功能來啟動一對一視訊聊天,建立實況事件(一個廣播者,多個訂閱者),檢索媒體檔案,執行遠端錄音等;
一個伺服器端SFS2X擴充套件,它負責處理與客戶端API互動期間生成的請求和事件,並將SmartFoxServer功能與Red5伺服器整合。

此外,還提供了四個完整的示例供參考:它們演示了RedBox提供的所有功能,以建立視訊聊天,視訊會議等。

重要的提示
SmartFoxServer團隊為除Red5伺服器之外的所有RedBox元件提供幫助。無論如何,即使我們不提供具體的Red5技術支援,您可以在上面連結的官方Red5網站上找到任何Red5相關問題。
»元件

RedBox分發為一個包含以下詳細描述的元件的單個包。它可以從主要的SmartFoxServer 2X下載頁面下載。
軟體包中的客戶端和伺服器資料夾包含您需要設定RedBox的所有內容,並使用提供的示例進行測試;它們還包含您需要開始開發自己的應用程式的庫。
Sources資料夾包含所有RedBox元件(Red5伺服器除外)和提供的示例的原始碼,以防您需要新增自己的功能或自定義現有功能。有關更多資訊,請參閱下面的原始碼設定段落。
»客戶端

API_AS3資料夾:包含要在Flash / Flash Builder專案中使用的RedBox API的SFS2X_RedBox.swc庫(請參閱Red5安裝並建立自己的RedBox應用程式段落)。
Examples_AS3資料夾:包含編譯的示例,以便在安裝後立即開始使用RedBox播放(請參閱執行下面的示例段落)。

»伺服器

Red5資料夾:包含要安裝在您的伺服器上的Red5 Media Server 1.0 RC(請參閱下面的Red5安裝段落)。
redBox資料夾:包含用於SmartFoxServer 2X的RedBox Extension的jar檔案和配置幾個RedBox設定所需的redbox.properties檔案(請參閱下面建立您自己的RedBox應用程式段落)。
zones資料夾:包含所提供示例的SmartFoxServer 2X Zones定義(請參閱執行下面的示例段落)。

»Red5安裝

RedBox需要啟動並執行Red5 Media Server例項。為了安裝RedBox軟體包中提供的Red5版本,只需將/ Server / Red5資料夾從解壓縮的軟體包複製到SmartFoxServer 2X安裝資料夾即可。確保Red5資料夾位於SFS2X資料夾的同一級別。

為了啟動Red5,雙擊red5.bat(Windows)或啟動red5.sh指令碼(OSX / Linux / Unix)。在OSX,Linux或Unix系統的情況下,您可能會遇到許可權問題:只需啟用Red5.sh檔案上的執行。

注意
我們已經從RedBox包中提供的Red5版本中刪除了所有不必要的檔案和資料夾,使其不那麼混亂,可以進行生產。
另外,我們的Red5發行版附帶了一個預裝的伺服器端應用程式SFS_RedBox,可以在Red5 / webapps下找到。該應用程式非常簡單,除了為Red5的流媒體功能提供RedBox API的接入點之外什麼都不做。
此外,它還包含流資料夾,Red5用於儲存錄製的剪輯和臨時實時流。預設情況下,該資料夾附帶了視訊剪輯播放器示例使用的四個視訊片段:在生產環境中安裝Red5時可以刪除它們。
»升級Red5

RedBox適用於Red5 1.0 RC和以前的版本。它很可能會繼續使用新版本,但我們不能保證。
如果要升級Red5,請確保將Red5 / webapps下的SFS_RedBox資料夾複製到新的Red5資料夾的相同位置。
»移動Red5

您可以按照以下步驟將Red5移動到其他資料夾甚至專用伺服器:

將Red5資料夾複製到新位置或專用伺服器;
在單獨的伺服器的情況下,共享本地網路中的Red5資料夾,以便可以由執行SmartFoxServer的機器訪問;
編輯與RedBox副檔名並排的redbox.properties檔案(請參閱下面建立您自己的RedBox應用程式段落),並將red5Path值指向Red5資料夾;
啟動Red5和SmartFoxServer 2X。

»使用不同的媒體伺服器
在理論上,可以使用Adobe Flash Media Server或Wowza Media Server而不是Red5,因為它們都使用相同的協議(RTMP)。然而,RedBox使用了Red5伺服器端應用程式(請參閱上面的框),該應用程式應為所選擇的替代RTMP伺服器翻譯。作為一個非常簡單的應用程式,它不應該太難以翻譯(原始碼在RedBox包中可用)。

注意
據報道,Wowza 3.6.3與SmartFoxServer 2X配合使用。唯一需要新增的設定是在[WowzaDir] / applications / SFS_RedBox下新增空應用程式目錄。
»執行示例

RedBox軟體包包含四個示例,顯示其API提供的功能。這些例子在本文件中有詳細描述。為了執行它們,首先你必須設定伺服器端部分:

按照上一段所述安裝Red5;
通過將Redbox軟體包中的/ Server / redBox資料夾複製到SFS2X / extensions資料夾來安裝SFS2X的RedBox Extension;
通過將/ Server / zones資料夾中包含的檔案從RedBox包複製到SFS2X / zones資料夾,配置示例使用的SFS2X區域;只有三個區域被配置,因為其中一個示例使用預設情況下在SFS2X中提供的BasicExamples區域(如果您刪除它,只需配置該示例以使用現有的區域)。

伺服器準備就緒後,啟動Red5和SmartFoxServer 2X,並確保SmartFoxServer在啟動過程中不會記錄錯誤。現在轉到Redbox包中的/ Client / Examples_AS3資料夾,開啟一個子資料夾,然後雙擊html檔案在瀏覽器中啟動該示例。

如果您的SFS2X設定與預設設定不同,則可能需要通過編輯每個示例提供的sfs-config.xml檔案來更改客戶端配置。
»建立自己的RedBox應用程式

將現場音訊/視訊流新增到現有的或全新的應用程式非常簡單。客戶端所需要做的就是:

將SFS2X_RedBox.swc庫檔案從Redbox包中的/ Client / API_AS3資料夾複製到計算機上的任何位置;
在Flash / Flash Builder專案中引用SWC庫(包含RedBox API類)(要求與SmartFoxServer API相同 - 請參閱本文件);
根據您的應用程式將要匯入您需要的正確的RedBox類。

Rebdox API已分為以下主要類別:您應該檢視左側欄中的API文件部分以獲取詳細資訊。

AVChatManager
該課程負責通過連線到Red5伺服器的音訊/視訊聊天實現。 AVChatManager處理聊天工作流(傳送請求,接受或拒絕它,建立或停止連線等)以及從/從Red5伺服器的直播流。

AVClipManager
該課程負責通過連線到Red5伺服器的音訊/視訊剪輯錄制和播放。 AVClipManager處理可用的a / v剪輯的列表,它們的自定義附加屬性以及到/從Red5伺服器的流。

AVCastManager
該課程負責管理由使用者加入的SmartFoxServer Room內的音訊/視訊直播,可以建立直播Web事件或/ v會議。 AVCastManager處理向/從Red5伺服器播放的實時演播。與其他RedBox類不同,AVCastManager可以在Room上工作,以利用SFS客房的訪問控制和稽核功能。

在伺服器端,RedBox API需要將RedBox Extension分配給應用程式的Zone。如果您的應用程式在Zone級別不需要自定義的伺服器端編碼(換句話說,它不具有自己的副檔名),則可以通過執行以下操作直接使用RedBox軟體包中提供的副檔名:

1.將/ Server / redBox資料夾從RedBox包複製到SFS2X / extensions資料夾;
2.在管理工具中配置您的區域擴充套件(請參閱本文件):在“主”類下拉列表中的“名稱”下拉列表中選擇redBox,並選擇RedBoxExtension(當然是型別為Java)。

如果您需要編寫自己的伺服器端擴充套件,因為SFS2X不允許將多個擴充套件分配給同一個區域,您可以按照預設的副檔名建立過程(在此描述),而不是使您的主類擴充套件SFSExtension,使其擴充套件RedBoxExtension類。為了能夠做到這一點,您需要參考伺服器端專案中RedBox包的/ Server / redBox資料夾中提供的RedBoxExtension.jar檔案。
在部署時,您將需要部署RedBoxExtension.jar檔案和redbox.properties檔案(Redbox包的/ Server / redBox資料夾中可用)和您自己的副檔名的jar檔案。
在這兩種情況下(直接使用RedBox Extension或建立自己的子類),redbox.properties檔案用於配置一些RedBox設定:

日誌:如果設定為1,則啟用RedBox伺服器端日誌記錄(以“[RedBox] ...”開頭的訊息)
enableAVClipManager:如果設定為1,則啟用來自客戶端AVClipManager類的請求的伺服器端處理程式(請參見上文)
enableAVChatManager:如果設定為1,則使客戶端AVChatManager類的請求的伺服器端處理程式(見上文)
red5Path:Red5資料夾位置的絕對路徑或相對路徑;如果相對,它必須是相對於SmartFoxServer的SFS2X資料夾
lastModifiedFormat:指定a / v剪輯資料中的“上次修改”日期格式(有關格式程式碼,請參閱java.text.SimpleDateFormat類建構函式文件)

»原始碼設定

RedBox包包含原始碼,允許開發人員在需要時進一步擴充套件其功能。軟體包的/ Sources資料夾中提供了所有原始檔。

API_AS3資料夾:它包含RedBox API的ActionScript3類。您可以直接在應用程式專案中引用它們,也可以在Flex / Flash Builder中建立一個新的Flex庫專案,並將該資料夾的內容新增到專案的src資料夾中以建立自己的SWC檔案。您還需要參考SmartFoxServer客戶端API才能編譯專案。
Examples_AS3資料夾:它包含提供的示例的MXML和ActionScript3原始檔。對於每個專案,在Flex / Flash Builder中建立一個單獨的專案,並將該專案的src和libs資料夾替換為該資料夾中的資料夾。
Red5WebApp資料夾:它包含表示Red5伺服器端應用程式的Java類(請參閱Red5安裝段落中的框)。如果新版本的Red5需要更改應用程式的相容性,這可能是有用的。
要設定開發環境,請在您選擇的Jave IDE中建立一個新專案,並將該資料夾的內容新增到專案的src資料夾中。您還需要參考Red5主資料夾中包含的red5.jar庫。
要部署此應用程式,請將已編譯的類複製到Red5 / webapps / SFS_RedBox / WEB-INF / classes資料夾。有關WEB-INF資料夾中包含的其他檔案的更多資訊,請參閱Red5文件。
RedBoxExtension資料夾:它包含RedBox擴充套件的Java類。請閱讀可用的文件(從本頁開始),瞭解有關擴充套件開發和部署的更多資訊。

“ 經常問的問題

»使用SmartFoxServer + RedBox有什麼優勢,而不是直接使用Red5或Flash Media Server?

RedBox提供與SmartFoxServer 2X API的緊密整合,為開發具有嵌入式a / v功能的多人應用程式提供了非常強大的環境。
只有使用Red5或FMS,才能獲得高階的房間管理,好友列表,聊天過濾器,安全性等。兩臺伺服器之間的協同作用可以節省數月的發展!

»RedBox使用第二個音訊/視訊流連線嗎?

是。用於與Red5伺服器通訊的RTMP協議適用於埠1935,其資料流量與SmartFoxServer 2X協議分離。
這種方法有很多優點,主要的是,如果您有非常高的a / v流量,那麼您甚至可以為Red5伺服器投入一臺伺服器。

»當SmartFoxServer啟動時,Red5是否啟動?

否。如果您的應用程式需要RedBox流媒體服務,您必須單獨啟動它。

哪個版本的Red5與RedBox一起分發?

目前,RedBox包含Red5 1.0 RC的“輕量級”版本,已經清除了預設示例和其他一些檔案。
如果您需要原始的附加示例,您可以訪問Red5網站並下載完整版本。

»RedBox載入項與Flash Media Server相容嗎?

是的,RedBox是基於實現Adobe RTMP協議的Adobe Flash Media Server的開源替代品Red5 Media Server。

»可以使用Flash Media Server或Wowza Media Server代替Red5嗎?

在理論上是的。請閱讀使用不同的媒體伺服器段落。

»RedBox保留記錄的媒體檔案在哪裡?

這些檔案位於Red5安裝目錄中的webapps / SFS_RedBox / streams資料夾中。

»我可以在單獨的專用伺服器上執行RedBox載入項嗎?

是。請在這裡閱讀Moving Red5段落。

RedBox專案是否開源?

是的。原始碼作為BSD許可證下的可下載軟體包分發。
您可以在這裡瞭解有關許可證的更多資訊

»您是否提供特定的Red5支援?

我們為RedBox API提供幫助,但我們不提供特定的Red5技術幫助。
您可以在官方的任何Red5相關問題找到幫助