Linux&Windows搭建基於nginx的視訊點播伺服器
阿新 • • 發佈:2019-01-09
1. nginx安裝
Linux
安裝必要的依賴包:
- $ sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
解壓下載的nginx包,再解壓nginx_rtmp_module到同一資料夾,進入解壓後的nginx資料夾,安裝:
$./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
$make
$sudo make install
- 如果沒有報錯,則已經安裝成功,
- 啟動nginx: $ sudo /usr/local/nginx/sbin/nginx
- 停止nginx: $ sudo /usr/local/nginx/sbin/nginx -s stop
- 過載nginx: $ sudo /usr/local/nginx/sbin/nginx -s reload
檢視載入的模組: $ sudo /usr/local/nginx/sbin/nginx -V
啟動後開啟瀏覽器,輸入localhost,如果出現Welcome to nginx的頁面則已經成功安裝。
————————————————————–
Windows
- 在windows下由於官方已經編譯好的nginx是不帶nginx_rtmp_module的,故直接使用已經編譯好的,
- 開啟命令列,進入資料夾,啟動nginx.exe。
- 同樣開啟瀏覽器,輸入localhost,出現歡迎介面則成功。關閉nginx.exe命令nginx.exe -s stop.
2. 配置檔案nginx.conf
- nginx.conf在主目錄下的conf檔案下,配置如下:
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application vod {
play video; #這是一個目錄的名稱,如果是linux,則寫具體位置如/opt/video
}
}
}
http {
server {
listen 80;
location / {
root html;
}
location /test.flv {
root video;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root html;
}
}
}
重新載入nginx(nginx -s reload),放入想播放的檔案在video資料夾(windows是nginx資料夾下新建video資料夾,linux下寫具體路徑即可),必須是mp4或flv檔案,則此時可以測試了。
—————————————————————————-
3. 測試
使用VLC播放器測試,開啟VLC播放器,選擇媒體–>開啟網路串流,在位址列裡輸入:
rtmp://localhost/vod/test.flv #這裡的vod是上面nginx.conf中rtmp中定義的名稱,後面跟的是視訊檔案的名稱
http://localhost/test.flv #http協議
- 也可以使用手機版本的VLC,或者OPlayer,如果播放視訊,則成功。
4. flv檔案加入metadata
- 一般點播網站使用flv檔案格式的視訊,因為flv體積較小,故建議使用flv播放,在linux下可以使用ffmpeg來進行轉換,在windows下可以使用格式工廠,其實也使用ffmpeg,則之後下載yamdi,用來載入metadata(備份儲存地址:http://download.csdn.net/detail/akeron/9752208),這樣在播放時便可以實現拖動,好像只限於http(目前不明白原因),yamdi的命令如下:
yamdi.exe -i input.flv -o out.flv #這樣便已經加入了metadata
5. 使用JWPlayer播放視訊
<div id='my-video' > </div>
<script src="jwplayer.js"></script>
<script type='text/javascript'>
jwplayer('my-video').setup({ #其它的引數上網查詢
file:'jay.flv',#注意播放需要使用flash player,電腦版本chrome與
fallback:'false',#edge都可不用flash,但firefox需要,安卓4.1上
width: 512,#已經不使用flash了,iOS也不用,故使用手機瀏覽器播放不
height: 383,#了。
screencolor: '#ff0'
});
</script>