Linux下搭建nginx服務器
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好。
Nginx 代碼完全用C語言從頭寫成,已經移植到許多體系結構和操作系統,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函數庫,并且除了zlib、PCRE和OpenSSL之外,標準模塊只使用系統C庫函數。而且,如果不需要或者考慮到潛在的授權沖突,可以不使用這些第三方庫。
流媒體(streaming media)是指將一連串的媒體數據壓縮后,經過網上分段發送數據,在網上即時傳輸影音以供觀賞的一種技術與過程,此技術使得數據包得以像流水一樣發送;如果不使用此技術,就必須在使用前下載整個媒體文件。流式傳輸可傳送現場影音或預存于服務器上的影片,當觀看者在收看這些影音文件時,影音數據在送達觀看者的計算機后立即由特定播放軟件播放。
RTMP是Real Time Messaging Protocol(實時消息傳輸協議)的首字母縮寫。該協議基于TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設計用來進行實時數據通信的網絡協議,主要用來在Flash/AIR平臺和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通信。支持該協議的軟件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP與HTTP一樣,都屬于TCP/IP四層模型的應用層。
RTMP 是一種基于 TCP 的、用于數據、音頻和視頻傳輸的雙向通信協議。大部分具備行業標準的編碼器(如 encoding.com、Bitmovin、Harmonic 和 AWS Elemental 等)都能夠生產 RTMP 數據源。同樣,Twitch、YouTube、Facebook Live 等流媒體服務和 Dacast、Ant Media、Wowza 等直播平臺都能接收 RTMP 推流
RTMP 由 Adobe 推出,用于超級流行的 Adobe Flash 播放器中,數百萬網站曾使用這款播放器向用戶展示視頻。在鼎盛時期,大約超過 90~95% 有視頻內容的網站上都使用 Adobe Flash 播放器來播放視頻。
RTMP 的工作原理是:通過建立和維護 RTMP 客戶端和 RTMP 服務端之間的通信路徑來實現快速、可靠的數據傳輸。
1.Linux下搭建Nginx流媒體服務器
1.1 下載必要工具
??(1)安裝必要工具
[wbyq@wbyq sbin]$ sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
??(2)創建nginx文件夾,下載Nginx服務器必要的軟件包
[wbyq@wbyq ~]$ mkdir nginx
[wbyq@wbyq nginx]$ wget http://nginx.org/download/nginx-1.10.3.tar.gz
[wbyq@wbyq nginx]$ wget http://zlib.net/zlib-1.2.12.tar.gz
[wbyq@wbyq nginx]$ wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.43/pcre-8.43.tar.gz
[wbyq@wbyq nginx]$ wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
[wbyq@wbyq nginx]$ wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
??(3)解壓nginx-1.10.3.tar.gz、zlib-1.2.12.tar.gz、pcre-8.43.tar.gz、openssl-1.0.2k.tar.gz、master.zip
[wbyq@wbyq nginx]$ unzip master.zip
[wbyq@wbyq nginx]$ tar xvf nginx-1.10.3.tar.gz
[wbyq@wbyq nginx]$ tar xvf openssl-1.0.2k.tar.gz
[wbyq@wbyq nginx]$ tar xvf zlib-1.2.12.tar.gz
[wbyq@wbyq nginx]$ tar xvf pcre-8.43.tar.gz
??(4)配置nginx,生成Makefile
[wbyq@wbyq nginx-1.10.3]$ cd nginx-1.10.3/
[wbyq@wbyq 123]$ ./configure --prefix=/usr/local/nginx --with-debug --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.12 --with-openssl=../openssl-1.0.2k --add-module=../nginx-rtmp-module-master
?將./obj/Makefile中的 -Werror 刪除
[wbyq@wbyq nginx-1.10.3]$ vim objs/Makefile
??(5)編譯安裝nginx
[wbyq@wbyq nginx-1.10.3]$ make
[wbyq@wbyq nginx-1.10.3]$ sudo make install
1.2 配置nginx
??(1)安裝成功存放應用程序位置:/usr/local/nginx/sbin
??查看版本信息
[wbyq@wbyq sbin]$ pwd
/usr/local/nginx/sbin
[wbyq@wbyq sbin]$ ./nginx -v
nginx version: nginx/1.10.3
??(2)在配置文件里加入RTMP服務器的配置
??在/usr/local/nginx/conf目錄下打開nginx.conf 文件,在最下面添加以下信息:
rtmp {
server {
listen 8888; #監聽端口號
#rtmp直播
application live { #應用名稱
live on; #開啟
record all ;#錄制所有
record_unique on;#添加時間戳
record_path "./video"; #視頻緩存的路徑
record_suffix -%Y-%m-%d-%H_%M_%S.flv;#錄制文件的文件名稱:年-月-日-時-分-秒.flv
}
}
}
??(3)檢查配置文件是否正確
[wbyq@wbyq ~]$ sudo /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /home/wbyq/123/nginx-1.10.3/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/wbyq/123/nginx-1.10.3/nginx/conf/nginx.conf test is successful
1.3 啟動nginx服務
??(1)啟動nginx服務
[wbyq@wbyq ~]$ sudo /usr/local/nginx/sbin/nginx
??(2)查看nginx服務是否啟動成功
[wbyq@wbyq ~]$ netstat -ltn
2.通過ffmepg推流
[wbyq@wbyq ~]$ ffmpeg -thread_queue_size 128 -f video4linux2 -r 12 -s 800x480 -i /dev/video0 -vcodec libx264 -f flv "rtmp://127.0.0.1:8888/live/ashui"
-thread_queue_size 128 --線程數據隊列大小
-f video4linux2 --攝像頭框架V4L2
-r 12 --指定幀率,每秒12幀
-s 800x480 --圖像尺寸
-i /dev/video0 指定攝像頭
-vcodec libx264 編碼標準
“rtmp://127.0.0.1:8888/live/ashui” --rtmp服務器地址,127.0.0.1:8888服務器ip和端口號,lives在配置文件里已經固定,ashui可以隨意填寫
3.通過mplayer拉流
[wbyq@wbyq ~]$ mplayer rtmp "rtmp://127.0.0.1:8888/live/ashui"
3.在windows下使用VLC拉流
??服務端IP:
-
Linux
+關注
關注
87文章
11304瀏覽量
209483 -
服務器
+關注
關注
12文章
9160瀏覽量
85416 -
nginx
+關注
關注
0文章
149瀏覽量
12173
發布評論請先 登錄
相關推薦
評論