Nginx介紹
Nginx ("engine x") 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0發布于2004年10月4日。其將源代碼以類BSD許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4發布。 Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
簡言之,Nginx本身是一個非常出色的HTTP服務器,具有占用內存少,高并發的特點。
安裝
brew install nginx-full --with-rtmp-module
驗證
終端輸入 nginx 啟動服務器
在瀏覽器中輸入:http://localhost:8080,如下圖,則開啟成功。
配置文件路徑(/usr/local/etc/nginx/nginx.conf)
配置Nginx
//支持hls
location /hls {
#Serve HLS config
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /usr/local/var/www;
add_header Cache-Control no-cache;
}
//支持rtmp
rtmp {
server {
listen 1935;
application rtmplive {
live on;
max_connections 1024;
}
application hls{
live on;
hls on;
hls_path /usr/local/var/www/hls;
hls_fragment 1s;
}
}
}
拷貝到如圖位置
具體參數可以參考官方文檔
/usr/local/Cellar/rtmp-nginx-module/1.1.7.11-dev_1/share/rtmp-nginx-module/README.md
注意:修改nginx.conf之后,需重啟nginx服務,才會生效:$nginx -s reload。 再次在瀏覽器中測試:http://localhost:8080,以確認nginx開啟的狀態。
不了解RTMP和HLS協議的同學請參考 流媒體協議
安裝ffmpeg
brew install ffmpeg
###RTMP推流
ffmpeg -re -i xxx你的文件.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://localhost/rtmplive/demo
//注意這里的目錄rtmplive要和配置文件中 application 后面的名字一樣
如顯示上圖表示推流成功,
可以用VLC下載鏈接播放器打開,延遲大概在3s~5s左右
HLS推流
ffmpeg -re -i xxx.mp4 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://localhost:1935/hls/demo
http://localhost:8080/hls/demo.m3u8
HLS流可以用VLC打開 也可以直接用Safari打開
由于HLS流需要先下載索引,延遲較高