2018-02-07

在mac上搭建簡單的hls推流服務器

最近公司要有在網(wǎng)頁端用hls推流來播放全景視頻的需求远寸,難點在于全景播放器的兼容性問題宾茂。目前市場上已有成熟的產(chǎn)品是krpano,但是公司希望我去調(diào)研下。常年iOS開發(fā)的我只好找了兩天的開源項目链烈,目前選定videojs來做播放器,結合公司的渲染器來完成挚躯。

為了測試demo强衡,先完成在自己的mac上搭建一個hls的推流服務器。一搜索基本全都是用ngnix搭建的码荔,根據(jù)各種教程漩勤,磕磕絆絆用了半天多時間才搞定。特地把遇到的坑做個記錄缩搅。

第一步:安裝brew

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

第二步:安裝nginx服務器

$?brew tap homebrew/nginx

報錯:Error: homebrew/nginx was deprecated. This tap is now empty as all its formulae were migrated.

隨后換了個github的項目(https://github.com/denji/homebrew-nginx)成功了:

$?brew tap denji/nginx

$?brew install nginx-full --with-upload-module

安裝成功之后可查看信息:

$?brew options nginx-full

$?brew info nginx-full

第三步:開始啟動服務器

$?sudo nginx

發(fā)生錯誤:

nginx: [emerg] bind() to 0.0.0.0:1935 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:1935 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:1935 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

發(fā)現(xiàn)前面有嘗試過開啟越败,雖然報錯了,端口還是被占用了

$ sudo nginx -s stop

順利開啟之后硼瓣,開始配置hls支持

第四步:配置hls

worker_processes 1;

#error_log? logs/error.log debug;

events {

? ? worker_connections? 1024;

}

rtmp {

? ? server {

? ? ? ? listen 1935;

? ? ? ? application zbcs {

? ? ? ? ? ? ? ? live on;

? ? ? ? ? ? ? ? record off;

? ? ? ? ? ? }

? ? ? ? #配置HLS支持開始

? ? ? ? application hls {

? ? ? ? ? ? live on;

? ? ? ? ? ? hls on;

? ? ? ? ? ? hls_path /usr/local/var/www/hls;

? ? ? ? ? ? hls_fragment 5s;

? ? ? ? }

? ? ? ? #配置HLS支持結束

? ? }

}

http {

? ? 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可在http下訪問

? ? ? ? ? ? location /hls {

? ? ? ? ? ? ? ? # Serve HLS fragments

? ? ? ? ? ? ? ? types {

? ? ? ? ? ? ? ? ? ? application/vnd.apple.mpegurl m3u8;

? ? ? ? ? ? ? ? ? ? video/mp2t ts;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? root /usr/local/var/www;

? ? ? ? ? ? ? ? add_header Cache-Control no-cache;

? ? ? ? ? ? }

? ? ? ? ? #HLS在http結束

? ? ? ? ? ? #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;

? ? ? ? ? ? }

? ? }

}

然后重新load配置文件

$ sudo nginx -s reload

報錯:

nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

需要重新設置一下配置文件:

$ sudo nginx -c /usr/local/etc/nginx/nginx.conf

$?sudo nginx -s reload

$?sudo nginx //開啟服務器

還有一種錯誤:

[emerg] 31225#0: unknown directive "rtmp" in /usr/local/etc/nginx/nginx.conf:9

這是因為rtmp 模塊沒有加進去究飞,需要重新安裝一下:

$ brew uninstall nginx-full// 刪除

$ nginxbrew install nginx-full --with-rtmp-module// 安裝

終于到了第五步:利用ffmpeg推送流:

$ brew install ffmpeg // 安裝ffmpeg

$ ffmpeg -re -i 視頻的據(jù)對路徑 -vcodec copy -acodec copy -f flv rtmp://localhost:1935/hls/movie //指向在/usr/local/var/www 下建立一個可讀可寫的hls文件夾

結果ts文件雖然是有一直生成,但是不能播放:

$ ffmpeg -re -i 視頻的據(jù)對路徑?-vcodec libx264 -acodec aac -strict -2 -f flv rtmp://127.0.0.1:1935/hls/movie // 搞定

可通過直接訪問:

http://localhost:8080/hls/movie.m3u8

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市亿傅,隨后出現(xiàn)的幾起案子媒峡,更是在濱河造成了極大的恐慌,老刑警劉巖葵擎,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谅阿,死亡現(xiàn)場離奇詭異,居然都是意外死亡坪蚁,警方通過查閱死者的電腦和手機奔穿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敏晤,“玉大人贱田,你說我怎么就攤上這事∽炱ⅲ” “怎么了男摧?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長译打。 經(jīng)常有香客問我耗拓,道長,這世上最難降的妖魔是什么奏司? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任乔询,我火速辦了婚禮,結果婚禮上韵洋,老公的妹妹穿的比我還像新娘竿刁。我一直安慰自己,他們只是感情好搪缨,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布食拜。 她就那樣靜靜地躺著,像睡著了一般副编。 火紅的嫁衣襯著肌膚如雪负甸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天痹届,我揣著相機與錄音呻待,去河邊找鬼。 笑死队腐,一個胖子當著我的面吹牛蚕捉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播香到,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了悠就?” 一聲冷哼從身側(cè)響起千绪,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎梗脾,沒想到半個月后荸型,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡炸茧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年瑞妇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梭冠。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡辕狰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出控漠,到底是詐尸還是另有隱情蔓倍,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布盐捷,位于F島的核電站偶翅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碉渡。R本人自食惡果不足惜聚谁,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滞诺。 院中可真熱鬧形导,春花似錦、人聲如沸铭段。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽序愚。三九已至憔披,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爸吮,已是汗流浹背芬膝。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留形娇,地道東北人锰霜。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像桐早,于是被迫代替她去往敵國和親癣缅。 傳聞我的和親對象是個殘疾皇子厨剪,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

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

  • 一.我的環(huán)境 系統(tǒng):CentOS 7,自帶python2.7友存,加裝python3.6 參考:linux下配置安裝p...
    左躍飛閱讀 244評論 0 0
  • 一祷膳、簡介 二、記錄日志的目的(why)開發(fā)調(diào)試記錄用戶行為程序運行狀況系統(tǒng)屡立、機器狀況 三直晨、日志的要素(what)時...
    四火流年閱讀 942評論 0 3
  • 一.簡述總體內(nèi)容 1.直播流程介紹 2.Mac搭建nginx+rtmp服務器(模擬推流拉流) 3.簡單的集成推流拉...
    IIronMan閱讀 7,652評論 10 64
  • 初見他,是在王母娘娘的蟠桃會前膨俐。 “你們聽說了嗎勇皇?娘娘這次蟠桃盛會可是請了一眾仙家,是更比往年的熱鬧許...
    陸初九閱讀 223評論 0 0
  • 一焚刺、下載安裝 1.官網(wǎng)http://redis.io/下載最新的穩(wěn)定版本敛摘,這里是3.2.5 2.打開前往-前往文件...
    等不來的期待閱讀 515評論 0 1