Mac上搭建直播服務(wù)器Nginx+rtmp,實(shí)現(xiàn)手機(jī)推流、拉流

轉(zhuǎn)載自http://www.cnblogs.com/jys509/p/5649066.html

簡介

nginx是非常優(yōu)秀的開源服務(wù)器,用它來做hls或者rtmp流媒體服務(wù)器是非常不錯的選擇,本人在網(wǎng)上整理了安裝流程,分享給大家并且作備忘。

步驟安裝

1、安裝Homebrow

Homebrew簡稱brew,是Mac OSX上的軟件包管理工具,能在Mac中方便的安裝軟件或者卸載軟件,可以說Homebrew就是mac下的apt-get、yum神器

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

如果已經(jīng)安裝過,而想要卸載:

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

2、安裝Nginx服務(wù)器

增加對nginx的擴(kuò)展;也就是從github上下載,home-brew對ngixnx的擴(kuò)展

brew tap homebrew/nginx

3、安裝Nginx服務(wù)器和rtmp模塊

brew install nginx-full --with-rtmp-module

這個安裝,耗時(shí)相對來說比較長。通過操作以上步驟nginx和rtmp模塊就安裝好了,下面開始來配置nginx的rtmp模塊。

首先來看看我們的nginx安裝在哪里

brew info nginx-full

執(zhí)行上面的命令后我們可以看到信息

nginx安裝所在位置/usr/local/Cellar/nginx-full/1.10.1/bin/nginx

nginx配置文件所在位置/usr/local/etc/nginx/nginx.conf

nginx服務(wù)器根目錄所在位置/usr/local/var/www

執(zhí)行命令 ,測試下是否能成功啟動nginx服務(wù)

nginx

命令行如下圖所示

在瀏覽器地址欄輸入:http://localhost:8080(直接點(diǎn)擊)

出現(xiàn)Welcome to nginx ,代表nginx安裝成功了。

4、配置rtmp

用Xcode打開nginx.conf, 找到/usr/local/etc/nginx/nginx.conf文件,拖入到Dock中的Xcode,就可以打開.

或者打開Finder Shift + command + G前往,用記事本工具打開nginx.conf.


說明:

rtmp是協(xié)議名稱

server 說明內(nèi)部中是服務(wù)器相關(guān)配置

listen 監(jiān)聽的端口號, rtmp協(xié)議的默認(rèn)端口號是1935

application 訪問的應(yīng)用路徑是 zbcs

live on; 開啟實(shí)時(shí)

record off; 不記錄數(shù)據(jù)

5. 保存文件后,重新加載nginx的配置文件(這一步很重要)

nginx -s reload

6. 安裝ffmepg工具

brew install ffmpeg

安裝這個需要等一段時(shí)間, 這時(shí)你可以準(zhǔn)備一個視頻文件作為來推流,然后安裝一個支持rtmp協(xié)議的視頻播放器.Mac下可以用VLC(下載)

7、通過ffmepg命令進(jìn)行推流

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是上面的配置文件中,配置的應(yīng)用的路徑名稱;后面的room可以隨便寫。

推流界面:

8. 驗(yàn)證視頻

然后電腦上打開vlc這個播放器軟件 點(diǎn)擊File---->Open Network 在彈出來的框中選擇Network然后輸入U(xiǎn)RL:

rtmp://localhost:1935/zbcs/room

雙擊播放

播放界面

報(bào)錯處理

1.ffmepg命令推流的時(shí)候,提示連接失敗。[tcp @ 0x7ff162504b60] Connection to tcp://localhost:1935 failed (Connection refused), trying next address

出現(xiàn)這個錯,是因?yàn)榕渲昧薾ginx.conf后,需要重啟nginx。輸入命令重啟后就沒有問題了

nginx -s reload

2.安裝完nginx后,在瀏覽器地址欄輸入:http://localhost:8080顯示打不開網(wǎng)頁

解決方式:由于安裝后nginx服務(wù)器,有時(shí)需要等上幾分鐘才生效。如果還不生效,測試下是否能成功啟動nginx服務(wù),命令

nginx

具體請參考“步驟安裝”第三點(diǎn)。

以上是把本地的視頻文件推流到服務(wù)器然后利用VLC進(jìn)行播放,下面是利用LFLiveKit

進(jìn)行真機(jī)推流:

1.首先先倒入LFLiveKit,可以用pod:pod'LFLiveKit'


獲取自己電腦地址:

自己電腦地址

_session= [[LFLiveSessionalloc]initWithAudioConfiguration:[LFLiveAudioConfigurationdefaultConfiguration]videoConfiguration:[LFLiveVideoConfigurationdefaultConfigurationForQuality:LFLiveVideoQuality_Medium2]];

//設(shè)置代理

_session.delegate=self;

_session.running=YES;

_session.preView=self.view;

//開啟后置攝像頭,

self.session.captureDevicePosition=AVCaptureDevicePositionBack;

LFLiveStreamInfo*stream = [LFLiveStreamInfonew];

//如果是跟我blog教程搭建的本地服務(wù)器,記得填寫你電腦的IP地址

stream.url=@"rtmp://71.0.0.174:1935/rtmplive/room";

[self.sessionstartLive:stream];

打開手機(jī)直播后,然后在電腦上打開VLC(同上),就能實(shí)現(xiàn)手機(jī)推流,在電腦上拉流播放了!!(注:手機(jī)需要和電腦連接同一網(wǎng)絡(luò)!)

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

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

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