crtmpserver流媒體伺服器的介紹與搭建

來源:互聯網
上載者:User

標籤:

前言

      Adobe的FMS(Flash Media Server)是很好用。但對應著分級授權的是money和有限功能開放。商業的東西既然用不起,也阻礙了我們的技術進步,那就只能求助於開源社區了。而crtmpserver就是FMS的替代者之一


1. crtmpserver簡介

    crtmpserver的功能總來說:

  • 支援推送給它的rtmp流的接收與播放器請求的分發;

  • rtmp流媒體伺服器樹狀網路叢集的構建;

  • 支援iPhone,Android。

    下面是官網首頁的功能與應用介紹(http://www.rtmpd.com/)

    crtmpserver it is a high performance streaming server able to stream (live or recorded) in the following technologies:

  • To and from Flash (RTMP,RTMPE, RTMPS, RTMPT, RTMPTE)

  • To and from embedded devices: iPhone, Android

  • From surveillance cameras

  • IP-TV using MPEG-TS and RTSP/RTCP/RTP protocols

    Also, crtmpserver can be used as a high performance rendes-vous server. For example, it enables you to do:

  • Audio/Video conferencing

  • Online gaming

  • Online collaboration

  • Simple/complex chat applications

2. crtmpserver流媒體伺服器的搭建(linux平台)

    

    它的編譯與build環境要求先安裝一些linux工具

2.1 cmake的安裝

    下載最新的cmake(http://www.cmake.org/)。

  1. #tar -zxvf cmake-2.8.7.tar.gz

  2. #cd cmake-2.8.7

  3. #./bootstrap

  4. #gmake

  5. #make install

2.2 openssl的安裝

    下載openssl-0.9.8版(crtmpserver暫只支援這個版本,我用的是openssl-0.9.8t。http://www.openssl.org/)

  1. #tar -zxvf openssl-0.9.8t.tar.gz

  2. #cd openssl-0.9.8t

  3. #./Configure

  4. #make .

  5. #make install

2.3 crtmpserver的編譯與安裝

  1. #svn co --username anonymous--password "" https://svn.rtmpd.com/crtmpserver/branches/1.0 crtmpserver

  2. #cd crtmpserver

  3. #sh ./cleanup.sh

  4. #cd builders/cmake

  5. #cmake .

  6. #make

  7. #./crtmpserver/crtmpserver./crtmpserver/crtmpserver.lua

   NOTE:

   A. 如果make成功,最後一行命令是以“./crtmpserver/crtmpserver.lua”為配置指令碼啟動“crtmpserver"服務。

   B. 最後一行命令的目錄是在"builders/cmake"下。


2.4 測試流的接收與分發

    最後一行命令執行後,可以看到預設指令碼配置下啟動的服務和對應的連接埠。如“RTMP”協議對應的是“1935”連接埠。

    如下所示:

--- --------------- ----- ------------------------- -------------------------

|tcp|       0.0.0.0 |1935|       inboundRtmp   |            appselector|

--- --------------- ----- ------------------------- -------------------------

推送:    

     可以使用Adobe 的FMLE(Flash Media Live Encoder)給這個伺服器推送rtmp流。成功後會有相應的log資訊提示。

     也可以使用ffmpeg給 這個伺服器推送rtmp流。成功後會有相應的log資訊提示。但是請注意,ffmpeg推送rtmp流給它一定要使用"librtmp"才能成功。使用 ffmpeg內建的rtmp推送會導致失敗。原因應該是ffmpeg內建的rtmp程式不完整,解析不了第二次握手時服務發送來的包資訊。

觀看:

     推送成功後,使用者端就可以用flash播放器或能播放rtmp流的播放器(如http://flv-player.us/index_mdv.php)看你推送的節目啦。

    也可以使用像rtmpdump的軟體將rtmp流錄成檔案。

  

3. 簡單的配置修改

    有時伺服器會對某些連接埠做限制,這時就需要自己指定連接埠,如"80"連接埠。這個需求可以通過修改它的配置指令碼“crtmpserver/crtmpserver.lua”來實現。

     如要添加“80”連接埠的"rtmp"服務,可以給“crtmpserver/crtmpserver.lua”添加如下代碼。(包含“port=80"的第一層大括弧的代碼是要添加的)

  1. default=true,

  2. acceptors =

  3. {

  4.   {

  5.     ip="0.0.0.0",

  6.     port=80,

  7.     protocol="inboundRtmp"

  8.    },

  9.    {

  10.      ip="0.0.0.0",

  11.      port=1935,

  12.      protocol="inboundRtmp"

  13.    },

  14.    ...

  15.   }

  16. }

  重啟服務就可以看到連接埠生效,就可以從“80“接收rtmp流啦。


crtmpserver流媒體伺服器的介紹與搭建

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.