使用環境是centos 7.0+nginx;能夠實現簡單的流媒體服務。html
先下載nginx-rtmp-module拓展:linux
nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-modulenginx
git clone https://github.com/arut/nginx-rtmp-module.git
先將nginx-rtmp-module下載到linux服務器中,若是沒有git需先安裝git,參考linux安裝gitgit
接下來安裝nginxgithub
nginx的官方網站爲:http://nginx.org/en/download.htmlcentos
wget http://nginx.org/download/nginx-1.8.1.tar.gz tar -zxvf nginx-1.8.1.tar.gz cd nginx-1.8.1 ./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module make && make install
默認安裝目錄爲:/root, add-module爲下載的nginx-rtmp-module文件路徑。若是沒有wget要先安裝wget組件跨域
安裝時候可能會報錯沒有安裝openssl,須要先安裝openssl:瀏覽器
yum -y install openssl openssl-devel
安裝好nginx後修改nginx配置文件bash
vi /usr/local/nginx/conf/nginx.conf
在配置文件中加入RTMP部分服務器
rtmp { server { listen 1935; #監聽的端口 chunk_size 4000; application hls { #rtmp推流請求路徑 live on; hls on; hls_path /usr/share/nginx/html/hls; hls_fragment 5s; } } }
其中hls_path文件夾必需要有寫入的權限
再修改http中的server模塊:
server { listen 81; #拉流請求的端口號 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; #跟目錄文件夾 index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
root能夠跟據本身的需求來改的。
而後啓動nginx:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
關於更多rtmp的參數能夠參考官方文檔
配置好服務器後就能夠開始推流了,這裏暫時用開源的obs軟件進行簡單推流
在設置->串流 中填寫信息:URL爲 rtmp://xxx:1935/hls,xxx爲你的服務器的IP地址,hls是在流媒體服務器中用來存放流媒體的文件夾。
祕鑰能夠隨便填寫一個,用來播放的時候識別播放哪一個流媒體的,例如填寫test等
填寫完畢後,點擊開始串流,就說明咱們的流媒體服務器搭建成功,這裏推流會把流媒體文件推送到服務器文件夾內,生成一個test.m3u8流媒體文件。
推流成功後開始拉流(觀看直播)
Html5自帶的video標籤就能夠觀看
<video> <source src="http://xxx:81/hls/test.m3u8"/> </video>
在IOS下的safar瀏覽器直接能夠觀看,安卓和winows系統下可能須要藉助播放器觀看。
不過直播的延遲比較高,這是由於服務器將視頻流切斷成一個個小的以.ts結尾的文件,咱們訪問的是.m3u8文件,這個文件內容是將一個個ts文件串聯起來的,這就達到了一個播放的效果,因此看起來會有很大的延遲。
若是下降延遲也不是沒有方法,能夠設置切片生成的大小以及訪問的速度,可是這樣大大增長了服務器的壓力。
固然,咱們也能夠用rtmp拉流工具(VLC等)來看該直播,拉流地址與推流地址一致,這樣能減小延遲。
要考慮具體狀況要保持延遲和服務器壓力間的均衡。
最後要注意的是,拉流時,若是在其餘服務器使用播放器請求流媒體服務器的文件,會涉及到跨域。
這時候要在流媒體服務器root目錄下加入 crossdomain.xml 文件,文件內容爲
<?xml version="1.0" encoding="utf-8"?> <cross-domain-policy> <allow-access-from domain="*"/> 這裏可設置容許請求的域名 </cross-domain-policy>
以上就能夠完成一個簡單的流媒體服務,進行直播。