首頁 > 軟體

Nginx搭建RTMP串流媒體伺服器的實現

2022-07-18 18:02:57

1 環境搭建

環境搭建主要是利用nginx伺服器的外掛模組nginx-rtmp-module進行rtmp的推拉流操作。

依賴庫安裝

安裝過nginx的可以跳個這個步驟,主要是安裝ssl、pcre和zlib庫依賴

#安裝ssl依賴庫
sudo apt-get install openssl libssl-dev 
#安裝pcre
sudo apt-get install libpcre3 libpcre3-dev
#安裝zlib
sudo apt-get install zlib1g-dev 

原始碼下載與編譯

原始碼下載路徑:https://github.com/arut/nginx-rtmp-module
下載原始碼,如果git命令沒法下載就直接到網頁下載複製到對應目錄。

mkdir /home/rtmp
cd /home/rtmp
git clone https://github.com/nginx/nginx.git
git clone https://github.com/arut/nginx-rtmp-module.git

編譯過程

設定nginx編譯引數

auto/configure --with-http_ssl_module --with-http_v2_module --with-http_flv_module --with-http_mp4_module --add-module=../nginx-rtmp-module

編譯和安裝

make -j4
sudo make install

安裝完可以檢視nginx版本是否正常
預設安裝路徑:/usr/local/nginx/

2 推流服務

2.1 利用檔案推流

完成nginx伺服器的安裝後,需要進行rtmp服務的設定,只需要修改nginx設定即可:

vi /usr/local/nginx/conf/nginx.conf

設定內容注意事項:

  • 開啟root許可權,以便可以存取home下的目錄;
  • play路徑設定為自己的視訊檔夾路徑
user  root;
rtmp {  #RTMP server
    server {
        listen 1935;  #server port
        chunk_size 4096;  #chunk_size
        application vod {
           #play /mnt/hgfs/ygf/vod; #media file position
           play /home/ffmpeg_learn/test_sources/test-av;
        }
    }
}

重啟nginx

/usr/local/nginx/sbin/nginx -s reload

需要注意的是播放的路徑一定要正確,同時播放音訊是aac視訊視h264,這裡新增一個test.mp4檔案。

下面是測試過程,windows利用vlc工具播放rtmp的路徑。這裡的ip需要設定為自己的Ubuntu ip地址

視訊效果如下:

注意需要確定視訊檔的格式:
音訊為AAC視訊為H264

2.2 將一路流灌到nginx伺服器rtmp進行推流

1 修改nginx設定,新增直播節點,用於FFmpeg將流推到對應節點上

        application live{ # live add
           live on;
        }

2 重啟nginx伺服器

/usr/local/nginx/sbin/nginx -s reload

3 進行推流操作

ffmpeg -re -i /home/ffmpeg_learn/test_sources/test-av/Titanic.mp4 -c copy -f flv rtmp://192.168.88.180/live/Titanic

利用vlc檢視視訊,如下所示:

3 直播拉流

上面利用VLC就是一個拉流的過程。
這裡介紹FFmpeg命令列操作。

#利用ffplay直接觀看
ffplay rtmp://192.168.88.180/vod/Titanic.mp4
#利用FFmpeg下載到檔案
ffmpeg -i rtmp://192.168.88.180/vod/Titanic.mp4 test.mp4

到此這篇關於Nginx搭建RTMP串流媒體伺服器的實現的文章就介紹到這了,更多相關Nginx搭建RTMP內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com