iOS開發(fā)-音視頻開發(fā)

一.學(xué)習(xí)背景

5G網(wǎng)絡(luò)作為第5代的移動(dòng)通信網(wǎng)絡(luò),它的網(wǎng)絡(luò)峰值傳播速度可1以達(dá)到10Gbps/s.這比4G的的傳輸速度快數(shù)百倍.舉個(gè)例子,整部超高畫質(zhì)電影下載可在1秒鐘之內(nèi)下載完成.

當(dāng)然,隨著5G技術(shù)的誕生,用在智能終端分享3D電影,游戲或者超高畫質(zhì)節(jié)目的時(shí)代已經(jīng)毫無懸念的向我們走來.

想必大家也逐步了解,國內(nèi)外的互聯(lián)網(wǎng)公司也已經(jīng)布局音視頻,3D技術(shù)方面的開發(fā)者招聘和相關(guān)產(chǎn)品研發(fā).目前落地推廣最普遍的就是直播類項(xiàng)目和小視頻類的項(xiàng)目.當(dāng)然未來的方向肯定不止如此.

1.2何為編碼?

編碼就是按照一定的格式記錄采集和量化后的數(shù)據(jù).

1.2.1 編碼中軟編碼和硬編碼的區(qū)別?

  • 硬編碼:硬編碼: 使用非CPU進(jìn)行編碼,例如使用GPU芯片處理
  • 軟編碼: 使用CPU來進(jìn)行編碼計(jì)算

1.2.2 軟編碼與硬編碼的區(qū)分?

軟編碼: 實(shí)現(xiàn)直接洽胶、簡單硬贯,參數(shù)調(diào)整方便赘来,升級(jí)易扬霜,但CPU負(fù)載重曙强,性能較硬編碼低,低碼率下質(zhì)量通常比硬編碼要好一點(diǎn)。

硬編碼:性能高,低碼率下通常質(zhì)量低于硬編碼器缸榛,但部分產(chǎn)品在GPU硬件平臺(tái)移植了優(yōu)秀的軟編碼算法(如X264)的,質(zhì)量基本等同于軟編碼兰伤。

讀者理解: 硬編碼,就是使用GPU計(jì)算,獲取數(shù)據(jù)結(jié)果,優(yōu)點(diǎn)速度快,效率高. 軟編碼,就是通過CPU來計(jì)算,獲取數(shù)據(jù)結(jié)果.

1.2.3 壓縮算法

壓縮算法分為2種,有損壓縮與無損壓縮.

  • 無損壓縮:解壓后的數(shù)據(jù)可以完全復(fù)原,在常用的壓縮格式中,無損壓縮使用頻次較低
  • 有損壓縮:解壓后數(shù)據(jù)不能完全復(fù)原,會(huì)丟失一部分信息.壓縮比越小,丟失的信息就會(huì)越多.信號(hào)還原的失真就會(huì)越大.

需要根據(jù)不同的場景(考慮因素包括存儲(chǔ)設(shè)備,傳輸網(wǎng)絡(luò)環(huán)境,播放設(shè)備等)選用不同的壓縮編碼算法.

二. 直播APP需求剖析

2.1 直播項(xiàng)目流程

在直播項(xiàng)目中,一般常見有8個(gè)步驟.

  • 音視頻采集
  • 視頻濾鏡
  • 音視頻編碼
  • 推流
  • 流媒體服務(wù)器處理
  • 拉流
  • 音視頻解碼
  • 音視頻播放

這個(gè)在開發(fā)者面試一些有意向或者目前業(yè)務(wù)中包含直播需求的公司,最為常見的面試題.不管在我們過往的工作經(jīng)驗(yàn)是否有直播或音視頻相關(guān)經(jīng)驗(yàn).這個(gè)一塊都是你必須能了解.希望大家可以簡單的了解.

2.2 相關(guān)框架的學(xué)習(xí)與使用場景

直播app架構(gòu)
采集視頻,音頻
  • 使用iOS原生框架 AVFoundation.framework
  • 視頻濾鏡處理
使用iOS原生框架 CoreImage.framework
  • 使用第三方框架 GPUImage.framework
  • CoreImage 與 GPUImage 框架比較:

在實(shí)際項(xiàng)目開發(fā)中,開發(fā)者更加傾向使用于GPUImage框架.

首先它在使用性能上與iOS提供的原生框架,并沒有差別;其次它的使用便利性高于iOS原生框架,最后也是最重要的GPUImage框架是開源的.而大家如果想要學(xué)習(xí)GPUImage框架,建議學(xué)習(xí)OpenGL ES,其實(shí)GPUImage的封裝和思維都是基于OpenGL ES

視頻\音頻編碼壓縮
  • 視頻: 使用FFmpeg,X264算法把視頻原數(shù)據(jù)YUV/RGB編碼成H264
  • 音頻: 使用fdk_aac 將音頻數(shù)據(jù)PCM轉(zhuǎn)換成AAC
  • 視頻: VideoToolBox框架
  • 音頻: AudioToolBox 框架
  • 硬編碼
  • 軟編碼
推流
  • 流媒體協(xié)議: RTMP\RTSP\HLS\FLV
  • 視頻封裝格式: TS\FLV
  • 音頻封裝格式: Mp3\AAC
  • 推流: 將采集的音頻.視頻數(shù)據(jù)通過流媒體協(xié)議發(fā)送到流媒體服務(wù)器
  • 推流技術(shù)
流媒體服務(wù)器
  • 數(shù)據(jù)分發(fā)
  • 截屏
  • 實(shí)時(shí)轉(zhuǎn)碼
  • 內(nèi)容檢測
拉流
  • 拉流: 從流媒體服務(wù)器中獲取音頻\視頻數(shù)據(jù)
  • 流媒體協(xié)議: RTMP\RTSP\HLS\FLV
音視頻解碼
  • 視頻: 使用FFmpeg,X264算法解碼
  • 音頻: 使用fdk_aac 解碼
  • 視頻: VideoToolBox框架
  • 音頻: AudioToolBox 框架
  • 硬解碼
  • 軟解碼
播放
  • ijkplayer,kxmovie 都是基于FFmpeg框架封裝的
  • ijkplayer 播放框架
  • kxmovie 播放框架
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末内颗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敦腔,更是在濱河造成了極大的恐慌均澳,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件符衔,死亡現(xiàn)場離奇詭異找前,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)柏腻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門纸厉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來系吭,“玉大人五嫂,你說我怎么就攤上這事】铣撸” “怎么了沃缘?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長则吟。 經(jīng)常有香客問我槐臀,道長,這世上最難降的妖魔是什么氓仲? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任水慨,我火速辦了婚禮,結(jié)果婚禮上敬扛,老公的妹妹穿的比我還像新娘晰洒。我一直安慰自己,他們只是感情好啥箭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布谍珊。 她就那樣靜靜地躺著,像睡著了一般急侥。 火紅的嫁衣襯著肌膚如雪砌滞。 梳的紋絲不亂的頭發(fā)上侮邀,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音贝润,去河邊找鬼绊茧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛题暖,可吹牛的內(nèi)容都是我干的按傅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胧卤,長吁一口氣:“原來是場噩夢啊……” “哼唯绍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枝誊,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤况芒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后叶撒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绝骚,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年祠够,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了压汪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡古瓤,死狀恐怖止剖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情落君,我是刑警寧澤穿香,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站绎速,受9級(jí)特大地震影響皮获,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纹冤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一洒宝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萌京,春花似錦雁歌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春较坛,著一層夾襖步出監(jiān)牢的瞬間印蔗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工丑勤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留华嘹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓法竞,卻偏偏與公主長得像耙厚,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岔霸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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