Linux下搭建nginx服務(wù)器
Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
Nginx 代碼完全用C語言從頭寫成,已經(jīng)移植到許多體系結(jié)構(gòu)和操作系統(tǒng),包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函數(shù)庫,并且除了zlib、PCRE和OpenSSL之外,標(biāo)準(zhǔn)模塊只使用系統(tǒng)C庫函數(shù)。而且,如果不需要或者考慮到潛在的授權(quán)沖突,可以不使用這些第三方庫。
流媒體(streaming media)是指將一連串的媒體數(shù)據(jù)壓縮后,經(jīng)過網(wǎng)上分段發(fā)送數(shù)據(jù),在網(wǎng)上即時(shí)傳輸影音以供觀賞的一種技術(shù)與過程,此技術(shù)使得數(shù)據(jù)包得以像流水一樣發(fā)送;如果不使用此技術(shù),就必須在使用前下載整個(gè)媒體文件。流式傳輸可傳送現(xiàn)場(chǎng)影音或預(yù)存于服務(wù)器上的影片,當(dāng)觀看者在收看這些影音文件時(shí),影音數(shù)據(jù)在送達(dá)觀看者的計(jì)算機(jī)后立即由特定播放軟件播放。
RTMP是Real Time Messaging Protocol(實(shí)時(shí)消息傳輸協(xié)議)的首字母縮寫。該協(xié)議基于TCP,是一個(gè)協(xié)議族,包括RTMP基本協(xié)議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設(shè)計(jì)用來進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用來在Flash/AIR平臺(tái)和支持RTMP協(xié)議的流媒體/交互服務(wù)器之間進(jìn)行音視頻和數(shù)據(jù)通信。支持該協(xié)議的軟件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP與HTTP一樣,都屬于TCP/IP四層模型的應(yīng)用層。
RTMP 是一種基于 TCP 的、用于數(shù)據(jù)、音頻和視頻傳輸?shù)碾p向通信協(xié)議。大部分具備行業(yè)標(biāo)準(zhǔn)的編碼器(如 encoding.com、Bitmovin、Harmonic 和 AWS Elemental 等)都能夠生產(chǎn) RTMP 數(shù)據(jù)源。同樣,Twitch、YouTube、Facebook Live 等流媒體服務(wù)和 Dacast、Ant Media、Wowza 等直播平臺(tái)都能接收 RTMP 推流
RTMP 由 Adobe 推出,用于超級(jí)流行的 Adobe Flash 播放器中,數(shù)百萬網(wǎng)站曾使用這款播放器向用戶展示視頻。在鼎盛時(shí)期,大約超過 90~95% 有視頻內(nèi)容的網(wǎng)站上都使用 Adobe Flash 播放器來播放視頻。
RTMP 的工作原理是:通過建立和維護(hù) RTMP 客戶端和 RTMP 服務(wù)端之間的通信路徑來實(shí)現(xiàn)快速、可靠的數(shù)據(jù)傳輸。
1.Linux下搭建Nginx流媒體服務(wù)器
1.1 下載必要工具
??(1)安裝必要工具
[wbyq@wbyq sbin]$ sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
??(2)創(chuàng)建nginx文件夾,下載Nginx服務(wù)器必要的軟件包
[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)安裝成功存放應(yīng)用程序位置:/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服務(wù)器的配置
??在/usr/local/nginx/conf目錄下打開nginx.conf 文件,在最下面添加以下信息:
rtmp {
server {
listen 8888; #監(jiān)聽端口號(hào)
#rtmp直播
application live { #應(yīng)用名稱
live on; #開啟
record all ;#錄制所有
record_unique on;#添加時(shí)間戳
record_path "./video"; #視頻緩存的路徑
record_suffix -%Y-%m-%d-%H_%M_%S.flv;#錄制文件的文件名稱:年-月-日-時(shí)-分-秒.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 啟動(dòng)nginx服務(wù)
??(1)啟動(dòng)nginx服務(wù)
[wbyq@wbyq ~]$ sudo /usr/local/nginx/sbin/nginx
??(2)查看nginx服務(wù)是否啟動(dòng)成功
[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 --線程數(shù)據(jù)隊(duì)列大小
-f video4linux2 --攝像頭框架V4L2
-r 12 --指定幀率,每秒12幀
-s 800x480 --圖像尺寸
-i /dev/video0 指定攝像頭
-vcodec libx264 編碼標(biāo)準(zhǔn)
“rtmp://127.0.0.1:8888/live/ashui” --rtmp服務(wù)器地址,127.0.0.1:8888服務(wù)器ip和端口號(hào),lives在配置文件里已經(jīng)固定,ashui可以隨意填寫
3.通過mplayer拉流
[wbyq@wbyq ~]$ mplayer rtmp "rtmp://127.0.0.1:8888/live/ashui"
3.在windows下使用VLC拉流
??服務(wù)端IP:
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209318 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9123瀏覽量
85322 -
nginx
+關(guān)注
關(guān)注
0文章
149瀏覽量
12170
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論