你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS直播類APP開辟流程解析

iOS直播類APP開辟流程解析

編輯:IOS開發綜合

本文為年夜家分享了IOS直播類APP開辟流程,供年夜家參考,詳細內容以下

一 . 音視頻處置的普通流程:

 數據收集→數據編碼→數據傳輸(流媒體辦事器) →解碼數據→播放顯示
1、數據收集:
攝像機及拾音器搜集視頻及音頻數據,此時獲得的為原始數據
觸及技巧或協定:
攝像機:CCD、CMOS
拾音器:聲電轉換裝配(咪頭)、音頻縮小電路
2、數據編碼:
應用相干硬件或軟件對音視頻原始數據停止編碼處置(數字化)及加工(如音視頻混雜、打包封裝等),獲得可用的音視頻數據
觸及技巧或協定:
編碼方法:CBR、VBR
編碼格局
視頻:H.265、H.264、MPEG-4等,封裝容器有TS、MKV、AVI、MP4等
音頻:G.711μ、AAC、Opus等,封裝有MP3、OGG、AAC等
3、數據傳輸:
將編碼完成後的音視頻數據停止傳輸,晚期的音視頻經由過程同軸電纜之類的線纜停止傳輸,IP收集成長後,應用IP收集優傳輸
觸及技巧或協定:
傳輸協定:RTP與RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等
掌握信令:SIP和SDP、SNMP等
4、解碼數據:
應用相干硬件或軟件對吸收到的編碼後的音視頻數據停止解碼,獲得可以直接顯示的圖象/聲響
觸及技巧或協定:
普通對應的編碼器都邑帶有響應的解碼器,也有一些第三方解碼插件等
5、播放顯示:
在顯示器(電視、監督屏等)或揚聲器(耳機、喇叭等)裡,顯示響應的圖象畫面或聲響
觸及技巧或協定:
顯示器、揚聲器、3D眼鏡等

 (二) 視頻推流與視頻拉流的任務進程解析: 
1.視頻推流端
推流,就是將收集到的音頻,視頻數據經由過程流媒體協定發送到流媒體辦事器。 
1、選擇流媒體協定 
如今直播運用,采取RTMP協定占多數,也有部門應用HLS協定。 
采取RTMP協定,就要看下它與流媒體辦事器交互的進程,RTMP協定的默許端口是1935,采取TCP協定。而且須要懂得FLV的封裝格局。 
采取HLS協定,由於觸及到切片,延時會比擬年夜,須要懂得TS流。 

2、收集音視頻數據 
做直播,數據的起源弗成缺乏,就是收集攝像頭,麥克風的數據。 
IOS平台上收集音視頻數據,須要應用AVFoundation.Framework框架,從captureSession會話的回調中獲得音頻,視頻數據。 

3、硬編碼,軟編碼音視頻數據

軟編碼就是應用CPU資本來緊縮音視頻數據,硬編碼與之相反。 
軟編碼的話,如今普遍采取FFmpeg庫聯合編碼庫來完成,FFmpeg+X624來編碼視頻數據YUV/RGB輸入H264數據,
FFmpeg+fdk_aac來編碼音頻數據PCM輸入AAC數據。

 4、依據所選流媒體協定封包音視頻數據
 將音頻,視頻打包成packet。 

5、與辦事器交互發送封包數據
依據所選流媒體協定,發送響應指令銜接辦事器,銜接辦事器勝利後,便可以發送packet數據了。 
Part 2. 拉流端 
拉流,就是從流媒體辦事器獲得音頻,視頻數據。 
一)、解析協定 
播放器端依據URL解析所用的流媒體協定(RTMP,HLS)。 
二)、解封裝 
解封裝,就是demux的進程,自在器格局(FLV,TS)中,分別出音視頻數據。 
三)、解碼 
解碼,就是把獲得到的數據解緊縮,恢復成原始數據。解碼就是將H264釀成YUV,AAC釀成PCM。 
解碼可使用軟解碼,硬解碼。 
軟解碼就是應用CPU資本去解緊縮數據,采取的方法是FFmpeg解碼。 
硬解碼,關於IOS平台來講,可使用VideoToolbox.Framework(該框架只能在iOS 8.0及以上體系應用)
硬解碼視頻數據。Android平台上,可使用MediaCodec來硬解碼視頻數據。 
四)、襯著數據 
采取OpenGL襯著YUV數據,出現視頻畫面。將PCM送入裝備的硬件資本播放,發生聲響。 
iOS播放流式音頻,應用Audio Queue 的方法,即,應用AudioToolbox.Framework 框架。

3、 iOS開辟之iOS直播平台有效的第三方資本同享: 
1.  及時美顏參考網址:http://altitudelabs.com/blog/real-time-filter/ 
2. 直播測試地址: 
HLS:http://live.3gv.ifeng.com/live/hongkong.m3u8 鳳凰衛視噴鼻港台 
SMTP:rtmp://live.hkstv.hk.lxdns.com/live/hks 噴鼻港衛視 
RSTP:rtsp://rtsp.vdowowza.tvb.com/tvblive/mobileinews200.stream 互動消息台1 
3.  HLS streaming對象下載,用於處置m3u8音、視頻源的HLS Streaming Tool Download
4. 直播相干SDK
1). VideoCore 在新浪雲上有文檔解釋,可浏覽iOS推流SDK應用文檔
2). 網易雲信直播SDK 似乎是免費的,價錢還未便宜,普通公司能夠也不會用,不外可以測驗考試看看,懂得一下,有助於進修!
3). 狂風雲直播   http://www.baofengcloud.com/apisdk/sdk/live/iossdk.html
4). 融雲直播     http://www.rongcloud.cn/live
5). 騰訊直播SDK  https://www.qcloud.com/solution/video.html

5. 直播相干開源庫
1). BeautifyFaceDemo 基於GPUImage的圖片處置,作美顏方面可以參考一下
2).   lf.swift 開源RTMP Swift版的,可以進修一下!似乎作者是日本的,或許是在日本任務的,寫了很多日文!
3).  PLPlayerKit 一個不依附FFmpeg的播放器,支撐RTMP
4).  HLS-Demo   https://github.com/yangchao0033/HLS-Demo  HLS播放demo
5). SmarterStreaming  https://github.com/daniulive/SmarterStreaming  直播SDK(支撐公有協定和RTMP推流,如Windows推流/Android推流/iOS推流/Windows播放器/Android播放器/iOS播放器) 

4、 iOS開辟之 iOS 直播平台 罕見的視頻直播相干協定詳解

1、RTMP(Real Time Messaging Protocol,及時新聞傳送協定) 
RTMP是Adobe Systems公司為Flash播放器和辦事器之間音頻、視頻和數據傳輸開辟的開放協定。它有三種變種: 
1)、任務在TCP之上的明文協定,應用端口1935; 
2)、RTMPT封裝在HTTP要求當中,可穿越防火牆; 
3)、RTMPS相似RTMPT,但應用的是HTTPS銜接; 
RTMP協定是被Flash用於對象、視頻、音頻的傳輸。這個協定樹立在TCP協定或許輪詢HTTP協定之上。RTMP協定就像一個用來裝數據包的容器,這些數據既可所以AMF格局的數據,也能夠是FLV中的視音頻數據。一個單一的銜接可以經由過程分歧的通道傳輸多路收集流,這些通道中的包都是依照固定年夜小的包傳輸的。 

2、RTSP(Real Time Streaming Protocol,及時傳播輸協定) 
RTSP界說了一對多運用法式若何有用地經由過程IP收集傳送多媒體數據。RTSP供給了一個可擴大框架,數據源可以包含及時數據與已有的存儲的數據。該協定目標在於掌握多個數據發送銜接,為選擇發送通道如UDP、組播UDP與TCP供給門路,並為選擇基於RTP上發送機制供給辦法。 
RTSP語法和運作跟HTTP/1.1相似,但其實不特殊強調時光同步,所以比擬能容忍收集延遲。署理辦事器的緩存功效也異樣實用於RTSP,而且由於RTSP具有從新導向功效,可依據現實負載情形來切換供給辦事的辦事器,以免過年夜的負載集中於統一辦事器而形成延遲。 

3、RTP(Real-time Transport Protocol,及時傳輸協定) 
RTP是針對多媒體數據流的一種傳輸層協定,具體解釋了在互聯網上傳遞音頻和視頻的尺度數據包格局。RTP協定經常使用於流媒系統統(合營RTCP協定),視頻會議和一鍵通體系(合營H.323或SIP),使它成為IP德律風家當的技巧基本。 
RTP是樹立在UDP協定上的,常與RTCP一路應用,其自己並沒有供給按時發送機制或其它辦事質量(QoS)包管,它依附於低層辦事去完成這一進程。 
RTP 其實不包管傳送或避免無序傳送,也不肯定底層收集的靠得住性,盡管發送,不論傳輸能否丟包,也不論吸收方能否有收到包。RTP 實施有序傳送,RTP中的序列號許可吸收方重組發送方的包序列,同時序列號也能用於決議恰當的包地位,如在視頻解碼中,就不須要次序解碼。 

4、RTCP(Real-time Transport Control Protocol,及時傳輸掌握協定) 
RTCP是RTP的配套協定,為RTP媒體流供給信道外的掌握。RTCP和RTP一路協作將多媒體數據打包和發送,按期在多媒體流會話介入者之間傳輸掌握數據。 
RTCP的重要功效是為RTP所供給的辦事質量(QoS)供給反應,搜集相干媒體銜接的統計信息,例如傳輸字節數,傳輸分組數,喪失分組數,單向和雙向收集延遲等等。收集運用法式可以應用RTCP所供給的信息來進步辦事質量,好比限制流量或改用緊縮比小的編解碼器。

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐本站。

【iOS直播類APP開辟流程解析】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved