1. 程式人生 > >[置頂][終極精簡版][圖解]Nginx搭建flv mp4流媒體服務器

[置頂][終極精簡版][圖解]Nginx搭建flv mp4流媒體服務器

layer 所有 make 精簡 節點 tran clas 測試 provider

花了我接近3周,歷經了重重問題,今日終於把流媒體服務器搞定,趕緊的寫個博文以免忘記。。。

  起初是跟著網上的一些教程來的,但是說的很不全面,一些東西也過時不用了(比如jwplayer老版本)。我這次是用的最新版jwplayer6.8,在配置上有很多不同的地方,也很坑,值得註意一下!在配置方面,我精簡了很多,沒有了那麽多繁瑣的配置項需要修改。

  註意:本人是在虛擬機centos6.2系統下搭建的流媒體服務器,在win7主機上做測試。

另,文章最後有下載地址,可下載搭建過程中所有用到的包和其他文件。

  廢話不說,從搭建服務器的準備工作開始:

一、準備工作,安裝依賴包,缺一不可!(推薦先用命令查看自己是否已經安裝一下軟件,確認沒有再安裝

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

1.安裝zlib

  tar xzvf zlib-1.2.3.tar.gz  #解壓
      cd zlib-1.2.3  #進入解壓目錄
      ./configure  #配置
      make && make install  #編譯並安裝

2.安裝gcc-c++

  yum -y install gcc-c++  #會自動安裝的,但需聯網

4.安裝pcre

  tar zxvf pcre-7.9.tar.gz
   cd pcre-7.9
  ./configure --prefix=/usr/local/pcre  #配置安裝路徑為/usr/local/pcre
   make && make install

5.安裝 openssl openssl-devel

  yum -y install openssl openssl-devel

二、安裝yamdi,給flv添加關鍵幀用的。(老是想到“亞麻碟”,哈哈。。。)

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

  #先cd到某個目錄下,用wget命令下載包

  wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download

  #安裝yadmi
  tar xzvf yamdi-1.4.tar.gz
  cd yamdi-1.4
  make && make install

三、安裝Nginx服務器,並配置

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

1.安裝

    groupadd www    #添加用戶組www
    useradd -g www www    #向組添加用戶www
    tar xzvf nginx-0.8.34.tar.gz    #解壓包
    cd nginx-0.8.34    
    #此步驟重要,--with-http_flv_module和--with-http_ssl_module不可變動,其他自定義吧。
    ./configure --with-http_ssl_module --with-pcre=/opt/nginx/pcre-7.9 --with-zlib=/opt/nginx/zlib-1.2.3 --user=www --group=www --prefix=/opt/nginx --with-http_flv_module
    make && make install    

2.配置

vim /opt/nginx/conf/nginx.conf    #編輯nginx配置文件
#找到server節點,參照一下代碼簡單變動一下,so easy!
server {
    listen       80;
    server_name  192.168.1.105;
    root    /opt/nginx/html/;
    limit_rate_after 5m;    #在flv視頻文件下載了5M以後開始限速
    limit_rate 100k;         #速度限制為100K
    index   index.html;
    charset utf-8;

    #將.flv文件指向flv模塊                
    location ~ \.flv {
        flv;
    }
                    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

四、使用與測試

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

1.為準備的flv文件添加關鍵幀

#參數 -i:input文件  -o:out文件
yamdi -i test1.flv -o test2.flv    #目錄下會生成test2.flv,此時該文件已經生成了關鍵幀

2.拷貝test2.flv到服務器目錄下,我的服務器目錄是“/opt/nginx/html/”。

3.拷貝jwplayer.flash.swf到服務器目錄下。

4.編輯網頁,TestStreaming項目,(我是把網頁部署到到win7主機apache服務器下的,用來模擬遠程訪問流媒體服務器,想在本機弄的,自己倒騰)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title></title>
    <script type="text/javascript" src="jwplayer.js"></script>
</head>
<body>
    <div id="myElement">Loading the player...</div>

    <script type="text/javascript">
        jwplayer("myElement").setup({
       //192.168.164.132是我虛擬機的ip,加載播放器文件
            flashplayer: "http://192.168.164.132/player6.swf",
        //加載服務器下,/video/test2.flv帶關鍵幀的flv文件
            file: "http://192.168.164.132/video/test2.flv",
            image: "test.jpg",
            width: 800,
            height: 500,
            screencolor: "#BBBBBB",
            autostart: true,
            provider: "http",
            streamer: "start",
            stretching: "fill",
        //上面三個參數都不重要,下面兩個參數才是最重要的!新版本奇葩之處!
            startparam: "start",
            primary: "flash"
        });
    </script>
</body>
</html>

5.測試,win7下打開瀏覽器,輸入:localhost/TestStreaming/index.html

yeah!視頻成功播放,並且可隨意拖動seek!

若不能成功,請仔細檢查jwplayer的配置參數!

附上下載鏈接:http://download.csdn.NET/detail/cyh970473/7443127

from:http://blog.csdn.net/cyh970473/article/details/50593227

[置頂][終極精簡版][圖解]Nginx搭建flv mp4流媒體服務器