花了我接近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