簡介
Red5是一個採用Java開發開源的Flash流媒體伺服器。它支援:把音頻(MP3)和視頻(FLV)轉換成播放流; 錄製用戶端播放流(只支援FLV);共用對象;現場直播流發布;遠程調用。Red5使用RSTP作為流媒體傳輸協議,在其內建的一些樣本中示範了線上錄製,flash流媒體播放,線上聊天,視頻會議等一些準系統。
軟體環境
既然是Java開發的,自然少不了要安裝JDK,這裡使用的是JDK6.x版本,Red5用的是0.9.1版本,Red5內嵌了Tomcat6.x伺服器。為了測試和使用Red5,需要另外搭建開發環境,開發部署相應的服務端應用,開發IDE為Eclipse3.3.x + MyEclipse6.x(貌似版本有點低了,沒辦法,剛好電腦上安裝程式,不想另外下載了,同時也夠用了,哈哈),Web伺服器為Tomcat6.x,最後用戶端播放器使用Flowplayer3.2.x。以下是Red5和Flowplayer3.2.x。
Red5:http://www.red5.org/downloads/
Flowplayer http://flowplayer.org/download/
安裝軟體與環境配置1.安裝JDK
這裡使用的是jdk-6u21-windows-i586.exe,雙擊按提示安裝即可
完畢後設定環境變數JAVA_HOME,PATH和CLASSPATH,如何設定環境變數請Google或百度
2.安裝Red5
因為是Windows環境,這裡下載的是setup-Red5-0.9.1.exe。直接雙擊安裝程式安裝,安裝過程中,需要填寫伺服器IP地址和連接埠,由於是本地測試,直接填寫127.0.0.1,連接埠隨意,不衝突即可,建議>1024,這裡使用5050。安裝完之後不要忘記設定RED5_HOME環境變數。
Red5安裝程式會預設把Red5註冊為系統服務自動啟動,開啟系統服務,查看是否服務是否已經存在:
我們看到服務已安裝,但還沒有啟動,需要我們手動啟動一下,選擇Red5服務,滑鼠右鍵,選擇啟動或者重新啟動即可。系統介面操作,不贅述。如無意外,應該可以正常啟動。如果啟動不了,請檢查前面的環境變數設定是否設定完畢並且正確,最後檢查Red5的開機記錄檔案,看看是否有相應的提示資訊,記錄檔在Red5主目錄下的log目錄下,記錄檔有多個,查看red5_service.log即可。啟動後,開啟瀏覽器,敲入安裝Red5時的IP地址和連接埠,正常情況下,看到如下資訊,說明Red5已經正確安裝了。
這個時候可以點擊Install進入下載其官方提供的demo進行研究學習,安裝後的demo檔案在Red5根目錄下的webapps下,如D:\Red5\webapps。安裝操作比較簡單,這裡不詳細介紹,不過要這裡要提醒一下,安裝完的demo後,需要重新啟動一下Red5伺服器,重啟操作參考上面的介紹。
3.安裝配置開發環境
主要安裝配置Eclipse3.3.x + MyEclipse6.x +Tomcat6.x。
Eclipse下載的是eclipse3.3.1.zip,直接解壓到D:\Program Files目錄下;Tomcat下載apache-tomcat-6.0.36-windows-x86.zip,直接解壓到D:\ProgramFiles目錄即可;然後安裝MyEclipse6.x,這裡用的是MyEclipse_6.0.1GA_E3.3.1_Installer.exe,雙擊按提示安裝完畢即可。
配置Tomcat伺服器和預設字元集為UTF-8
至此,軟體的安裝與環境配置完成,接下來就是開發和部署我們的流媒體伺服器應用以及測試應用了。
4.下載Flowplayer流媒體播放器
FlowPlayer 是一個用Flash開發的在Web上的視頻播放器,可以很容易將它整合在任何的網頁上。支援HTTP以及流媒體傳輸。這裡用到的除了播放器之外還包含了控制條組件以及rtmp外掛程式,另外其播放器擴充為jquery的外掛程式,使用時還需要用到jquery庫,版本1.7+。詳細清單如下:
下載後備用
開發與部署流媒體應用1.開發與部署服務端應用
開啟MyEclipse,建立一個WebProject,這裡起名為vedio.dafangxiaoche.com,然後同時為其添加部署配置
然後在vedio.dafangxiaoche.com工程下建立streams目錄,用於存放流媒體檔案,然後找些流媒體檔案如flv、mp4、mp3等檔案放進去,我這裡從Red5提供的demo項目拷貝了幾個flv,然後在本地拷貝了一個mp4。
接下來,在工程的WEB-INF目錄下,建立red5-web.properties、red5-web.xml、web.xml檔案(也可以從官方提供的demo中拷貝,本人即直接拷貝的。)。三個檔案的內容分別如下
red5-web.properties檔案:
webapp.contextPath=/vedio
webapp.virtualHosts=*,
localhost, localhost:8088,127.0.0.1:8088
red5-web.xml檔案:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEbeansPUBLIC"-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<beanid="placeholderConfig"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<propertyname="location"value="/WEB-INF/red5-web.properties"/>
</bean>
<beanid="web.context"class="org.red5.server.Context"
autowire="byType"/>
<beanid="web.scope"class="org.red5.server.WebScope"
init-method="register">
<propertyname="server"ref="red5.server"/>
<propertyname="parent"ref="global.scope"/>
<propertyname="context"ref="web.context"/>
<propertyname="handler"ref="web.handler"/>
<propertyname="contextPath"value="${webapp.contextPath}"/>
<propertyname="virtualHosts"value="${webapp.virtualHosts}"/>
</bean>
<beanid="web.handler"
class="org.red5.server.adapter.ApplicationAdapter"
singleton="true"/>
</beans>
web.xml檔案:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Vedio Server</display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>/vedio</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
細心的朋友可能會注意到,
red5-web.properties、web.xml檔案中的webapp.contextPath和webAppRootKey的內容都是/vedio,和前面部署配置的目錄是對應的。
至此,一個簡單的服務端完成了,部署到Red5伺服器下即可。由於前面已經配置了部署參數,現在可以有兩種方式部署,如,“redeploy”一下即完成。完成後不要忘記重啟一下Red5伺服器哦。
2.開發部署用戶端應用
與建立服務端應用一樣,在MyEclipse下,建立一個Web Project,起名為www.dafangxiaoche.com,這時你也可以配置一下部署參數到之前安裝的Tomcat伺服器,也可以手動設定,這裡使用手動設定Tomcat。進入Tomcat6.x的安裝根目錄,開啟conf目錄下的server.xml,配置一個host:
這裡配置了host,不要忘記在C:\Windows\System32\drivers\etc\hosts檔案中也相應添加。
接下來將Flowplayer播放器及其相應以及相依元件一併添加到工程中(檔案清單詳細見前面的介紹),然後就可以建立用戶端應用頁面了。這裡直接在工程根目錄下建立了一個index.html頁面,內容如下
<!doctypehtml>
<head>
<!—這裡的Jquery用的是1.9.x -->
<scriptsrc="/js/jquery/jquery.min.js"></script>
<!- 引入flowplayer播放器 -->
<scriptsrc="/flowplayer-3.2.x/flowplayer-3.2.11.min.js"></script>
<scripttype="text/javascript">
$(function(){
$f("a.rtmp","/flowplayer-3.2.x/flowplayer-3.2.15.swf",{
clip:
{
provider:
'rtmp'
,autoPlay:
false
},
plugins: {
rtmp:
{
url:
"/flowplayer-3.2.x/flowplayer.rtmp-3.2.11.swf",
//流媒體應用服務端串連地址,注意這裡的目錄是/vedio,與前面的配置是一致的
netConnectionUrl:
'rtmp://localhost/vedio'
},
controls: {
//控制條外掛程式
url:'/flowplayer-3.2.x/flowplayer.controls-3.2.14.swf'
}
}
});
});
</script>
</head>
<body>
<div
style="width:600px;height:400px;">
<a
class="rtmp"
href="festival.mp4"></a>
</div>
</body>
3.測試應用
好了,這個時候,可以啟動Tomcat6.x來測試我們的應用啦。在瀏覽器中敲入地址:
http://www.dafangxiaoche.com/
到此,一個簡單的基於Red5的流媒體服務應用就開發部署完畢,成功播放視頻。
總結
由於對播放器和Red5隻是一個初步的瞭解,相當於搞了一個helloworld。雖然成功播放視頻,可以邊下載邊播放,同時能夠自由拖拉進度條,但感覺播放的速度有點快,並且拖拉的時候感覺會向前跳、播放有藝術家和專輯資訊的mp3時(http://stackoverflow.com/questions/12560414/error-red5-server-to-streaming-files-who-include-cover-art-or-album-art-in-java)出現異常等問題,這些都有待後續去深入瞭解和解決。