一、背景
本篇文章是繼上一篇文章《Ubuntu中使用Nginx+rtmp模塊搭建流媒體視頻點(diǎn)播服務(wù)》文章而寫(xiě),在上一篇文章中我們搭建了一個(gè)點(diǎn)播服務(wù)器,在此基礎(chǔ)上我們?cè)俅罱ㄒ粋€(gè)直播服務(wù)器,
二、配置rtmp直播服務(wù)
我們需要在nginx配置文件中增加直播的配置,這里我們依然使用vim命令打開(kāi)配置文件,執(zhí)行命令如下
vim /usr/local/nginx/conf/nginx.conf
vim命令執(zhí)行之后,我們將直播配置添加到rtmp項(xiàng)配置下面,其中的含義已經(jīng)在配置中注明,配置如下所示
application live{
live on; #直播
#回看功能 視頻切片變成ts文件
hls on; #這個(gè)參數(shù)把直播服務(wù)器改造成實(shí)時(shí)回放服務(wù)器。
wait_key on; #對(duì)視頻切片進(jìn)行保護(hù),這樣就不會(huì)產(chǎn)生馬賽克了。
hls_path /opt/video/rtmp/hls; #切片視頻文件存放位置。
hls_fragment 10s; #每個(gè)視頻切片的時(shí)長(zhǎng)。
hls_playlist_length 60s; #總共可以回看的事件,這里設(shè)置的是1分鐘。
hls_continuous on; #連續(xù)模式。
hls_cleanup on; #對(duì)多余的切片進(jìn)行刪除。
hls_nested on; #嵌套模式。
}
添加后,如下圖所示
[圖片上傳失敗...(image-748dea-1575432008678)]
在上圖中藍(lán)色字體亂碼,這個(gè)可以暫時(shí)忽略它,或者直接刪除它。
接著我們?cè)賹⒘硗庖豁?xiàng)配置增加到HTTP服務(wù)中,這個(gè)是用來(lái)監(jiān)控我們的推流狀態(tài)的,如果不配置我們就不方便監(jiān)控推流的狀態(tài);我們?nèi)萜饔成涞酵饷娴膆ttp端口為8081,所以這里我們也把NGINX里面的HTTP端口也改為8081,這樣我們才可以訪問(wèn)到,配置項(xiàng)如下
location /stat { #第二處添加的location字段。
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl { #第二處添加的location字段。
root /etc/rtmpServer/nginx-rtmp-module/;
}
增加配置之后,如下圖所示
[圖片上傳失敗...(image-76c7c0-1575432008678)]
在上圖中可以看到,上面有一個(gè)配置路徑是/etc/rtmpServer/nginx-rtmp-module/這是我們開(kāi)始下載源碼解壓的位置,如果你解壓的位置不是這個(gè),就需要將這里改成你解壓的位置。
設(shè)置好nginx配置之后,我們保存并退出,然后你重啟nginx服務(wù)器,讓剛才的配置生效,重啟的命令如下
/usr/local/nginx/sbin/nginx -s reload
命令執(zhí)行之后,返回的信息如下圖所示
[圖片上傳失敗...(image-8277d9-1575432008678)]
在上圖中可以看到重啟沒(méi)有報(bào)錯(cuò),說(shuō)明我們的配置沒(méi)有出現(xiàn)語(yǔ)法錯(cuò)誤,并且重啟已經(jīng)成功了。
三、OBS推流
在上面nginx配置完成之后,其實(shí)直播服務(wù)已經(jīng)搭建完成了,但是我們還需要驗(yàn)證一下,最簡(jiǎn)單的方式就是推流然后去拉流播放,推流我們一般使用obs進(jìn)行推流,官網(wǎng)地址如下所示
https://obsproject.com/
在官網(wǎng)首頁(yè)有下載地址,如下圖所示
[圖片上傳失敗...(image-732403-1575432008678)]
在上圖中可以看到支持Windows和Linux以及Mac系統(tǒng)的版本,這里我下載的是Mac版本,把OBS下載并安裝好之后,打開(kāi)界面如下圖所示
[圖片上傳失敗...(image-c6469e-1575432008678)]
在上圖中可以看到我添加了一個(gè)媒體源,媒體源這里可以選擇錄制屏幕,也可以選擇一個(gè)視頻文件等各種方式
接著點(diǎn)擊右側(cè)的設(shè)置按鈕,會(huì)彈出一個(gè)設(shè)置框,找到里面的推流項(xiàng),然后設(shè)置推流地址,如下圖所示
[圖片上傳失敗...(image-c73c30-1575432008678)]
在上圖中可以看到我填寫(xiě)的服務(wù)器地址為rtmp://127.0.0.1/live,串流密碼為:test,設(shè)置好之后點(diǎn)擊下方的確定,然后回到主窗口中點(diǎn)擊開(kāi)始推流按鈕,就會(huì)開(kāi)始推流,如下圖所示
[圖片上傳失敗...(image-2553a2-1575432008678)]
在上圖中可以下方的狀態(tài)欄可以看到已經(jīng)在開(kāi)始推流了,其中的LIVE后面的為當(dāng)期推流持續(xù)時(shí)間,CPU后面的百分比代表推流占用了多少CUP資源,在客戶端顯示推流成功之后,我們可以通過(guò)瀏覽器訪問(wèn)推流監(jiān)控頁(yè)面,地址如下所示
http://127.0.0.1:8081/stat
瀏覽器打開(kāi)監(jiān)控頁(yè)面,返回的信息如下圖所示
[圖片上傳失敗...(image-e31d08-1575432008678)]
在上圖中可以看到test頻道有已經(jīng)一路流推送了上來(lái),說(shuō)明服務(wù)端已經(jīng)接收到數(shù)據(jù)流
四、使用vlc拉流
推流上來(lái)之后,我們就可以進(jìn)行拉流測(cè)試,這里我們依然以VLC播放器來(lái)測(cè)試,打開(kāi)菜單欄中的選項(xiàng) File->Open Network,
[圖片上傳失敗...(image-a1171a-1575432008678)]
在上圖中可以看到有一個(gè)輸入框,在里面填入播放地址rtmp://127.0.0.1/live/test,然后點(diǎn)擊下方的open按鈕,然后就可以播放了,如果沒(méi)有意外情況,播放效果如下圖所示
[圖片上傳失敗...(image-3aa890-1575432008678)]
在上圖中可以看到已經(jīng)開(kāi)始播放我剛才推送上去的視頻了
直播轉(zhuǎn)錄播
如果我們需要將推流的視頻存保留下來(lái)將來(lái)用作回放,并不需要特意配置,因?yàn)閚ginx-rtmp-moudle模塊已經(jīng)幫我們保存了,保存的位置是在nginx配置中hls_path項(xiàng)設(shè)置的位置,我們通過(guò)CD命令查看一下,執(zhí)行命令如下所示
cd /opt/video/rtmp/hls/test && ls
命令執(zhí)行之后,返回的文件列表信息如下圖所示
[圖片上傳失敗...(image-f1e61e-1575432008678)]
在上圖中可以看到TS片,到此我們通過(guò)nginx+rtmp搭建直播服務(wù)已經(jīng)完成了,下一篇我們將通過(guò)SRS搭建流媒體服務(wù)器。
作者:湯青松
微信:songboy8888
日期:2019-12-04