MAC使用Nginx推送RTMP+HLS直播流

最近在測試ijk播放器的解碼性能等功能,所以搭建了nginx模擬直播推流,在這里扳埂,主要講解rtmp和hls推流方式的環(huán)境搭建蛤肌。筆者采用的是Mac系統(tǒng)壁却,不過Windows也大同小異,就不再單獨篇幅進行介紹了裸准。

一展东、安裝Homebrew

Homebrew是mac系統(tǒng)下的一個軟件包的管理器,通過使用該工具,能很方便的去安裝以及卸載軟件。在命令行中執(zhí)行如下命令即可安裝。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

二缰揪、安裝Nginx

Nginx是一個異步框架的 Web服務(wù)器砸王,也可以用作反向代理推盛,負載平衡器和 HTTP緩存。

按第一步驟安裝完成Homebrew后谦铃,可在命令行中使用brew安裝nginx耘成。文中使用tap命令添加了第三方的github項目。非Mac系統(tǒng)的童鞋可以從官網(wǎng)下載安裝包進行安裝驹闰。

brew tap denji/nginx
brew install nginx-full --with-rtmp-module

筆者在此處安裝時遇到一個安裝過程中出現(xiàn)一個小問題,報了這樣一個錯誤:

Error: Could not symlink share/man/man8/nginx.8 /usr/local/share/man/man8 is not writable.

上面告訴我們/usr/local/share/man/man8這個目錄對當前用戶無寫權(quán)限凿跳,因為我們安裝包時經(jīng)常會對兩個目錄做操作/usr/local/share、/usr/local/opt疮方,所以我們直接對這2個目錄授權(quán)控嗜,具體命令如下:

sudo chown -R `whoami`:admin /usr/local/share
sudo chown -R `whoami`:admin /usr/local/opt

執(zhí)行了該命令后,再重新執(zhí)行一下brew link nginx就可以了骡显。至此疆栏,已經(jīng)安裝完成nginx和rtmp模塊。

接下來我們來看看如何查看nginx的一些信息惫谤,在命令行中執(zhí)行brew info nginx-full壁顶。

可以看到nginx的配置文件在/usr/local/etc/nginx/nginx.conf,安裝位置在/usr/local/opt/nginx-full/bin/nginx溜歪。

最后若专,在命令行中執(zhí)行nginx啟動nginx服務(wù)。需要注意的是蝴猪,執(zhí)行了該命令后调衰,并沒有任何提示輸出,需要在瀏覽器下輸入http://localhost:8080/進行訪問自阱,正常的話會顯示welcome歡迎頁面嚎莉。

三、配置nginx.conf

進入到配置文件所在地址/usr/local/etc/nginx/沛豌,然后執(zhí)行open nginx.conf -a atom使用atom打開配置文件趋箩,沒有安裝atom的童鞋可以使用其他文本編輯軟件。

在http{...}server節(jié)點中加派,需要增加hls的配置叫确,詳見標注,此處是為了讓客戶端可以以http的形式來拉取hls的視頻流芍锦。

server {
        listen       8080;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        #hls配置開始
        location /hls{
          types{
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
          }
          root html;
          add_header Cache-Control no-cache;
        }
        #hls配置結(jié)束
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

在http{…}節(jié)點后竹勉,添加一個新的rtmp節(jié)點,具體代碼如下:

rtmp{
  server{
    listen 1935;
    chunk_size 4000;
    #RTMP 直播流配置
    application rtmplive{
      live on;
      max_connections 1024;
    }
    #hls直播流配置
    application hls{
      live on;
      hls on;
      hls_path /usr/local/var/www/hls;
      hls_fragment 5s;
    }
  }
}

listen是監(jiān)聽的端口號醉旦,chunk_size是流整合的最大的塊大小饶米,默認值為 4096桨啃,這個值設(shè)置的越大 CPU 負載就越小车胡,值不能低于128檬输。live on為開啟實時直播,max_connections為最大連接數(shù)匈棘。hls_path是ts文件的存放位置丧慈,hls_fragment為分片包含5秒的視頻內(nèi)容。

文件修改保存后主卫,執(zhí)行nginx -s reload重新加載配置逃默。

四、通過FFmpeg推流

還未安裝ffmpeg的童鞋需要在命令行執(zhí)行安裝命令brew install ffmpeg簇搅。

1.RTMP推流

推流方式比較簡單完域,只需要在命令行中輸入:

ffmpeg -re -i /Study/Movie/test.ts -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/rtmplive/rtmp

這個命令的大體意思是使用FFmpeg往后面的那個地址推送視頻流信息。需要注意的是 -i 后面是視頻的絕對路徑瘩将,有個比較簡單的輸入辦法就是直接拖拽視頻到命令行中就會顯示完整的視頻路徑吟税。

如果正常運行的話,就會出現(xiàn)如下圖1-1所示內(nèi)容:

圖1-1 FFmpeg推流

此刻我們需要做的是姿现,打開一個能訪問網(wǎng)絡(luò)地址的視頻播放器肠仪。筆者使用的是vlc萬能播放軟件,在打開源中輸入我們的推流地址备典,如下圖1-2所示异旧。

圖1-2 VLC打開視頻源

配置正常的話,vlc會進入到網(wǎng)絡(luò)視頻流播放畫面提佣,如圖1-3所示吮蛹。

圖1-3 RTMP視頻流

2.HLS推流

hls推流和rtmp相似,只是后面的推流地址改了一下拌屏。

ffmpeg -re -i /Study/Movie/test.ts -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/hls/movie

我們可以直接在safari瀏覽器中訪問http://localhost:8080/hls/movie.m3u8匹涮,效果如圖1-4。

圖1-4 HLS視頻流

至此槐壳,F(xiàn)Fmpeg+Nginx推流功能介紹完畢然低。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市务唐,隨后出現(xiàn)的幾起案子雳攘,更是在濱河造成了極大的恐慌,老刑警劉巖枫笛,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吨灭,死亡現(xiàn)場離奇詭異,居然都是意外死亡刑巧,警方通過查閱死者的電腦和手機喧兄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門无畔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吠冤,你說我怎么就攤上這事浑彰。” “怎么了拯辙?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵郭变,是天一觀的道長。 經(jīng)常有香客問我涯保,道長诉濒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任夕春,我火速辦了婚禮未荒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘及志。我一直安慰自己片排,他們只是感情好,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布困肩。 她就那樣靜靜地躺著划纽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锌畸。 梳的紋絲不亂的頭發(fā)上勇劣,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音潭枣,去河邊找鬼比默。 笑死,一個胖子當著我的面吹牛盆犁,可吹牛的內(nèi)容都是我干的命咐。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼谐岁,長吁一口氣:“原來是場噩夢啊……” “哼醋奠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伊佃,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤窜司,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后航揉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塞祈,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年帅涂,在試婚紗的時候發(fā)現(xiàn)自己被綠了议薪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尤蛮。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖斯议,靈堂內(nèi)的尸體忽然破棺而出产捞,到底是詐尸還是另有隱情,我是刑警寧澤捅位,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布轧葛,位于F島的核電站搂抒,受9級特大地震影響艇搀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜求晶,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一焰雕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芳杏,春花似錦矩屁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至空幻,卻和暖如春烁峭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秕铛。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工约郁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人但两。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓鬓梅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谨湘。 傳聞我的和親對象是個殘疾皇子绽快,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容