iOS簡單直播實現(一:建立本地rtmp伺服器)Mac上搭建直播伺服器Nginx+rtmp
簡介
nginx是非常優秀的開源伺服器,用它來做hls或者rtmp流媒體伺服器是非常不錯的選擇,本人在網上整理了安裝流程,分享給大家並且作備忘。
步驟安裝
Homebrew簡稱brew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體,可以說Homebrew就是mac下的apt-get、yum神器
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果已經安裝過,而想要解除安裝:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
2、安裝Nginx伺服器
增加對 nginx
的擴充套件;也就是從github上下載,home-brew對ngixnx的擴充套件
brew tap homebrew/nginx
3、安裝Nginx伺服器和rtmp模組
brew install nginx-full --with-rtmp-module
這個安裝,耗時相對來說比較長。通過操作以上步驟nginx和rtmp模組就安裝好了,下面開始來配置nginx的rtmp模組。
首先來看看我們的nginx安裝在哪裡
brew info nginx-full
執行上面的命令後我們可以看到資訊
- nginx安裝所在位置 /usr/local/Cellar/nginx-full/1.10.1/bin/nginx
- nginx配置檔案所在位置 /usr/local/etc/nginx/nginx.conf
- nginx伺服器根目錄所在位置 /usr/local/var/www
執行命令 ,測試下是否能成功啟動nginx服務
nginx
命令列如下圖所示
出現Welcome to nginx ,代表nginx安裝成功了。
4、配置rtmp
用Xcode開啟nginx.conf, 找到/usr/local/etc/nginx/nginx.conf
檔案,拖入到Dock中的Xcode,就可以開啟.
或者開啟Finder Shift + command + G前往,用記事本工具開啟nginx.conf.
http { …… } #在http節點下面(也就是檔案的尾部)加上rtmp配置: rtmp { server { listen1935; application zbcs { live on; record off; } } }
說明:
- rtmp是協議名稱
- server 說明內部中是伺服器相關配置
- listen 監聽的埠號, rtmp協議的預設埠號是1935
- application 訪問的應用路徑是 zbcs
- live on; 開啟實時
- record off; 不記錄資料
5. 儲存檔案後,重新載入nginx的配置檔案(這一步很重要)
nginx -s reload
6. 安裝ffmepg工具
brew install ffmpeg
安裝這個需要等一段時間, 這時你可以準備一個視訊檔案作為來推流,然後安裝一個支援rtmp協議的視訊播放器.Mac下可以用 VLC(點選下載)
7、通過ffmepg命令進行推流
ffmpeg -re -i 你的視訊檔案的絕對路徑(如/Users/lideshan/Downloads/Demo.mp4) -vcodec copy -f flv rtmp://localhost:1935/zbcs/room // 如:ffmpeg -re -i /Users/jiangys/Documents/Document/demo.mp4 -vcodec copy -f flv rtmp://localhost:1935/zbcs/room
這裡zbcs是上面的配置檔案中,配置的應用的路徑名稱;後面的room可以隨便寫。
推流介面:
8. 驗證視訊
然後電腦上開啟vlc這個播放器軟體 點選File---->Open Network 在彈出來的框中選擇Network然後輸入URL:
rtmp://localhost:1935/zbcs/room
雙擊播放
播放介面
報錯處理
1.ffmepg命令推流的時候,提示連線失敗。[tcp @ 0x7ff162504b60] Connection to tcp://localhost:1935 failed (Connection refused), trying next address
出現這個錯,是因為配置了nginx.conf後,需要重啟nginx。輸入命令重啟後就沒有問題了
nginx -s reload
解決方式:由於安裝後nginx伺服器,有時需要等上幾分鐘才生效。如果還不生效,測試下是否能成功啟動nginx服務,命令
nginx
具體請參考“步驟安裝”第三點。
另:當前只支援rtmp拉流,如果想要支援HLS ,請參考下一篇文章:
相關推薦
iOS簡單直播實現(一:建立本地rtmp伺服器)Mac上搭建直播伺服器Nginx+rtmp
簡介 nginx是非常優秀的開源伺服器,用它來做hls或者rtmp流媒體伺服器是非常不錯的選擇,本人在網上整理了安裝流程,分享給大家並且作備忘。 步驟安裝 Homebrew簡稱brew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體
簡單直播實現(一:建立本地rtmp伺服器)Mac上搭建直播伺服器Nginx+rtmp
簡介 nginx是非常優秀的開源伺服器,用它來做hls或者rtmp流媒體伺服器是非常不錯的選擇,本人在網上整理了安裝流程,分享給大家並且作備忘。 步驟安裝 1、安裝Homebrow Homebrew簡稱brew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體
iOS簡單直播實現(二:推流)
推流用的是一個第三方的IFLiveKit框架。這個框架基於rtmp協議的,c語言和oc語言分開的非常清楚,對oc語言非常友好,使用起來相對簡單。 IFLiveKit內部集成了GPUIImage。內部實現了圖片渲染等美豔效果。減少了開發時候美豔效果的除錯。 需
【NoSql】Redis實踐篇-簡單demo實現(一)
Redis是一個key-value儲存系統。Redis的出現,很大程度補償了memcached這類key/value儲存的不足,在部分場合可以對關係資料庫起到很好的補充作用 Redis
資料結構篇:圖的遍歷(一:深度優先遍歷)
深度優先遍歷,也稱作深度優先搜尋,縮寫為DFS 深度優先遍歷從某個頂點出發,訪問此頂點,然後從v的未被訪問的鄰接點觸發深度優先便利圖,直至所有和v有路徑想通的頂點都被訪問到。 這樣我們一定就訪問到所有結點了嗎,沒有,可能還有的分支我們沒有訪問到,所以需要回溯(一般情況下都設定一個數組,來
《圖解HTTP》讀書筆記(一:網路基礎TCP/IP)
好書什麼時候開始讀都不晚。作為一個測試人員,是一定要掌握一些網路的基礎知識的。希望能夠邊讀書邊在這裡記錄筆記,便於加深理解以及日後查閱。 一、TCP/IP協議族 計算機與網路裝置要互相通訊,雙方必須基於相同的方法。比如,探測訊號目標、由誰先發起通訊、使用哪種語言進行通訊、怎樣結束通訊等規則需要事先確定。我
.NET windows服務(一:創建windows服務)
ati 如何 安裝程序 log 寫入 註意 pat 名稱 請求 引用地址:https://docs.microsoft.com/zh-cn/dotnet/framework/windows-services/how-to-create-windows-services
深入淺出React+Redux(一:React 元件的資料)
前言 “差勁的程式設計師操心程式碼,優秀的程式設計師操心資料結構和它們之間的關係 。 ” 一一L
Mac上搭建直播伺服器Nginx+rtmp
簡介 nginx是非常優秀的開源伺服器,用它來做hls或者rtmp流媒體伺服器是非常不錯的選擇,本人在網上整理了安裝流程,分享給大家並且作備忘。 步驟安裝 Homebrew簡稱brew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體,可以說Homebrew就是mac下
ios tableView那些事(一)建立一個簡單的tableView
工作也有半年多了!幾乎每個專案中的會用到tableview這個神奇而好用的控制元件,在學習和工作中都會看別人的部落格!對我有很大的幫助,就如同站在巨人的肩膀上的感覺吧 哈哈!於是決定重新開始寫部
android硬編碼h264資料,並使用rtp推送資料流,實現一個簡單的直播-MediaCodec(一)
寫在前面:我並非專業做流媒體的coder,對流媒體行業無比崇拜,只是做了幾年安卓車載ROM,對安卓AV開發算是略懂。本篇部落格是我對MediaCodec編解碼和rtp推流的一次嘗試,希望能給有需要的朋友一些細微的幫助,不喜勿噴,如果有不對的地方希望大神指正共
ASP.NET Core Web API下事件驅動型架構的實現(一):一個簡單的實現
很長一段時間以來,我都在思考如何在ASP.NET Core的框架下,實現一套完整的事件驅動型架構
Javascript基礎簡單匯總(一):元素獲取
問題 元素節點 all push 傳說 length [] nbsp 文檔 在頁面腳本中,如果要對頁面元素進行操作,那麽我們就要獲取到這個元素 那麽在獲取元素之前首先得要了解什麽是DOM(document object model) 在DOM,元素是以節點的形式表示的,每
多種排序算法的思路和簡單代碼的實現(一)
insert i++ 前後端 分享 size quicksort 執行 判斷 clas 就自己簡單的理解了一些排序算法(JAVA)思路和代碼分享給大家:歡迎大家進行交流。 直接插入排序,折半插入排序,冒泡排序,快速排序 1 public class Sort { 2
Android項目實戰(十六):QQ空間實現(一)—— 展示說說中的評論內容並有相應點擊事件
con toast short demo append 集合 obj parent 自帶 原文:Android項目實戰(十六):QQ空間實現(一)—— 展示說說中的評論內容並有相應點擊事件大家都玩QQ空間客戶端,對於每一個說說,我們都可以評論,那麽,對於某一條評論:
KVM虛擬化的四種簡單網絡模型介紹及實現(一)
_for only 應該 code eth tun x86_64 信息 dock KVM中的四種簡單網絡模型,分別如下:1、隔離模型:虛擬機之間組建網絡,該模式無法與宿主機通信,無法與其他網絡通信,相當於虛擬機只是連接到一臺交換機上。2、路由模型:相當於虛擬機連接到一臺路由
【Android】從無到有:手把手一步步教你使用最簡單的 Fragment(一)
轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/80515227 【本文適用讀者】 知道 Fragment 是什麼,不知
資料結構實現(一):動態陣列(C++版)
資料結構實現(一):動態陣列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 增加操作 2.2 刪除操作 2.3 修改操作 2.4 查詢操作 2.5 其他操作 3. 演算法複雜度分析
iOS研發助手DoraemonKit技術實現(一)
一、前言 一個比較成熟的App,經歷了多個版本的迭代之後,為了方便調式和測試,往往會積累一些工具來應付這些場景。最近我們組就開源了一款適用於iOS App線下開發、測試、驗收階段,內建在App中的工具集合。使用DoraemonKit,你無需連線電腦,就可以對於App的資訊進行快速的檢視。一鍵接入、使用方便,
JAVA高階基礎(8)---Set的典型實現(一):HashSet
HHashSet 注:更多詳細方法請自行在 API 上查詢 HashSet 是由hash表(hashMap)支援,不保證元素的迭代順恆久不變,允許存在null值,元素不允許重複,同時,不是執行緒安全的 HashSet是基於HashMap實現的。 &n