使用Linux+FFmpeg+SRS 搭建流媒體服務器


當前場景  有前端攝像頭使用RTSP生產視頻流,網頁頁面需要播放實時視頻,以前是采用FFmpeg轉碼+Nginx的rtmp模塊 推送視頻直播流。

但目前這種方式前端采用FLASH播放器進行播放已經不適用當前的環境,畢竟Flash在某些瀏覽器中已經被禁止

故現在改用FFmpeg+SRS進行流媒體服務器進行視頻直播推流,這種方式可以支持H5播放。下面來介紹其操作步驟。

步驟一、

下載SRS源代碼並編譯  或下載其編譯好的SRS 服務。 推薦開源地址   srs: SRS/4.0,Leo,是一個簡單高效的實時視頻服務器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT

https://gitee.com/winlinvip/srs.oschina

下載源碼,推薦用CentOS7系統

git clone -b 4.0release https://gitee.com/ossrs/srs.git

編譯,注意需要切換到srs/trunk目錄:

cd srs/trunk
./configure
make

注:一般情況下,播放的地址與網站存在SRS跨域播放問題      可以按下面方案解決此問題  在此之前,千萬一定不要執行編譯!

#cd srs/trunk
#vi src/app/srs_app_http_stream.cpp
在w->header()->set_content_type("video/x-flv");下一行添加代碼
w->header()->set("Access-Control-Allow-Origin","*");
然后直接編譯安裝SRS


注意:在修改src/app/srs_app_http_stream.cpp之前不要編譯srs

步驟二、

啟動SRS服務    srs.conf配置如下:

# main config for srs.
# @see full.conf for detail config.

listen              1936;
max_connections     1000;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;
daemon              on;
http_api {
    enabled         on;
    listen          1986;
}
http_server {
    enabled         on;
    listen          7001;
    dir             ./objs/nginx/html;
}
stats {
    network         0;
    disk            sda sdb xvda xvdb;
}
vhost __defaultVhost__ {
    hls {
        enabled         off;
    }
    #最小延遲打開,默認是打開的,該選項打開的時候,mr默認關閉。
    min_latency     on;
    #Merged-Read,針對RTMP協議,為了提高性能,SRS對於上行的read使用merged-read,即SRS在讀寫時一次讀取N毫秒的數據
    mr {
        enabled     on;
        #默認350ms,范圍[300-2000]
        latency     500;
    }
    mw_latency      100;
    gop_cache       off;
    queue_length    10;
    http_remux {
        enabled     on;
        fast_cache  30;
        mount       [vhost]/[app]/[stream].flv;
        hstrs       off;
    }
}

啟動命令如下:

./objs/srs -c conf/srs.conf

步驟三、

使用ffmpeg 進行轉碼    如前端攝像頭地址為:rtsp://48.5.16.5:888/admin      本機IP地址為:192.168.1.1

在命令行運行命令:

/usr/local/ffmpeg/bin/ffmpeg -i  rtsp://48.5.16.5:888/admin  -c:v libx264  -strict -2 -preset ultrafast -acodec aac -s 640*480 -f flv  rtmp://192.168.1.1:1936/live/zhibo1  >/dev/null 2>&1 &

步驟四  訪問播放地址

使用HTML5播放器進行播放   播放地址為:http://192.168.1.1:7001/live/zhibo1.flv

其中1936   7001  端口與srs.conf 中的監聽端口保持一致。

此致,部署完成。


免責聲明!

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



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