Ios-視頻直播-知識點匯總-持續(xù)更新

最近公司要求做視頻直播,之前工作幾年,視頻一直都是弱項,沒怎么接觸過,現(xiàn)在正好有機(jī)會深入的去了解一下,記錄一些遇到的坑和需要用到的東西.

~公司要求,用HLS協(xié)議,要求可以播放m3u8格式的,當(dāng)時一聽一臉懵逼,什么鬼

~查詢的過程中,參考了很多同行的博客,有很多知識點都很分散,也有很多Demo,第三方SDK,下載不能用等等,再此匯總一下,方便大家參考



知識點:

下面的知識點還有術(shù)語,在查詢文檔的過程中,可能會經(jīng)常遇到

M3U8:可以做多碼率的適配,根據(jù)網(wǎng)絡(luò)帶寬,客戶端會選擇一個適合自己碼率的文件進(jìn)行播放,保證視頻流的流暢。

1.傳輸協(xié)議:

HLS:HTTP Live Streaming是一個由蘋果公司提出的基于HTTP的流媒體 網(wǎng)絡(luò)傳輸協(xié)議。服務(wù)器要求低,因為涉及到切片,延時會比較大,需要了解TS流

RTSP:攝像頭功能

RTMP:看下它與流媒體服務(wù)器交互的過程,RTMP協(xié)議的默認(rèn)端口是1935,采用TCP協(xié)議。并且需要了解FLV的封裝格式

RTP與RTCP等


2.視頻推流與視頻拉流工作過程解析

視頻推流端:就是將采集到的音頻,視頻數(shù)據(jù)通過流媒體協(xié)議發(fā)送到流媒體服務(wù)器


2.1 采集音視頻數(shù)據(jù)

iOS平臺上采集音視頻數(shù)據(jù),需要使用AVFoundation.Framework框架,從captureSession會話的回調(diào)中獲取音頻,視頻數(shù)據(jù)


2.2 硬編碼,軟編碼音視頻數(shù)據(jù)

軟編碼就是利用CPU資源來壓縮音視頻數(shù)據(jù),硬編碼與之相反。

軟編碼的話,現(xiàn)在廣泛采用FFmpeg庫結(jié)合編碼庫來實現(xiàn),F(xiàn)Fmpeg+X624來編碼視頻數(shù)據(jù)YUV/RGB輸出H264數(shù)據(jù),

FFmpeg+fdk_aac來編碼音頻數(shù)據(jù)PCM輸出AAC數(shù)據(jù)。


2.3 根據(jù)所選流媒體協(xié)議封包音視頻數(shù)據(jù)將音頻,視頻打包成packet


2.4 與服務(wù)器交互發(fā)送封包數(shù)據(jù)

根據(jù)所選流媒體協(xié)議,發(fā)送相應(yīng)指令連接服務(wù)器,連接服務(wù)器成功后,就可以發(fā)送packet數(shù)據(jù)了


3.拉流

拉流,就是從流媒體服務(wù)器獲取音頻,視頻數(shù)據(jù)


3.1解析協(xié)議

播放器端根據(jù)URL解析所用的流媒體協(xié)議(RTMP,HLS)


3.2解封裝

解封裝,就是demux的過程,從容器格式(FLV,TS)中,分離出音視頻數(shù)據(jù)


3.3解碼

解碼,就是把獲取到的數(shù)據(jù)解壓縮,恢復(fù)成原始數(shù)據(jù)。解碼就是將H264變成YUV,AAC變成PCM。

解碼可以使用軟解碼,硬解碼。

軟解碼就是利用CPU資源去解壓縮數(shù)據(jù),采用的方式是FFmpeg解碼。

硬解碼,對于iOS平臺來說,可以使用VideoToolbox.Framework(該框架只能在iOS 8.0及以上系統(tǒng)使用)

硬解碼視頻數(shù)據(jù)


3.4 渲染數(shù)據(jù)

采用OpenGL渲染YUV數(shù)據(jù),呈現(xiàn)視頻畫面。將PCM送入設(shè)備的硬件資源播放,產(chǎn)生聲音。

iOS播放流式音頻,使用Audio Queue 的方式,即,利用AudioToolbox.Framework 框架


上面就是一些簡單的知識點,匯總了一些,現(xiàn)在給大家推薦一些,DEMO和SDK,供大家參考

先說第三方SDK:

1.融云,http://www.rongcloud.cn/live

下載下來好用,調(diào)用也很簡單,集成很快,就是有點貴,要收費的哦,界面類似于,市面上大部分直播app,豎屏,有聊天室,可以送禮物等,不過不符合公司需求,pass


2.暴風(fēng)云直播, http://www.baofengcloud.com/apisdk/sdk/live/iossdk.html

不好用,大家可以去試試


3.網(wǎng)易云直播,http://dev.netease.im/docs?doc=devfunc_LiveStreaming

好像是收費的,價格還不便宜,一般公司可能也不會用,功能很強(qiáng)大,不符合需求,pass


4.騰訊直播,https://www.qcloud.com/solution/video.html

同樣收費,簡單的看了一下,功能很強(qiáng)大,不過還是不符合需求


剩下的SDK還有非常多,就不依依介紹了,更多資料復(fù)制下面的網(wǎng)站查看,有大神總結(jié)的很到位了

http://www.ccidnet.com/2016/0606/10143020.shtml


Demo:

雖然市面上的SDK很多,不過還是沒有特別符合需求的,所以就只能參考大神寫的Demo了

下面都是每個demo,都是經(jīng)測試可以用的,不過注意,不是直播,大家可以參考參考原理,找自己需要的東西,替換url進(jìn)行測試

1.http://code.cocoachina.com/view/129748

2.http://code.cocoachina.com/view/128253

兩個都是基于AVplayer寫的

3.http://code.cocoachina.com/view/128343?

基于MediaPlayer寫的?


還有很多就不舉例,以上這3個demo,都是很輕量級的,在她們的基礎(chǔ)上稍作修改就可以用了.

好壞就不做評價了,大家自己體會

另外說一句,如果要做功能很復(fù)雜的直播,最好用SDK


常用直播源

鳳凰中文,http://zv.3gv.ifeng.com/zhongwen800k.m3u8

香港衛(wèi)視,http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8

如果還想要其他的網(wǎng)站:直播源大全


如果想了解更多的m3u8的資料:

http://blog.csdn.net/langeldep/article/details/8603045


iOS直播類App開發(fā)流程分解:

http://blog.sina.com.cn/s/blog_aa7beba30102w8ws.html



以上內(nèi)容,持續(xù)更新中,如有寫錯的地方,請指正,大家一起進(jìn)步

目前正在搭建框架中~~~~~~~~~~~~~~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,958評論 2 373

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