Nginx下搭建flv視頻伺服器且可使用視訊拖動進度條播放

來源:互聯網
上載者:User

目前,由於Flash的流行,網路上絕大多數的微視頻網站都採用了Flv格式來播放視頻。

在互連網上播放視頻,有兩種方式,一種是檔案方式,即通過HTTP協議訪問視頻檔案,這種方式的缺點是不能從特定的幀開始播放;另外一種就是採用專門的流媒體伺服器,這種方式的缺點是要搭建複雜的流媒體伺服器。不過,現在有了一種集合了以上兩種方式優點的一種解決方案,即通過HTTP來實現偽流媒體。本文描述的就是這樣的一種解決方案。

首先配置nginx服務支援flv模組功能

⑴查看你的nginx是否已支援flv功能模組

[root@localhost ~]# /usr/local/nginx/sbin/nginx -V  //查看nginx服務支援

結果:

nginx version: nginx/0.8.24

built by gcc 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) 

configure arguments: --prefix=/usr/local/nginx --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module

分析:我的nginx版本0.8.24,http_flv_module已經開啟,支援flv服務

⑵安裝支援flv模組的nginx伺服器:

#tar zxvf nginx-0.8.24.tar.gz

#cd nginx-0.8.24

#./configure --prefix=/usr/local/nginx  --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module //開啟flv模組

#make && make install

#/usr/local/nginx/sbin/nginx       //啟Nginx

⑶nginx伺服器配置(nginx.conf檔案)

server

  {

listen       80;

server_name  localhost;   

charset utf-8;

 location / {

            root   html;

            index  index.php index.html index.htm;

        }

  location ~ \.flv {

            flv;

   limit_rate_after 10m;

   limit_conn one 1;   

   limit_rate 85k;

        }

  }

使用location 將 .flv的檔案指向flv模組即可。

以上使用了limit_rate 是為了限速,當 flv視頻下載超過10M,則限速到85K,只允許使用者開1個進程,也就是先快速緩衝可以播放,後面的慢慢下載。

⑷安裝支援flv拖放進度條的播放器

上面三步都是安裝支援nginx服務支援flv功能的,現在需要支援flv拖放進度條的播放器.

你需要有一個能夠播放Flv視頻的播放器,很顯然,它還需要能夠嵌入到網頁中。目前比較流行的,功能上也還比較完善的一個Flv播放器就是 JW FLV Media Player(也稱為 jwplayer)。它的網址是:

http://www.longtailvideo.com/players/jw-flv-player/

這個播放器可使用視訊加入廣告和視頻節目單功能,

下載包裡面有很全的執行個體和使用方式,

將包中的player.swf(如果是帶有Viral外掛程式的,就是player-viral.swf)放到你的網站內,這就是用來提供視頻播放的播放器。至於包中其它的檔案,都可以不要。

接下來,將播放器嵌入到你的視頻播放網頁中:

直接嵌入,使用Object/Embed代碼嵌入:

<embed  

        type="application/x-shockwave-flash"  

        id="player2"  

        name="player2"  

        src="player.swf"   

        width="328"   

        height="200"  

        allowscriptaccess="always"   

        allowfullscreen="true"  

        flashvars="file=http://192.168.40.135/test.flv&image=http://192.168.40.135/preview.jpg&autostart=false&type=http&streamer=start"   

    >  </embed>

file:"video.flv", // FLV視頻地址

type:"http",        // 資料類型,本文是基於http模式的,這個必須寫滴

image:"preview.jpg",// 開始播放之前的預覽圖

autostart:"false",  // 是否自動播放

streamer:"start",   // 參數為 “start”,這個參數用於傳遞給伺服器從特定的主要畫面格開始播放,nginx編譯了 flv 模組 所以是支援的。。

⑸添加主要畫面格

如果一個Flv視頻要能夠被拖到特定點播放,該Flv需要在其metadata中有主要畫面格的資訊。如果你的Flv視頻製作的時候沒有這些資訊,也是不能拖放播放的。可以使用yamdi來為你的視頻加上主要畫面格資訊 :

安裝:

1 [root@localhost ~]#wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download

2 [root@localhost ~]#tar zxvf yamdi-1.4.tar.gz

3 [root@localhost ~]#cd yamdi-1.4/

4 [root@localhost yamdi-1.4]#make && make install

使用方法:

yamdi -i source.flv -o dest.flv //原視頻 輸出視頻

聯繫我們

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