iOS開發-音視頻開發

2021-01-09 騰訊網

一.學習背景

5G網絡作為第5代的移動通信網絡,它的網絡峰值傳播速度可1以達到10Gbps/s.這比4G的傳輸速度快數百倍.舉個例子,整部超高畫質電影下載可在1秒鐘之內下載完成.

當然,隨著5G技術的誕生,用在智能終端分享3D電影,遊戲或者超高畫質節目的時代已經毫無懸念的向我們走來.

想必大家也逐步了解,國內外的網際網路公司也已經布局音視頻,3D技術方面的開發者招聘和相關產品研發.目前落地推廣最普遍的就是直播類項目和小視頻類的項目.當然未來的方向肯定不止如此.

那麼我們現在帶著問題來學習?

為何編碼?

何為編碼?

1.1 為何編碼?

從存儲角度和網絡傳輸以及通用性 3個角度,壓縮已經成了不可或缺的動作.壓縮編碼最基本的指標,就是壓縮比. 壓縮比通常都是小於1(如果等於或者大於1,是不是就失去了編碼的意義了.編碼的目的就是為了壓縮數據體量).

1.2 何為編碼?

編碼就是按照一定的格式記錄採樣和量化後的數據.

1.2.1編碼中軟編碼和硬編碼的區別?

硬編碼: 使用非CPU進行編碼,例如使用GPU晶片處理

軟編碼: 使用CPU來進行編碼計算.

1.2.2 軟編碼與硬編碼的區分?

軟編碼: 實現直接、簡單,參數調整方便,升級易,但CPU負載重,性能較硬編碼低,低碼率下質量通常比硬編碼要好一點。

硬編碼:性能高,低碼率下通常質量低於硬編碼器,但部分產品在GPU硬體平臺移植了優秀的軟編碼算法(如X264)的,質量基本等同於軟編碼。

作者理解:

硬編碼,就是使用GPU計算,獲取數據結果,優點速度快,效率高.

軟編碼,就是通過CPU來計算,獲取數據結果.

1.2.3 壓縮算法

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

無損壓縮:解壓後的數據可以完全復原,在常用的壓縮格式中,無損壓縮使用頻次較低

有損壓縮:解壓後數據不能完全復原,會丟失一部分信息.壓縮比越小,丟失的信息就會越多.信號還原的失真就會越大.

需要根據不同的場景(考慮因素包括存儲設備,傳輸網絡環境,播放設備等)選用不同的壓縮編碼算法.

二. 直播APP需求剖析

2.1 直播項目流程

在直播項目中,一般常見有8個步驟.

音視頻採集

視頻濾鏡

音視頻編碼

推流

流媒體伺服器處理

拉流

音視頻解碼

音視頻播放

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

2.2 相關框架的學習與使用場景

系統流程圖

採集視頻,音頻

1.使用iOS原生框架 AVFoundation.framework

視頻濾鏡處理

1.使用iOS原生框架 CoreImage.framework

2.使用第三方框架 GPUImage.framework

CoreImage 與 GPUImage 框架比較:

在實際項目開發中,開發者更加傾向使用於GPUImage框架.

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

視頻\音頻編碼壓縮

1.視頻: 使用FFmpeg,X264算法把視頻原數據YUV/RGB編碼成H264

2.音頻: 使用fdk_aac 將音頻數據PCM轉換成AAC

3.視頻: VideoToolBox框架

4.音頻: AudioToolBox 框架

5.硬編碼

6.軟編碼

推流

1.流媒體協議: RTMP\RTSP\HLS\FLV

2.視頻封裝格式: TS\FLV

3.音頻封裝格式: Mp3\AAC

4.推流: 將採集的音頻.視頻數據通過流媒體協議發送到流媒體伺服器

5.推流技術

流媒體伺服器

1.數據分發

2.截屏

3.實時轉碼

4.內容檢測

拉流

1.拉流: 從流媒體伺服器中獲取音頻\視頻數據

2.流媒體協議: RTMP\RTSP\HLS\FLV

音視頻解碼

1.視頻: 使用FFmpeg,X264算法解碼

2.音頻: 使用fdk_aac 解碼

3.視頻: VideoToolBox框架

4.音頻: AudioToolBox 框架

5.硬解碼

6.軟解碼

播放

ijkplayer,kxmovie 都是基於FFmpeg框架封裝的

1.ijkplayer 播放框架

2.kxmovie 播放框架

相關焦點

  • 音視頻技術開發周刊
    每周一期,縱覽音視頻技術領域的乾貨和新聞投稿:contribute@livevideostack.com。 https://mp.weixin.qq.com/s/ODOIv72pZxDEWDGOEZBWYA 音視頻前沿:新一代 AV1 視頻標準究竟是怎樣一種存在?
  • 音視頻技術開發周刊|172
    音視頻技術 關於主動降噪耳機,你想知道的一切 本文主要介紹反饋降噪(FB ANC) 的原理。 OTT/短視頻/線上教育/遠程協作/雲遊戲... 雲剪輯/線上視頻製作/AI視頻製作...... 當新的標準被應用到新領域、新的應用配備了新的標準、新的領域衍生了新的應用......音視頻技術人會帶來怎樣的技術革新,多媒體行業的後疫情時代又會催生出怎樣的新創?
  • 音視頻技術開發周刊|169
    在5G時代,視頻得益於網絡帶寬的提升,未來將成為主流的傳播媒介。越來越多的業務和應用將視頻化,直播化。大量互動的內容將通過5G以低延時的方式以視頻的形式傳輸。 在線視頻的基礎知識和實時流媒體入門 這篇演講來自於MUX,主要介紹了在線視頻的基礎知識介紹和實時流媒體入門,主持人為Phil,是MUX的多媒體流工程師。
  • 零基礎入門:實時音視頻技術基礎知識全面盤點
    本人在學習音視頻開發的過程中,深刻體會到了由於知識的分散、過渡斷層帶來的種種困惑和痛苦,因此希望通過自己的理解,可以把音視頻開發相關的知識總結出來,並形成系列文章,循序漸進,剖析各個環節,一則對自己所學做一個總結和鞏固,二則希望可以幫助想入門音視頻開發的開發者小夥伴們。本文是作者自已根據入門實時音視頻的親身經歷,對於基礎知識點的認知總結。
  • 音視頻開發之旅(15) OpenGL ES粒子系統 - 噴泉
    把點修改為紋理圖片下面我們就通過紋理圖片來把每個點繪製為一個點精靈關於紋理的使用如果不熟悉,請先閱讀[音視頻開發之旅(12) OpenGL ES之紋理]首先 修改片元著色器,添加2D紋理四、資料《OpenGL ES 3.0 編程指南》《OpenGL ES應用開發實踐指南》[粒子系統--煙花 [OpenGL-Transformfeedback]][Android製作粒子爆炸特效][OpenGL進階(六)-粒子系統][【OpenGL】Shader實例分析(七)- 雪花飄落效果]五、收穫了解粒子屬性和粒子系統
  • 交友直播APP源碼開發中,服務端與客戶端的環境搭建
    1、服務端在部署服務端環境其實包含很多東西的,最常用的web服務nginx,資料庫Mysql、Nosql,api開發最多的三種選擇:java環境,需要jdk,tomcat/jbossphp環境,需要安裝php,odplua環境,需要安裝lua、luajit考慮使用緩存技術,則主要包含redis和memcached。
  • 一套完整的直播系統開發的流程是怎麼樣的?
    直播熱潮尚未褪去,而直播系統開發究竟是如何實現的?那麼,一套完整的直播系統開發的流程是怎麼樣的?1、音視頻採集採集是播放環節中的第一環,iOS 系統因為軟硬體種類不多,硬體適配性較好,所以比較簡單。Android 則不同,市面上硬體機型非常多,難以做到一個庫適配所有硬體。2、音視頻處理美顏系統是現在直播系統中所必需的一項。
  • 10個必需的iOS開發工具和資源
    界面總不是一件很容易事,尤其是iPhone/iPad的界面,做過iOS開發的程式設計師,一定會感到開發iPhone/iPad的界面是一件多麼不容易的事。下面的文章來自10 Essential iOS Developer Tools & Resources,這個文章介紹了十個iOS開發的基礎性工具和資源,其一定會很有效地幫你做iOS的開發。
  • 直播系統源碼開發:關於安卓開發工具和obs直播推流
    尤其對於今年來說,購物直播行業的迅速發展,對直播系統源碼開發的需求進一步擴大,同時對直播源碼開發技術也有了新的要求。OBS主要線程共五個:1.主線程:主要做一些初始化工作和UI處理; 2.視頻渲染線程:渲染視頻到窗口; 3.視頻編碼線程:編碼原始視頻
  • 直播+電商碰撞起火花,電商直播系統源碼開發新模式
    從圖文到動圖到短視頻,再到直播,似乎都在印證電商是內容變現的最快途徑。視頻直播與電商的結合將是大勢所趨,網際網路電商盛行的時代,從網絡上獲取粉絲的成本越來越高,創造新穎獨特的電商模式成為企業的迫切所需。(ios開發腳本工具:xcode);3、框架是thinkphp5.0版本 php用的
  • 找app開發公司要注意什麼問題,西安軟體外包公司
    現在移動網際網路蓬勃發展,企業的網絡營銷已經從pc端轉移到移動端,給大家舉一個例子,現在我們用的微博裡有廣告,微信裡有廣告,抖音裡還有廣告,平時一些音樂、視頻軟體裡的廣告更是多,除過一些品牌推廣信息廣告之外,還有app自身的一些增值服務廣告,從而也說明了,現在app信息推廣對於企業營銷來說有很重要的作用
  • 蘋果手機充電提示音怎麼弄 在哪裡能找到設置的位置
    蘋果手機充電提示音怎麼弄 在哪裡能找到設置的位置時間:2020-09-22 12:32   來源:114手機樂園   責任編輯:凌君 川北在線核心提示:原標題:蘋果手機充電提示音怎麼弄 在哪裡能找到設置的位置 ios14充電提示音可以自己設置,那麼在哪裡能找到設置的位置?
  • 短視頻平臺發展優勢,短視頻系統開發需要考慮的細節問題
    短視頻系統開發優勢分析:1、快速布局市場隨著各大短視頻平臺紛紛進入這一市場3、個性化視頻服務功能無論哪個短視頻直播軟體,如果想要快速吸引目標用戶的注意,它必須具有強大且便捷的服務功能。因此,本平臺依靠網際網路技術的力量進行創新,為用戶提供多種短視頻拍攝服務,如美容拍攝、音樂添加、場景模擬、過濾效果等。
  • 短視頻app開發,有哪些只有行內人才知道的事?
    短視頻app因其平臺內內容僅限15秒-60秒而更適合如今高速運轉、休閒時間碎片化的現代社會。因其被降低的入門門檻、炫酷易上手的特效而給了更多普通用戶曝光的機會,讓每一個人都能在更大的平臺上展現自我,因此也更受到用戶的喜愛。也正因此,短視頻app開發行業也逐漸興起。
  • 遊戲開發完整學習路線!就是一門實時渲染的藝術!
    如果你想從事移動平臺的遊戲開發,Android主流JAVA語言,iOS主流Object-C語言,那麼你就要去學習這個平臺主流的語言,而在個人主機上主流的遊戲開發語言現在包括以後很長時間也還是C++。 但是並不是所不同平臺的遊戲開發,就毫無共通之處,學了這個到了另一個平臺就無用了。
  • 仿微信的IM聊天時間顯示格式(含iOS/Android/Web實現)[圖文+源碼]
    ]》《經典書籍《UNIX網絡編程》最全下載(卷1+卷2、中文版+英文版)[附件下載]》《音視頻開發理論入門書籍之《視頻技術手冊(第5版)》[附件下載]》《國際電聯H.264視頻編碼標準官方技術手冊(中文版)[附件下載]》《Apache MINA2.0 開發指南(中文版)[附件下載]》《網絡通訊數據抓包和分析工具 Wireshark
  • 應該如何開發幼兒的左右腦?
    傳統的早期教育注重智力開發,專注於開發幼兒的左腦潛能,而最近有些早教機構打著「開發幼兒右腦潛能」的旗號招攬生源,著實吸引了一些幼兒家長的眼球,但是理智的教育專家們認為,既然人的大腦存在著左右功能分區,那麼人的大腦必須獲得均衡發展,才能全面開發幼兒的潛能,因此,全腦開發的教育理念應運而生了。方方的爸爸媽媽也覺得全腦開發的教育更合理,對孩子的成長更有利。但是,他們不知道該如何開發幼兒的左右腦。
  • 佳能開發出高準確度人群計數視頻分析技術
    集微網消息(文/Yuna),據Impress Watch網站報導,12月19日,佳能宣布開發了一種視頻分析技術,利用深度學習技術通過網絡攝像機對數千人的人群進行了實時人數統計。佳能新開發的圖像分析技術能夠檢測人的頭部,在人群擁擠的情況下依然能準確計算出人數,從而統計某一區域內人員數量及流動情況。為了增強攝像機安裝位置的靈活性,佳能為攝像機配備了寬廣的可視角度,可以在沒有GPU的普通電腦上進行操作,降低了安裝和運行成本。
  • 坑梓智能血氧儀app開發科技公司
    坑梓智能血氧儀app開發科技公司深圳馳騁網絡一站式服務,提供各行業解決方案:小程定製開發、APP定製、android公眾號小程序、ios安卓H5應用開發,APP開發,小程序開發,我們是專業的APP開發公司 方便、快捷、省心省力,不斷提升用戶體驗! 製作流程的每一步都以您的需求出發,更加具有個性化!
  • 深圳市龍崗app訂製開發價格優惠
    深圳市龍崗app訂製開發價格優惠深圳馳騁網絡一站式服務,提供各行業解決方案:小程定製開發、APP定製、android公眾號小程序、ios安卓H5應用開發,APP開發,小程序開發,我們是專業的APP開發公司 方便、快捷、省心省力,不斷提升用戶體驗! 製作流程的每一步都以您的需求出發,更加具有個性化!