1、背景
本篇文章是繼上一篇文章《Ubuntu中使用Nginx+rtmp模塊搭建流媒體視頻點播服務》文章而寫,在上一篇文章中咱們搭建了一個點播服務器,在此基礎上咱們再搭建一個直播服務器,nginx
2、配置rtmp直播服務
咱們須要在nginx配置文件中增長直播的配置,這裏咱們依然使用vim命令打開配置文件,執行命令以下vim
vim /usr/local/nginx/conf/nginx.conf
vim命令執行以後,咱們將直播配置添加到rtmp項配置下面,其中的含義已經在配置中註明,配置以下所示segmentfault
application live{ live on; #直播 #回看功能 視頻切片變成ts文件 hls on; #這個參數把直播服務器改形成實時回放服務器。 wait_key on; #對視頻切片進行保護,這樣就不會產生馬賽克了。 hls_path /opt/video/rtmp/hls; #切片視頻文件存放位置。 hls_fragment 10s; #每一個視頻切片的時長。 hls_playlist_length 60s; #總共能夠回看的事件,這裏設置的是1分鐘。 hls_continuous on; #連續模式。 hls_cleanup on; #對多餘的切片進行刪除。 hls_nested on; #嵌套模式。 }
添加後,以下圖所示 在上圖中藍色字體亂碼,這個能夠暫時忽略它,或者直接刪除它。瀏覽器
接着咱們再將另一項配置增長到HTTP服務中,這個是用來監控咱們的推流狀態的,若是不配置咱們就不方便監控推流的狀態;咱們容器映射到外面的http端口爲8081,因此這裏咱們也把NGINX裏面的HTTP端口也改成8081
,這樣咱們才能夠訪問到,配置項以下服務器
location /stat { #第二處添加的location字段。 rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { #第二處添加的location字段。 root /etc/rtmpServer/nginx-rtmp-module/; }
增長配置以後,以下圖所示 在上圖中能夠看到,上面有一個配置路徑是
/etc/rtmpServer/nginx-rtmp-module/
這是咱們開始下載源碼解壓的位置,若是你解壓的位置不是這個,就須要將這裏改爲你解壓的位置。微信
設置好nginx配置以後,咱們保存並退出,而後你重啓nginx服務器,讓剛纔的配置生效,重啓的命令以下app
/usr/local/nginx/sbin/nginx -s reload
命令執行以後,返回的信息以下圖所示 在上圖中能夠看到重啓沒有報錯,說明咱們的配置沒有出現語法錯誤,而且重啓已經成功了。ide
3、OBS推流
在上面nginx配置完成以後,其實直播服務已經搭建完成了,可是咱們還須要驗證一下,最簡單的方式就是推流而後去拉流播放,推流咱們通常使用obs進行推流,官網地址以下所示測試
https://obsproject.com/
在官網首頁有下載地址,以下圖所示 在上圖中能夠看到支持Windows和Linux以及Mac系統的版本,這裏我下載的是Mac版本,把OBS下載並安裝好以後,打開界面以下圖所示
在上圖中能夠看到我添加了一個媒體源,媒體源這裏能夠選擇錄製屏幕,也能夠選擇一個視頻文件等各類方式字體
接着點擊右側的設置按鈕,會彈出一個設置框,找到裏面的推流項,而後設置推流地址,以下圖所示 在上圖中能夠看到我填寫的服務器地址爲
rtmp://127.0.0.1/live
,串流密碼爲:test
,設置好以後點擊下方的肯定,而後回到主窗口中點擊開始推流按鈕,就會開始推流,以下圖所示 在上圖中能夠下方的狀態欄能夠看到已經在開始推流了,其中的LIVE後面的爲當期推流持續時間,CPU後面的百分比表明推流佔用了多少CUP資源,在客戶端顯示推流成功以後,咱們能夠經過瀏覽器訪問推流監控頁面,地址以下所示
http://127.0.0.1:8081/stat
瀏覽器打開監控頁面,返回的信息以下圖所示 在上圖中能夠看到
test
頻道有已經一路流推送了上來,說明服務端已經接收到數據流
4、使用vlc拉流
推流上來以後,咱們就能夠進行拉流測試,這裏咱們依然以VLC播放器來測試,打開菜單欄中的選項 File
->Open Network
, 在上圖中能夠看到有一個輸入框,在裏面填入播放地址
rtmp://127.0.0.1/live/test
,而後點擊下方的open
按鈕,而後就能夠播放了,若是沒有意外狀況,播放效果以下圖所示 在上圖中能夠看到已經開始播放我剛纔推送上去的視頻了
直播轉錄播
若是咱們須要將推流的視頻存保留下來未來用做回放,並不須要特地配置,由於nginx-rtmp-moudle模塊已經幫咱們保存了,保存的位置是在nginx配置中hls_path
項設置的位置,咱們經過CD命令查看一下,執行命令以下所示
cd /opt/video/rtmp/hls/test && ls
命令執行以後,返回的文件列表信息以下圖所示 在上圖中能夠看到TS片,到此咱們經過nginx+rtmp搭建直播服務已經完成了,下一篇咱們將經過SRS搭建流媒體服務器。
做者:湯青松
微信:songboy8888
日期:2019-12-04