ubuntu搭建推流服務(wù)器Nginx+rtmp

****前言****
最近這兩年直播平臺(tái)及其流行,然而我呢?
也要玩玩推流服務(wù)器~~~
實(shí)現(xiàn)服務(wù)器推流/PC客戶端觀看/瀏覽器客戶端查看


****簡(jiǎn)介****
對(duì)于Nginx的優(yōu)點(diǎn)呢就不多說(shuō)了,兩句話:
1)并發(fā)量高
2)可負(fù)載均衡
重點(diǎn)談?wù)剅tmp吧!
RTMP全稱是Real Time Messaging Protocol(實(shí)時(shí)消息傳輸協(xié)議),rmtp是一種通訊協(xié)議。該協(xié)議基于TCP,是一個(gè)協(xié)議族,包括RTMP基本協(xié)議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設(shè)計(jì)用來(lái)進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用來(lái)在Flash/AIR平臺(tái)和支持RTMP協(xié)議的流媒體/交互服務(wù)器之間進(jìn)行音視頻和數(shù)據(jù)通信?,F(xiàn)在更流行于直播平臺(tái)服務(wù)器的推流處理!


****install搭建****

  • 建立源碼編譯的目錄
$ mkdir nginx-src
$ cd nginx-src
  • 下載源碼倉(cāng)庫(kù)
#nginx源碼
$ git clone https://github.com/nginx/nginx.git
#nginx的rtmp模塊源碼
$ git clone https://github.com/arut/nginx-rtmp-module.git
#nginx的依賴pcre源碼
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
$ tar -xzvf pcre-8.39.tar.gz
$ cd nginx$ git checkout release-1.9.9
  • 準(zhǔn)備編譯安裝
#將configure的命令封裝成腳本
$ vim cfg.sh
#  cfg.sh文件的內(nèi)容
auto/configure --prefix=/usr/local/nginx \
        --with-pcre=../pcre-8.39 \
                --with-http_ssl_module \
                --with-http_v2_module \
                --with-http_flv_module \
                --with-http_mp4_module \
                --add-module=../nginx-rtmp-module/
$ chmod a+x cfg.sh
$ ./cfg.sh
$ make 
$ make install
  • 啟動(dòng)nginx服務(wù)器
/usr/local/nginx/sbin/nginx

****配置nginx****
在nginx的配置文件nginx.conf最后添加如下信息

# RMTP的服務(wù)器配置信息
rtmp {
        server {
                listen  2016; #推流的監(jiān)聽(tīng)端口
                publish_time_fix on;
                # 推流其一
                application live {
                        live on; #stream on live allow
                        allow publish all; # control access privilege
                        allow play all; # control access privilege
                }
               #推流其二
        application hls_alic {
                        live on;
                        hls on;
                        hls_path /home/alic/www/hls;
                        hls_fragment 5s;
                }
        }
}

重新加載nginx的配置

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

****簡(jiǎn)單的測(cè)試demo****
安裝ffmpag

$ add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
$ apt-get update
$  apt-get install ffmpeg

使用ffmpeg向服務(wù)器推送一個(gè)視頻

ffmpeg -re -i /home/alic/Desktop/demo/film.mp4 -c copy -f flv rtmp://localhost:2016/live/film
or
# 推薦 可用于瀏覽器播放
ffmpeg -re -i /home/alic/Desktop/demo/film.mp4 -c copy -f flv rtmp://localhost:2016/hls_alic/film
Alic_推流

視頻播放器獲取視頻流


Alic_客戶端獲取流

對(duì)于瀏覽器呢,html的整理代碼如下

<html>
<head>
    <link rel="stylesheet" >
</head>
    <video id=example-video width=960 height=540 class="video-js vjs-default-skin" controls>
        <source
            src="film.m3u8"
            type="application/x-mpegURL">
    </video>
    <script src="http://vjs.zencdn.net/5.10/video.js"></script>
    <script src="https://npmcdn.com/videojs-contrib-hls@^3.0.0/dist/videojs-contrib-hls.js"></script>
    <script>
        var player = videojs('example-video');
        player.play();
    </script>
</html>

注意,在hls_path的路徑添加一個(gè)站點(diǎn)來(lái)訪問(wèn)即可!
推流還是用ffmpeg的命令來(lái), 推流一段時(shí)間后, 你會(huì)發(fā)現(xiàn)在"/home/alic/www/hls"目錄里, 有很多ts文件,
還有一個(gè)后綴".m3u8"文件上面配置中的 server:8081 塊, 就是為了能在外部能訪問(wèn)這些ts文件和m3u8文件。

Alic_瀏覽器

搭建推流服務(wù)器Nginx+rtmp就成功了!
即將總結(jié)ffmpeg推流的命令~~~


****價(jià)值源于技術(shù),貢獻(xiàn)源于分享****

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容