【如何快速的開(kāi)發(fā)一個(gè)完整的iOS直播app】(推流篇)

前言

在看這篇之前,如果您還不了解直播原理兢交,請(qǐng)查看這篇文章如何快速的開(kāi)發(fā)一個(gè)完整的iOS直播app(原理篇)

開(kāi)發(fā)一款直播app酣藻,肯定需要流媒體服務(wù)器藐鹤,本篇主要講解直播中流媒體服務(wù)器搭建,并且講解了如何利用FFMPEG編碼和推流登疗,并且介紹了FFMPEG常見(jiàn)命令排截。

如果喜歡我的文章,可以關(guān)注我微博:袁崢Seemygo

效果

Snip20161018_20.png

一谜叹、安裝Homebrew

Homebrew簡(jiǎn)稱brew匾寝,是Mac OSX上的軟件包管理工具,能在Mac中方便的安裝軟件或者卸載軟件荷腊。

1艳悔、打開(kāi)終端, 查看是否已經(jīng)安裝了Homebrew, 直接終端輸入命令
* man命令:manual(手冊(cè))的縮寫,可以查看某一命令的幫助信息女仰,比如git,brew,順便可以查看有沒(méi)有按照這個(gè)命令.

man brew
man brew.png

2猜年、 執(zhí)行命令抡锈,安裝Homebrew

  • 執(zhí)行命令后,需要按回車乔外,并且需要輸入電腦密碼床三。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrew.png

二、利用安裝nginx

Nginx:Nginx是一個(gè)非常出色的HTTP服務(wù)器杨幼,其特點(diǎn)是占有內(nèi)存少撇簿,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好差购。

  1. 從github下載Nginx到本地,增加home-brew對(duì)nginx的擴(kuò)展
brew tap homebrew/nginx
brew tap.png

2.安裝Nginx服務(wù)器和rtmp模塊

brew install nginx-full --with-rtmp-module
Snip20161017_6.png

3.查看是否安裝成功
在終端開(kāi)啟nginx服務(wù)器四瘫,輸入一下命令

nginx
  • nginx:開(kāi)啟nginx服務(wù)器

在瀏覽器地址欄輸入:http://localhost:8080 (直接點(diǎn)擊)
如果出現(xiàn)下圖, 則表示安裝成功

Snip20161017_7.png

三、配置rtmp

1.查看nginx配置文件安裝在哪

brew info nginx-full
Snip20161022_3.png

Snip20161022_4.png

2.用xcode打開(kāi)配置文件欲逃,滾動(dòng)到最后面(最后一個(gè)}后面即可找蜜,不能在{}里面),添加一下代碼稳析,進(jìn)行配置洗做,最后記得保存

Snip20161022_5.png
rtmp {
    server {
        listen 1990;
        application liveApp {
            live on;
            record off;
        }
    }
}

Snip20161017_11.png
  • application:流媒體上應(yīng)用名稱,可以隨意填
  • record off:圖片有誤彰居,不記錄數(shù)據(jù)

3.重新加載nginx的配置文件

nginx -s reload

四诚纸、安裝ffmepg進(jìn)行推流

brew install ffmpeg
Snip20161017_10.png

五、使用ffmepg推流測(cè)試

ffmpeg -re -i (視頻全路徑) -vcodec copy -f flv (rtmp路徑

ffmpeg -re -i /Users/yuanzheng/Desktop/02-如何學(xué)習(xí)項(xiàng)目.mp4 -vcodec copy -f flv rtmp://localhost:1990/liveApp/room

  • 需要跟配置的一一對(duì)應(yīng)裕菠,端口咬清,應(yīng)用名稱,room可以隨便寫
  • 延時(shí):發(fā)送流媒體的數(shù)據(jù)的時(shí)候需要延時(shí)奴潘。不然的話旧烧,F(xiàn)Fmpeg處理數(shù)據(jù)速度很快,瞬間就能把所有的數(shù)據(jù)發(fā)送出去画髓,流媒體服務(wù)器是接受不了的掘剪。因此需要按照視頻實(shí)際的幀率發(fā)送數(shù)據(jù)
  • -re: 一定要加,代表按照幀率發(fā)送奈虾,否則ffmpeg會(huì)一股腦地按最高的效率發(fā)送數(shù)據(jù)
  • -i : 輸入文件
  • -vcodec copy: 強(qiáng)制使用codec編解碼方式夺谁,要加,否則ffmpeg會(huì)重新編碼輸入的H.264裸流
  • -f 強(qiáng)制轉(zhuǎn)換為什么格式肉微,后接格式
  • ffmpeg參數(shù)中文詳細(xì)解釋

六匾鸥、使用VLC播放rtmp推流

1.下載VLC

2.打開(kāi)VLC,輸入直播地址,cmd + N

Snip20161018_15.png
Snip20161018_16.png
![Uploading Snip20161018_20_411856.png . . .]

七碉纳、用ffmpeg抓取桌面以及攝像頭推流進(jìn)行直播

1.首先查看ffmpeg是否支持對(duì)應(yīng)的設(shè)備勿负,在OSX下面,Video和Audio設(shè)備使用的是avfoundation劳曹,所以可以使用avfoundation來(lái)查看

ffmpeg -f avfoundation -list_devices true -i ""
Snip20161018_13.png

2.抓取桌面和攝像頭進(jìn)行推流

ffmpeg -f avfoundation -framerate 30 -i "1:0" -f avfoundation -framerate 30 -video_size 640x480 -i "0" -c:v libx264 -preset slow -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1  -f flv rtmp://localhost:1990/liveApp/room

  • -f avfoundation 轉(zhuǎn)換為avfoundation
  • -framerate 30 : 設(shè)置幀率 30
  • -i "1:0" : 設(shè)置輸出奴愉,視頻:Capture screen 音頻:Built-in Microphone
  • -f avfoundation -framerate 30 -video_size 640x480 : 設(shè)置幀率和視頻尺寸
  • -c:v libx264 設(shè)置視頻編碼琅摩,H.264編碼 優(yōu)點(diǎn)是同等清晰度,視頻文件更小 缺點(diǎn)就是轉(zhuǎn)換慢
  • -c:v flv 標(biāo)準(zhǔn)FLV編碼 這個(gè)好處是速度快 清晰度高的話 視頻文件會(huì)比較大
  • -preset slow 使用慢速模式 延遲長(zhǎng) 清晰度高
  • ffmpeg的轉(zhuǎn)碼延時(shí)測(cè)試與設(shè)置優(yōu)化
  • -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10':給視頻打水印
  • -acodec libmp3lame 強(qiáng)制指定音頻處理模式
  • -ac 1 聲道選擇
  • -ar 44100 音頻赫茲
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锭硼,一起剝皮案震驚了整個(gè)濱河市房资,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌檀头,老刑警劉巖轰异,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異暑始,居然都是意外死亡溉浙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門蒋荚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人馆蠕,你說(shuō)我怎么就攤上這事期升。” “怎么了互躬?”我有些...
    開(kāi)封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵播赁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吼渡,道長(zhǎng)容为,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任寺酪,我火速辦了婚禮坎背,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寄雀。我一直安慰自己得滤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布盒犹。 她就那樣靜靜地躺著懂更,像睡著了一般。 火紅的嫁衣襯著肌膚如雪急膀。 梳的紋絲不亂的頭發(fā)上沮协,一...
    開(kāi)封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音卓嫂,去河邊找鬼慷暂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛命黔,可吹牛的內(nèi)容都是我干的呜呐。 我是一名探鬼主播就斤,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蘑辑!你這毒婦竟也來(lái)了洋机?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤洋魂,失蹤者是張志新(化名)和其女友劉穎绷旗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體副砍,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衔肢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豁翎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片角骤。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖心剥,靈堂內(nèi)的尸體忽然破棺而出邦尊,到底是詐尸還是另有隱情,我是刑警寧澤优烧,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布蝉揍,位于F島的核電站,受9級(jí)特大地震影響畦娄,放射性物質(zhì)發(fā)生泄漏又沾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一熙卡、第九天 我趴在偏房一處隱蔽的房頂上張望杖刷。 院中可真熱鬧,春花似錦驳癌、人聲如沸挺勿。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)不瓶。三九已至,卻和暖如春灾杰,著一層夾襖步出監(jiān)牢的瞬間蚊丐,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工艳吠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留麦备,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓挚歧,卻偏偏與公主長(zhǎng)得像空扎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子现喳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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