成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS直播類APP開發流程解析(內附源碼詳解)

移動開發
個人認為要想把直播從零開始做出來,絕對是牛逼中的牛逼,大牛中的大牛,因為直播中運用到的技術難點非常之多,視頻/音頻處理,圖形處理,視頻/音頻壓縮,CDN分發,即時通訊等技術,每一個技術都夠學幾年的。

前言

個人認為要想把直播從零開始做出來,絕對是牛逼中的牛逼,大牛中的大牛,因為直播中運用到的技術難點非常之多,視頻/音頻處理,圖形處理,視頻/音頻壓縮,CDN分發,即時通訊等技術,每一個技術都夠學幾年的。

  • 如果你有更好的建議或者對這篇文章有不滿的地方, 請聯系我, 我會進行修改,
  • 祝大家學習愉快~謝謝~
  • 一個完整直播APP原理

把主播錄制的視頻,推送到服務器,在由服務器分發給觀眾觀看。

推流端(采集、美顏處理、編碼、推流)、服務端處理(轉碼、錄制、截圖、鑒黃)、播放器(拉流、解碼、渲染)、互動系統(聊天室、禮物系統、贊)

一個完整直播APP實現流程

1.采集視頻、音頻

AVFoundation:是用來播放和創建實時的視聽媒體數據的框架,同時提供Objective-C接口來操作這些視聽數據,比如編輯,旋轉,重編碼

  • CCD:圖像傳感器: 用于圖像采集和處理的過程,把圖像轉換成電信號。
  • 拾音器:聲音傳感器: 用于聲音采集和處理的過程,把聲音轉換成電信號。
  • 音頻采樣數據:一般都是PCM格式
  • 視頻采樣數據: 一般都是YUV,或RGB格式,采集到的原始音視頻的體積是非常大的,需要經過壓縮技術處理來提高傳輸效率

2.視頻處理(美顏,水印)

視頻處理原理:因為視頻最終也是通過GPU,一幀一幀渲染到屏幕上的,所以我們可以利用OpenGL ES,對視頻幀進行各種加工,從而視頻各種不同的效果,就好像一個水龍頭流出的水,經過若干節管道,然后流向不同的目標。

現在的各種美顏和視頻添加特效的app都是利用GPUImage這個框架實現的。

視頻處理的框架

  • GPUImage : GPUImage是一個基于OpenGL ES的一個強大的圖像/視頻處理框架,封裝好了各種濾鏡同時也可以編寫自定義的濾鏡,其本身內置了多達120多種常見的濾鏡效果。
  • OpenGL:OpenGL(全寫Open Graphics Library)是個定義了一個跨編程語言、跨平臺的編程接口的規格,它用于三維圖象(二維的亦可)。OpenGL是個專業的圖形程序接口,是一個功能強大,調用方便的底層圖形庫。
  • OpenGL ES:OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三維圖形 API 的子集,針對手機、PDA和游戲主機等嵌入式設備而設計。

3.音視頻編碼解碼

  • 視頻壓縮編碼標準:對視頻進行壓縮(視頻編碼)或者解壓縮(視頻解碼)的編碼技術,比如MPEG,H.264,這些視頻編碼技術是壓縮編碼視頻的
  • MPEG:一種視頻壓縮方式,它采用了幀間壓縮,僅存儲連續幀之間有差別的地方 ,從而達到較大的壓縮比
  • H.264/AVC:一種視頻壓縮方式,采用事先預測和與MPEG中的P-B幀一樣的幀預測方法壓縮,它可以根據需要產生適合網絡情況傳輸的視頻流,還有更高的壓縮比,有更好的圖象質量
  • H.265/HEVC:一種視頻壓縮方式,基于H.264,保留原來的某些技術,同時對一些相關的技術加以改進,以改善碼流、編碼質量、延時和算法復雜度之間的關系,達到最優化設置。

音頻編碼技術

  • AAC,mp3:這些屬于音頻編碼技術,壓縮音頻用

碼率控制

多碼率:觀眾所處的網絡情況是非常復雜的,有可能是WiFi,有可能4G、3G、甚至2G,那么怎么滿足多方需求呢?多搞幾條線路,根據當前網絡環境自定義碼率。

視頻封裝格式

  • TS : 一種流媒體封裝格式,流媒體封裝有一個好處,就是不需要加載索引再播放,大大減少了首次載入的延遲,如果片子比較長,mp4文件的索引相當大,影響用戶體驗
  • FLV: 一種流媒體封裝格式,由于它形成的文件極小、加載速度極快,使得網絡觀看視頻文件成為可能,因此FLV格式成為了當今主流視頻格式

4.推流

推流,就是將采集到的音頻,視頻數據通過流媒體協議發送到流媒體服務器。

選擇流媒體協議

現在直播應用,采用RTMP協議居多,也有部分使用HLS協議。

采用RTMP協議,就要看下它與流媒體服務器交互的過程,RTMP協議的默認端口是1935,采用TCP協議。并且需要了解FLV的封裝格式。

采用HLS協議,因為涉及到切片,延時會比較大,需要了解TS流。

采集音視頻數據

做直播,數據的來源不可缺少,就是采集攝像頭,麥克風的數據。

iOS平臺上采集音視頻數據,需要使用AVFoundation.Framework框架,從captureSession會話的回調中獲取音頻,視頻數據。

5.流媒體服務器

常用服務器

  • SRS:一款國人開發的優秀開源流媒體服務器系統
  • BMS:也是一款流媒體服務器系統,但不開源,是SRS的商業版,比SRS功能更多
  • nginx:免費開源web服務器,常用來配置流媒體服務器

6.拉流

直播協議選擇:

  • 即時性要求較高或有互動需求的可以采用RTMP,RTSP
  • 對于有回放或跨平臺需求的,推薦使用HLS

HLS:由Apple公司定義的用于實時流傳輸的協議,HLS基于HTTP協議實現,傳輸內容包括兩部分,一是M3U8描述文件,二是TS媒體文件。可實現流媒體的直播和點播,主要應用在iOS系統

7.解碼

使用相關硬件或軟件對接收到的編碼后的音視頻數據進行解碼,得到可以直接顯示的圖像/聲音

涉及技術或協議:

  • 一般對應的編碼器都會帶有相應的解碼器,也有一些第三方解碼插件等

8.播放

ijkplayer:一個基于FFmpeg的開源Android/iOS視頻播放器

  • API易于集成;
  • 編譯配置可裁剪,方便控制安裝包大小;
  • 支持硬件加速解碼,更加省電
  • 簡單易用,指定拉流URL,自動解碼播放.

9.聊天互動

IM:(InstantMessaging)即時通訊:是一個實時通信系統,允許兩人或多人使用網絡實時的傳遞文字消息、文件、語音與視頻交流.

IM在直播系統中的主要作用是實現觀眾與主播、觀眾與觀眾之間的文字互動.

第三方SDK

  • 騰訊云:騰訊提供的即時通訊SDK,可作為直播的聊天室
  • 融云:一個比較常用的即時通訊SDK,可作為直播的聊天室

項目代碼獲取

想要獲取案例源碼可以加我技術交流群:656315826 最近我在研究這一塊,如果你有更好的建議或者對這篇文章有不滿的地方, 請聯系我, 我會進行修改,共同學習進步。

祝大家學習愉快

 

責任編輯:未麗燕 來源: 簡書
相關推薦

2018-03-20 14:17:38

2021-08-10 20:41:33

AndroidApp流程

2011-08-17 14:20:21

IOS開發GraphicsCon

2024-03-28 18:17:49

PMSAndroid

2020-12-17 11:11:56

iOS 14輕APP蘋果

2013-06-17 15:41:09

Windows PhoWP開發JSON生成C#類

2014-07-14 11:14:00

iOSSafariWebApp

2013-06-04 16:59:42

iOS開發iOS工具移動開發

2021-04-08 21:37:06

AppGallery 應用開發

2013-09-12 15:37:09

iOS開發流程

2011-07-08 17:12:50

iOS XML

2022-08-08 19:35:37

HDF驅動開發鴻蒙

2011-08-05 16:18:32

iOS XML 解析

2011-07-20 11:09:58

蘋果 OpenCL 變量

2021-07-21 16:30:38

iOSAPP架構

2021-09-02 07:00:01

Glide流程Android

2013-01-15 10:38:06

iOSAppAppCan

2021-11-06 07:42:04

驗證開發流程

2011-07-07 16:38:21

iOS UITableVie

2011-08-02 11:07:42

iOS開發 UIWebView
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品爱久久久久久久 | 国产小视频在线 | 精品免费看| 久久久久国 | 久久久国产一区二区三区四区小说 | 97免费在线观看视频 | 欧洲精品久久久久毛片完整版 | 国产不卡视频 | 成人在线免费网站 | 国产精品久久久久久久久久久久久久 | 国产一级片精品 | 五月综合久久 | 成人a网 | 99久久婷婷国产综合精品电影 | 成人a视频片观看免费 | 91网站在线观看视频 | 欧美成人精品一区二区男人看 | 欧美精品成人一区二区三区四区 | 国外成人在线视频 | 性色综合 | 色在线免费视频 | 一区二区成人 | 毛片黄| 亚洲精品一区二区三区四区高清 | 亚洲综合色丁香婷婷六月图片 | 日韩精品一区二区三区中文在线 | av国产精品毛片一区二区小说 | 亚洲成人福利 | 国产精品久久久久久久久久 | 91传媒在线观看 | 久久精品亚洲精品 | 一级片视频免费观看 | 久久99久久 | 伊人网在线看 | 中文字幕亚洲区一区二 | 国产一区二区三区免费 | 国际精品久久 | 激情综合五月 | www.青娱乐 | 久久久99国产精品免费 | 91玖玖|