iOS 視頻播放流程及原理

楔子

筆者iOS開發(fā)工程師箱季,現(xiàn)在很多應(yīng)用場景下都會用到視頻播放技術(shù)涯穷,當(dāng)然iOS APP也不例外,這是寫這篇文章的背景藏雏。

最近我一個同樣做iOS工程師的同學(xué)說他最近面試了一個人拷况,簡歷里寫著做過視頻播放,就問他基本的視頻播放原理是什么掘殴,結(jié)果此人一臉懵逼狀什么也沒答上來赚瘦,只是說會用iOS SDK下調(diào)用視頻播放的幾個API。我同學(xué)跟我說他就是想問問此人計算機基礎(chǔ)怎么樣奏寨,其實只要應(yīng)聘者能說出“解碼”兩個字都會讓他滿意的起意,可惜他卻什么也沒說出來。這又讓筆者想起幾年前臨近大學(xué)畢業(yè)時同寢室友校招面試時也遇到了同樣的問題病瞳,他也做過視頻播放揽咕,人家就問他其中有兩個問題,一是如果現(xiàn)在有一種非常奇怪的格式的視頻讓你播放你該怎么辦套菜,他也是懵逼了亲善。二是如果現(xiàn)在有一個1G的超大視頻讓你播放,你又該怎么辦逗柴,他直接就傻了蛹头,面試自然折戟沉沙了。

正題

事實上僅就iOS APP來講戏溺,要想做出視頻播放的功能來渣蜗,的確是調(diào)用AVFoundation框架下幾個常用的API就可以了,iOS 9 之前常用的是MPMoviePlayerController ,ios 9 之后推薦使用流播放技術(shù)的AVPlayer于购,可是就像常說的API普通的程序員都會調(diào)袍睡,可是真正有專業(yè)基礎(chǔ)和想進階就要知其然還要知其所以然,有專業(yè)基礎(chǔ)的和半路出家的程序員的最大區(qū)別也正在于此肋僧,這也就成了本片文章寫作的契機斑胜,下面這些內(nèi)容也是筆者整合了一些自己的一些積累,主要來源于我們有合作關(guān)系的一家叫保利威視的視頻解決方案提供商嫌吠,希望對大家有幫助止潘,水平有限,有不足之處還請大家不吝賜教辫诅。

視音頻技術(shù)主要包含以下幾點:** 封裝技術(shù)凭戴,視頻壓縮編碼技術(shù)以及音頻壓縮編碼技術(shù)。如果考慮到網(wǎng)絡(luò)傳輸?shù)脑捒话€包括流媒體協(xié)議技術(shù)么夫。**

視頻播放器播放網(wǎng)上的視頻文件者冤,需要經(jīng)過以下幾個步驟:** 解協(xié)議,解封裝档痪,解碼視音頻涉枫,視音頻同步**。如果播放本地文件則不需要解協(xié)議腐螟,為以下幾個步驟:解封裝愿汰,解碼視音頻,視音頻同步乐纸。過程如圖所示衬廷。

視頻播放流程圖.jpg
  • 解協(xié)議

解協(xié)議的作用,就是將流媒體協(xié)議的數(shù)據(jù)汽绢,解析為標(biāo)準(zhǔn)的相應(yīng)的封裝格式數(shù)據(jù)吗跋。視音頻在網(wǎng)絡(luò)上傳播的時候,常常采用各種流媒體協(xié)議庶喜,例如HTTP小腊,RTMP救鲤,或是MMS等等久窟。這些協(xié)議在傳輸視音頻數(shù)據(jù)的同時,也會傳輸一些信令數(shù)據(jù)本缠。這些信令數(shù)據(jù)包括對播放的控制(播放斥扛,暫停,停止)丹锹,或者對網(wǎng)絡(luò)狀態(tài)的描述等稀颁。解協(xié)議的過程中會去除掉信令數(shù)據(jù)而只保留視音頻數(shù)據(jù)。例如楣黍,采用RTMP協(xié)議傳輸?shù)臄?shù)據(jù)匾灶,經(jīng)過解協(xié)議操作后,輸出FLV格式的數(shù)據(jù)租漂。

  • 解封裝

解封裝的作用阶女,就是將輸入的封裝格式的數(shù)據(jù),分離成為音頻流壓縮編碼數(shù)據(jù)和視頻流壓縮編碼數(shù)據(jù)哩治。封裝格式種類很多秃踩,例如MP4,MKV业筏,RMVB憔杨,TS,F(xiàn)LV蒜胖,AVI等等消别,它的作用就是將已經(jīng)壓縮編碼的視頻數(shù)據(jù)和音頻數(shù)據(jù)按照一定的格式放到一起抛蚤。例如,F(xiàn)LV格式的數(shù)據(jù)寻狂,經(jīng)過解封裝操作后霉颠,輸出H.264編碼的視頻碼流和AAC編碼的音頻碼流。

  • 解碼

解碼的作用荆虱,就是將視頻/音頻壓縮編碼數(shù)據(jù)蒿偎,解碼成為非壓縮的視頻/音頻原始數(shù)據(jù)。音頻的壓縮編碼標(biāo)準(zhǔn)包含AAC怀读,MP3诉位,AC-3等等,視頻的壓縮編碼標(biāo)準(zhǔn)則包含H.264菜枷,MPEG2苍糠,VC-1等等。解碼是整個系統(tǒng)中最重要也是最復(fù)雜的一個環(huán)節(jié)啤誊。通過解碼岳瞭,壓縮編碼的視頻數(shù)據(jù)輸出成為非壓縮的顏色數(shù)據(jù),例如YUV420P蚊锹,RGB等等瞳筏;壓縮編碼的音頻 數(shù)據(jù)輸出成為非壓縮的音頻抽樣數(shù)據(jù),例如PCM數(shù)據(jù)牡昆。

  • 視音頻同步

視音頻同步的作用姚炕,就是根據(jù)解封裝模塊處理過程中獲取到的參數(shù)信息,同步解碼出來的視頻和音頻數(shù)據(jù)丢烘,并將視頻音頻數(shù)據(jù)送至系統(tǒng)的顯卡和聲卡播放出來柱宦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市播瞳,隨后出現(xiàn)的幾起案子掸刊,更是在濱河造成了極大的恐慌,老刑警劉巖赢乓,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忧侧,死亡現(xiàn)場離奇詭異,居然都是意外死亡骏全,警方通過查閱死者的電腦和手機苍柏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姜贡,“玉大人试吁,你說我怎么就攤上這事。” “怎么了熄捍?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵烛恤,是天一觀的道長。 經(jīng)常有香客問我余耽,道長缚柏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任碟贾,我火速辦了婚禮币喧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘袱耽。我一直安慰自己杀餐,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布朱巨。 她就那樣靜靜地躺著史翘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冀续。 梳的紋絲不亂的頭發(fā)上琼讽,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音洪唐,去河邊找鬼钻蹬。 笑死,一個胖子當(dāng)著我的面吹牛桐罕,可吹牛的內(nèi)容都是我干的脉让。 我是一名探鬼主播桂敛,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼功炮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了术唬?” 一聲冷哼從身側(cè)響起薪伏,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎粗仓,沒想到半個月后嫁怀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡借浊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年塘淑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚂斤。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡存捺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捌治,我是刑警寧澤岗钩,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站肖油,受9級特大地震影響兼吓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜森枪,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一视搏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧县袱,春花似錦凶朗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至杂数,卻和暖如春宛畦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背揍移。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工次和, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人那伐。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓踏施,卻偏偏與公主長得像,于是被迫代替她去往敵國和親罕邀。 傳聞我的和親對象是個殘疾皇子畅形,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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