教你如何搭建自己的直播服務器-簡易


使用背景:   

 在項目中有沒有遇見過要對接直播接口的需求?我想大家都是有的。但是怎么說呢,對接第三方的缺點也很明顯,除去那不可避免的一些事故。最大的缺點就是要錢!!!要錢!!!要錢!!!

對於我們公司來說。一般都是要先上線,在考慮效率。所以經過我不斷地查詢資料找到了一款可以搭建直播服務器的工具 。就是他 nginx.exe 

    下面直接開擼!首先放一下官網地址:http://nginx.org/en/download.html

安裝和配置:

  安裝:

    博主用的是window系統,其它系統...請繞路(參考別的文獻)。下載,安裝之后需要增加幾個文件夾如圖:

 

  配置:

 然后打開\conf\下的nginx.conf  按照下面進行配置

worker_processes  1;   #Nginx進程數,建議設置為等於CPU總核數
 
events {
    worker_connections  1024;  #工作模式與連接數上限
}
 
rtmp_auto_push on;
 
 
#RTMP服務
rtmp{
    server{
        listen 1935;        #服務端口
        chunk_size 4096;    #數據傳輸塊的大小
        
        application vod{
            play ./vod;   #視頻文件存放位置
        }
        application live{
            live on;                     #開啟直播
            
            #開啟錄制功能,會將直播的信息保存成一個flv文件
            record all;
            #視頻錄制存放目錄,注意 因為需要生成文件,所以需要nginx以某種可以讓其他服務讀寫文件的用戶權限啟動
            record_path D:\zbvideo;
            #每次錄制是否唯一文件名,會以 房間號-時間戳 為名稱,房間號由推流端指定,跟在 live后面,如 live/room1
            record_unique on;
            #將直播錄制的視頻轉為mp4格式,主要為FFmpeg指令的使用,未驗證
            #exec_record_done 為錄制完成后執行的指令
            exec_record_done ffmpeg -y -i $path -acodec libmp3lame -ar 44100 -ac 1 -vcodec libx264 $path/$basename.mp4;
            
            
            hls on;                      #開啟hls直播。這個參數把直播服務器改造成實時回放服務器
            #wait_key on;                #對視頻切片進行保護,這樣就不會產生馬賽克了
            hls_path ./m3u8File;         #切片視頻文件存放位置(HLS,m3u8文件存放位置)
            hls_fragment 2s;             #每個視頻切片的時長
            hls_playlist_length 16s;
            recorder myRecord{
                record all manual;
                record_suffix _.flv;
                record_path ./rec;
            }
            #hls_continuous on;          #連續模式
            #hls_cleanup on;             #對多余的切片進行刪除
            #hls_nested on;              #嵌套模式
        }
    }
}

 
 
#HTTP服務
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
 
    server {
        listen       80;
        server_name  localhost;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
 
        location /live_hls{
            types{
                #m3u8 type設置
                application/vnd.apple.mpegurl m3u8;
                #ts分片文件設置
                video/mp2t ts;
            }
            #指向訪問m3u8文件目錄
            alias ./m3u8File;
                add_header Cache-Control no-cache; #禁止緩存
                add_header Access-Control-Allow-Origin *; #允許所有域名跨域訪問代理地址
                add_header Access-Control-Allow-Headers X-Requested-With;
                add_header Access-Control-Allow-Methods GET; #跨域請求訪問請求方式,
        }
 
        location /control{
            rtmp_control all;
        }
        
        location /stat{
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl{
            root ./nginx-rtmp-module-master;
        }
 

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

 

 

運行:

然后我們進行運行直播服務器,怎么運行呢。可以直接使用管理員身份運行nginx.exe。運行后打開任務管理器的進程看一下是否啟動成功。

 

 

這里推薦使用cmd進行啟動程序,因為nginx給我們提供了很多命令可以更好地使用。

nginx命令:
nginx.exe -t   檢查配置是否正確
start nginx     啟動
nginx -s stop  立即停止服務
systemctl restart nginx.service   重啟Nginx服務
netstat -tlnp   查看端口號

 

1,檢查配置

首先我們打開cmd命令,然后抵達所在文件夾。安裝后建議先用上面的檢查配置的命令看一下是否ok,配置無問題則會返回以下內容。

 

 

2,啟動程序

接着我們運行啟動命令。

 

 回車之后我們就可以打開任務管理器看到進程是已經開啟了。

 

然后打開游覽器地址欄中輸入localhost:80,出現下面圖片內容代表沒有問題。

 

 推流

 下一步我們進行obs推流 推流后可以讓其他端口進行拉流播放;

 

拉流

 拉流的話這里提供兩種方式

rtmp地址:

第一種直接原地址rtmp:進行拉流。

http地址:

另外一種是推薦的http:進行拉流 格式如下:http://localhost:80/live_hls/1441970998831222784.m3u8

 

可以看到訪問直播流是沒有問題的~ 

 

 

然后文件夾中也出現了我們推流的一些m3u8.文件。

 

 

 保存錄像

非常感謝看到這里,最后這個是已經進行保存錄像的配置了。具體實現是在配置文件中的record_path 這里進行自定義文件夾保存。

可以看到這里是flv的視頻媒體。

 

 

 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM