【集】使用Red5和FFMpeg搭建線上Flash流媒體分享平台

來源:互聯網
上載者:User
文章目錄
  • 使用Red5和FFMpeg搭建線上Flash流媒體分享平台
  • Red5 簡單安裝指南howto
使用Red5和FFMpeg搭建線上Flash流媒體分享平台

最近視頻的東西比較火,前些天我也稍微瞭解了一下使用開源軟體建線上Flash流媒體播放平台的解決方案,還是有一些收穫。

Red5是一款基於java的開源的Flash流媒體Server軟體,可以作為取代Macromedia提供的商業版本FMS。Red5使用RSTP作為流媒體傳輸協議,內建了一些樣本,這些樣本實現了線上錄製, flash流媒體播放,線上聊天,視頻會議等一些基本的功能。由於系統本身是開源的,在碰到問題的時候也比較容易解決,大不了直接改代碼,在成本方面也可以省下一筆不小的開銷,為未來的功能擴充也提供了充分的空間。

如果僅僅是實現線上錄製,線上播放,那麼Red5也就差不多夠了,但可能我們有時候還需要使用者上傳自己拍攝的視頻檔案,而要把這些視頻檔案轉成可播放的flv檔案就需要視頻編碼軟體了。FFMpeg提供了錄製,播放,視頻流處理的完整解決方案。它自身也帶了一個基於HTTP的流媒體廣播程式以及其它幾個實用的程式,但我們的重點還是它的視頻轉換程式,似乎GoogleVideo也是用的它的程式作為視頻轉換工具。

我用FFMpeg轉了幾個視頻,效果還可以,在聲音上碰到了一些問題,在不添加參數的情況下,有一部分視頻的聲音會有問題,有的視頻無論怎麼添加參數,都出不來聲音,報錯提示的是不支援所帶的聲音採樣格式,只支援幾種固定的格式,我看了一下代碼,確實是這樣子,但理論上應該是能夠解決的。 FFMpeg內建的libavcodec是一套很牛的編碼庫,為了保證品質和效能,裡面的很多codec都是從頭開發的。

這兩個加起來,實現一些簡單的線上視頻功能就差不多了。


RED5—從下載到HELLO WORLD!

D5Power Studio原創,轉載請註明出處~謝謝!

RED5的中文資料象牛毛一樣稀少。。從下載到完全調試成功,大概花費了1天多的時間。在這個把中間出現的問題羅列出來,希望給想研究RED5的朋友一點協助。

需要用到的軟體:
RED5 0.6 RC2 : http://osflash.org/red5
Eclipse 3.2 : http://www.eclipse.org
ant: http://ant.apache.org/
JDK: http://java.sun.com/javase/downloads/index.jsp
如果想直接通過SVN獲得最新的RED5,還需要安裝Eclipse的SVN外掛程式:http://subclipse.tigris.org/

呵呵,裝的東西夠多吧?簡單說一下各個軟體的用途。如果是直接從SVN下載獲得RED5,那麼這裡是不具備WIN下啟動並執行檔案的,所以就需要ant server來編譯運行。下載安裝包的朋友就不需要再用ANT來編譯了(不過做開發的話,建議還是拖下來比較好,又不大,10幾M而已)。Eclipse 是開發RED5伺服器端的必須工具,JDK是RED5啟動並執行必要環境。

這裡,我以SVN下載版為例來介紹配置。

首先在Eclipse中用SVN外掛程式(右上方有一個小加號的表徵圖->other->SVN xxx)從RED5官方網站獲得最新的代碼(我下了至少兩個小時,美國到中國好遠啊。。。)SVN地址在RED5的官方網站,我下載的時候為http://svn1.cvsdude.com/osflash/red5/java/server/trunk,串連上以後,在最上面的那一級點右鍵,選擇check out,然後選擇目標路徑什麼的就不再多說了。。

下載完成後,需要為Eclipse指定RED5的Build檔案,在左邊的列表頂端檔案上點右鍵,然後選擇External tools(工具列綠色的PLAY表徵圖,有紅色鎖的那個。。),開啟後選左側擇螞蟻表徵圖(ANT),右鍵->Creat,輸入檔案名稱 server_all,然後點第一行的瀏覽按鈕,在彈出的視窗中選擇build.xml,確定。然後選擇target標籤,在下面的選擇中把all勾選, 並選中該行,然後Apply.再操作一次,建立server_server,同樣選擇build.xml,然後在target中把all的勾選取消,選擇 server,同樣選中該行,點Apply.

這個時候運行server_all,我在這裡出現了錯誤(詳細見上一篇日誌),解決辦法為修改build.properti中的JAVA版本號碼與本機實際JDK版本號碼一致。另外也有人說報其他錯誤,要修改BUILD.XML,但我沒有遇到這個問題(參見http://hi.baidu.com/flash%5Fzb/blog/item/412384230961d444ac34ded5.html)。

當你看到BUILD SUCCESS的時候,恭喜你,編譯成功咯。

OK,接下來可以建立第一個應用程式了,為了省事,可以去RED5的webapps裡面,把test直接複製一份,改名為demo,然後把裡面除了 WEB-INF以外的其他檔案刪除,再進WEB-INF中,把src和class兩個檔案夾清空,在把除了這兩個檔案夾以外的其他檔案夾刪除(如果有的話),現在終於清淨了,在Eclipse中把工作區設定在RED5的webapps,然後建立一個項目,命名為demo,這個時候你會發現剛才弄好的檔案夾demo中的內容已經顯示在左邊了:)右鍵選擇src,BuildPath->Use as Source Folder,將其指定為代碼檔案夾,然後在項目名demo上右鍵選擇Properties,選擇Java Bulid Path,在選擇Source標籤,在下面的Browse中選擇Class目錄,將其指定為目標目錄。刪除左邊自動產生的BIN目錄,OK!

為了編譯RED5程式,我們要把RED5的包匯入到現在的項目中來。在項目名上點右鍵選擇Properties,然後在Java Build Path中選擇Libraries,點擊Add External JERS將RED5中的red5.jar包含入項目。然後,就可以按照RED5內建的指導檔案建立第一個RED5程式啦!


公司今天需要裝一台RED5的伺服器用來開發程式。發現RED5的0.6已經正式放出,以前我寫過一篇關於用SVN進行抽取,然後建立RED5項目的文章。而對於一般的開發人員來說,不需要去修改RED5本身的程式,只需要建立自己的應用程式就可以了。現在把建立過程記錄下來,希望對各位有所協助。本文適合第一次接觸RED5(WIN平台下),而不知道如何開始建立自己的應用程式的使用者。

流程:

1.下載最新版本的RED5http://osflash.org/red5

2.安裝RED5,注意在安裝RED5前要先安裝好JRE,安裝RED5的時候會要求指定JRE的目錄的。

3.到RED5的安裝目錄,找到doc/templates目錄,該目錄中存放了一個標準的RED5應用程式模版myapp,將其複製到RED5安 裝目錄中的webapps目錄下,並改名為你喜歡的檔案夾名,比如你要開發一個聊天的程式,那麼可以把myapp改為myChat,這個名字就是以後你要 已連線的服務名了。

4.在WEB-INF中建立一個檔案夾src用來存放程式的原始碼,建立一個classes檔案夾用來存放編譯後的檔案。

5.開啟Eclipse,將工作區指定為RED5安裝目錄下webapps,然後建立一個項目,項目名為myChat.這個時候你應該發現剛才 myChat中的檔案都被載入進來了,我們首先把src目錄指定為原始碼目錄,右鍵選擇src,在彈出的菜單中選擇Build Path->Use as SourceFolder,即將其指定為代碼檔案夾。接下來要指定項目的目標目錄,在項目名上右鍵選擇Properties,選擇Java Bulid Path,在選擇Source標籤,在下面的Browse中選擇Class目錄,將其指定為目標目錄。然後選擇Libraries,點擊Add External JARs,將RED5安裝目錄下的red5.jar包含進來。

6.這個時候,在Eclipse的左邊應該多了WEB-INF/src這樣一個東東,我們將要在這裡開始寫入我們的第一個項目代碼。右鍵選擇它,在 彈出的菜單中選擇New->Package,建立一個包,舉例,包名可以為org.d5.first,然後再在產生的org.d5.first這個 包上繼續右鍵選擇New->File,輸入檔案名稱Application.java。並在建好的檔案中輸入以下代碼:

package org.d5.first;

import org.red5.server.adapter.ApplicationAdapter;

public class Application extends ApplicationAdapter {

public String login(){
return "Welcome to Chat Servers";
}

}

7.進行配置。編輯WEB-INF下的red5-web.xml,找到bean id=”web.handler”一句,將class=”XXX”中的XXX位置修改為org.d5.first.Application,這樣本程式將 以剛才寫的Application來運行。刪除後面的bean id=”server.handler…整句,因為我們暫時用不到這個東東。編輯web.xml,找到webAppRootKey,將其下面的param -value標籤中的值修改為/myChat。編輯red5-web.properties,將第一句修改為webapp.contextPath= /myChat

8.編譯項目

9.重新啟動RED5伺服器

10.在FLASH中建立一個檔案,輸入以下代碼:

nc = new NetConnection();
nc.connect("rtmp://localhost/myChat");

nc.onResult = function(obj){
trace(obj);
}
nc.call("login",nc);

 

運行程式,顯示結果為Welcome to Chat Servers。第一個RED5應用程式誕生了,呵呵:)

 


Red5 簡單安裝指南howto

Red5是個開源的flash伺服器,相對fms 4500$的一個lic的價格,能省好多錢哦,今天就測試安裝一下Red5

1.配置java環境
去sun網站下載最新的jdk1.5.0_07,怎麼安裝不說了,直接解壓安裝到/usr/java/jdk1.5.0_07目錄

然後在/etc/profile添加以下幾句資訊
export PATH=$PATH:/usr/java/jdk1.5.0_07/bin:/usr/java/jdk1.5.0_07/jre/bin
export JAVA_HOME=/usr/java/jdk1.5.0_07
exportCLASSPATH="./:/usr/java/jdk1.5.0_07/lib:/usr/java/jdk1.5.0_07/jre/lib"
exportLD_LIBRARY_PATH=/usr/java/jdk1.5.0_07/jre/lib/i386:/usr/java/jdk1.5.0_07/jre/lib/i386/server

注意,預設的as4可能內建java,把內建的先刪除了!!

2.安裝apche-ant
去apache網站下載最近的版本,安裝方法跟jdk差不多,也是解壓到/usr/local/ant目錄

然後在/etc/profile添加以下幾句資訊
export ANT_HOME=/usr/local/ant
export PATH=$PATH:/usr/local/ant/bin

source /etc/profile 讓配置生效

3.安裝Red5

可以用svn下載最新的版本

svn co http://svn1.cvsdude.com/osflash/red5/java/server/tags/0_5/red5

cd red5

編譯:輸入ant命令,自動編譯

運行
./red5.sh &

4.簡單的配置,使用demo
配置連接埠:conf/red5.properties 修改此檔案就行

訪問http://ip:5080

可以運行內建的demo,記住如果你配了ip,內建的demo裡的地址localhost都要換成你的真真實位址

線上錄製的例子:
http://www.acmewebworks.com/red5/videos/SimpleStreamRecording.html

線上播放的例子:
http://www.acmewebworks.com/red5/videos/SimpleLiveBroadcast.html

分享例子,類似遠程示範:
http://www.acmewebworks.com/OSProjects/mtasc/videos/BallControl.html


開源的視頻會議系統openmeetings——安裝

OpenMeetings是一個開源的視頻會議軟體。它是基於OpenLaszlo’s的新流媒體格式和開源的Flash伺服器---Red5!

  本文以安裝openmeetings目前的最新版本openmeetings05Beta5為例,詳細說一下我的安裝過程。這一版本的官方安裝說明見http://code.google.com/p/openmeetings/wiki/InstallationOf05RC5Beta5,不過是英文的。官方的安裝給出了基於多種資料庫和不同作業系統的安裝方法。下面僅以基於mysql資料庫和windows 2003 server的安裝為例,來說明整個安裝過程。

  1. 到http://code.google.com/p/openmeetings/downloads/list上下載openmeetings的最新版本(目前為止最新是openmeetings05Beta5)。

  2. 安裝mysql資料庫,我安裝的是mysql-5.0.41-win32的版本,安裝後建立一個空的資料庫,名為xmlcrm。

  3. 安裝Open-Office-Service,我安裝的是openoffice.org2.2。

   a. 安裝完畢後,開啟“開始”-〉“程式”->“OpenOffice.org2.2”-〉OpenOffice.org Base(若是第一次運行,需要註冊並配置,填寫註冊資訊,不要進行資料庫配置)

   b. 軟體運行後,點“開始”-〉“運行”-〉cmd,進入“命令提示字元”;

   c. 進入openoffice的安裝目錄下的program目錄,如:C:\Program Files\OpenOffice.org2.2\program

   d. 輸入以下命令使openoffice在手動模式下運行在8100連接埠上:soffice.exe -headless -nologo-norestore-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager

   e. 輸入以下命令檢查服務是否正常運行:netstat -anptcp

   f. 點“斷行符號”後會出現一個列表,當發現列表中有如下一行,說明配置成功:TCP 127.0.0.1:8100 0.0.0.0:0 LISTENING

  4. 安裝“ImageMagick”,我安裝的是ImageMagick-6.3.6-1-Q16-windows-dll

  5. 安裝Ghostscript,我裝的是Ghostscript 8.51

  6. 安裝SWFTools,我裝的是swftools-0.8.1

  7. 安裝jre,我裝的是jre1.5.0

  8. 安裝Red5 Server,我裝的是red5-0.6.3,http://dl.fancycode.com/red5/0.6.3/win/setup -red5-0.6.3.exe

  9. 將openmeetings的壓縮包解壓,得到的xmlcrm檔案夾放到$RED5-HOME/webapps/目錄下。那麼,現在$RED5- HOME/webapps/xmlcrm/就是視頻會議系統的主目錄($RED5-HOME表示red5的安裝目錄,接下來我們用$ OPENMEETINGS-HOME代表視頻會議系統的主目錄)

  10. 到$OPENMEETINGS-HOME/install檔案夾下,找到檔案mysql_hibernate.cfg.xml,改名為hibernate.cfg.xml,開啟它,修改下列語句:

  <property name="connection.username">root</property>

  <propertyname="connection.password"></property>

  <propertyname="connection.url">jdbc:mysql://localhost:3306/xmlcrm</property>

  11. 重新啟動red5,開啟瀏覽器,會出現圖1的畫面,點擊“continue with STEP 1”,出現圖2的畫面;

  12. 將圖2的所有資訊填寫完整後,點擊“senden”,等待幾分鐘的時間(因為此時要執行安裝過程,主要是要向資料庫中建立好多表,你可以到$RED5- HOME/log目錄下找到red5.log檔案查看安裝記錄,以確定安裝過程是否正常),若最後出現圖3的畫面,則表示安裝成功,點擊“Enter the Application”進入系統。

 

圖1

 

圖2

 

圖3


 

關於red5——開源的Flash流媒體伺服器red5簡介

在介紹RED5之前,有必要先介紹一下Flash Media Server。

  Flash Media Server,簡稱FMS,以前也叫Flash Communication Server(FCS),是Flash大家庭裡的一員,被稱為是目前開發Web音視頻應用程式(比如,視訊交談室、視頻會議系統、播客系統、音視頻留言等 等)的最方便最快捷的解決方案。也在web應用程式開發上有著越來越廣泛的應用。FMS如此的優良功能當然並不是免費提供給廣大使用者的,4000美金每個 點的價格讓很多開發人員望而卻步。於是,開源的Red5成為人們的新寵。

  Red5是一個採用Java開發開源的Flash流媒體伺服器,功能上與fms類似。它支援:把音頻(MP3)和視頻(FLV)轉換成播放流; 錄製用戶端播放流(只支援FLV);共用對象;現場直播流發布;遠程調用。

  Red5使用RSTP作為流媒體傳輸協議,在其內建的一些樣本中示範了線上錄製,flash流媒體播放,線上聊天,視頻會議等一些準系統。

  Red5的官方網站是http://osflash.org/red5,它目前正處在研發階段,現在發布的測試版本為0.6.3,它的最終正式版為1.0,red5研發的進程已列在了官方網站上:http://osflash.org/red5/roadmap。

  下面介紹幾個比較好的學習Red5的網站:

  Openred5中文開源社區:

  http://www.openred5.cpm/bbs/index.php

  一個red5學習者的部落格:

  http://blog.tianya.cn/blogger/view_blog.asp?BlogName=weitiger

  第五動力:

  http://www.d5power.com/thread.php?fid=20

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.