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

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

 臥槽,就是被新版的jwplayer坑了,用了博主的

startparam: "start",
primary: "flash" 

最終搞定了,特地註冊一個帳號頂一下!謝謝。
 

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

  起初是跟着網上的一些教程來的,可是說的很不全面,一些東西也過期不用了(好比jwplayer老版本)。我此次是用的最新版jwplayer6.8,在配置上有不少不一樣的地方,也很坑,值得注意一下!在配置方面,我精簡了不少,沒有了那麼多繁瑣的配置項須要修改。html

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

另,文章最後有下載地址,可下載搭建過程當中全部用到的包和其餘文件。nginx

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

 

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

-------------------------------------------------------------------------------------------------------------------------------------------------------vim

1.安裝zlibcentos

  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

 

2、安裝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
複製代碼

 

3、安裝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;
    }
}
複製代碼

4、使用與測試

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

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

相關文章
相關標籤/搜索