來源:網絡轉載作者:網絡轉載時(shí)間:2017-01-11
一 . 音視頻處理的一般流程:
數據采集→數據編碼→數據傳輸(流媒體服務器) →解碼數據→播放顯示計紙
1、數據采集:
攝像機及拾音器收集視頻及音頻數據,此時(shí)得到的爲原始玩又數據
涉及技術或協議:
攝像機:CCD、CMOS
拾音器:聲電轉換裝置(咪頭)、音頻放大電路
2、數據編碼:
使用相關硬件或軟件對(duì)音視頻原始數據進(jìn)行編碼處紙吃理(數字化)及加工(如音視頻混合、打包封裝等),得到可用的音視頻數據
涉及技術或協議:
編碼方式:CBR、VBR
編碼格式
視頻:H.265、H.264、MPEG-4等,封她高裝容器有TS、MKV、AVI、MP4等
音頻:G.711μ、AAC、Opus等紅船,封裝有MP3、OGG、AAC等
3、數據傳輸:
將(jiāng)編碼完成(chéng)見事後(hòu)的音視頻數據進(jìn)行傳輸,早期你拍的音視頻通過(guò)同軸電纜之類的線黃要纜進(jìn)行傳輸,IP網絡發(fā)展後(hòu),使用內空IP網絡優傳輸
涉及技術或協議:
傳輸協議:RTP與RTCP、RTSP、RTMP、HTTP、HLS(HTTP少腦 Live Streaming)等
控制信令:SIP和SDP、SNMP等
4、解碼數據:
使用相關硬件或軟件對(duì)接收到的編碼後(hòu我市)的音視頻數據進(jìn)行解碼,得到可以吧開直接顯示的圖像/聲音
涉及技術或協議:
一般對(duì)應的編碼器都(dōu)會(h的數uì)帶有相應的解碼器,也有一些第三方解碼插件等
5、播放顯示:
在顯示器(電視、監視屏等)或揚山這聲器(耳機、喇叭等)裡(lǐ),顯示相應的謝通圖像畫面(miàn)或聲音
涉及技術或協議:
顯示器、揚聲器、3D眼鏡等
(二) 視頻推流與視頻拉流的工作過(guò)程解析:
1.視頻推流端
推流,就(jiù)是將(jiāng)采集到的音頻,視頻數據通過(guò)流媒開見體協議發(fā)送到流媒體服務器。
一、選擇流媒體協議
現在直播應用,采用RTMP協議技商居多,也有部分使用HLS協議。
采用RTMP協議,就(jiù)要看下它與流媒體服務器交互的過(guò)程,可城RTMP協議的默認端口是1935,采用TCP用人協議。并且需要了解FLV的封裝格式。
采用HLS協議,因爲涉及到切片,延時(shí)會(huì)比較大,需線如要了解TS流。
二、采集音視頻數據
做直播,數據的來源不可缺少,就(jiù)是采集攝像頭,麥克風的數據。音件
iOS平台上采集音視頻數據,需要使用AVFoundation.Fra店銀mework框架,從captureSessi著如on會(huì)話的回調中獲取下嗎音頻,視頻數據。
三、硬編碼,軟編碼音視頻數據
軟編碼就(jiù)是利用CPU資源來壓縮音視頻數廠嗎據,硬編碼與之相反。
軟編碼的話,現在廣泛采用FFmpeg庫結合編小城碼庫來實現,FFmpeg+X624來編碼視頻數據冷去YUV/RGB輸出H264數據,
FFmpeg+fdk_aac來編碼音頻數據PCM輸出AAC數據。
四、根據所選流媒體協議封包音視頻數據公器
將(jiāng)音頻,視頻打包成(chéng)pac見多ket。
五、與服務器交互發(fā)送封包數據
根據所選流媒體協議,發(fā)送相應拿坐指令連接服務器,連接服務器成(chéng)功後自地(hòu),就(jiù)可以發(fā)送pack術得et數據了。
Part 2. 拉流端
拉流,就(jiù)是從流媒體服務器獲取音頻,視頻遠服數據。
一)、解析協議
播放器端根據URL解析所用的流媒體協議(R醫用TMP,HLS)。
二)、解封裝
解封裝,就(jiù)是demux的過(guò)程,媽我從容器格式(FLV,TS)中,分離出音視頻數用北據。
三)、解碼
解碼,就(jiù)是把獲取到的數據解壓縮,恢複成(chéng)原始數據。解碼數商就(jiù)是將(jiāng)H2師新64變成(chéng)YUV,AAC變成(chéng)PCM。
解碼可以使用軟解碼,硬解碼。
軟解碼就(jiù)是利用CPU資源去解長人壓縮數據,采用的方式是FFmpeg解碼。
硬解碼,對(duì)于iOS平台來說(shuō),可以使用V拿計ideoToolbox.Fra這匠mework(該框架隻能(néng)在iOS 紅綠8.0及以上系統使用)
硬解碼視頻數據。Android平台上,可以使用Media花什Codec來硬解碼視頻數據。
四)、渲染數據
采用OpenGL渲染YUV數據,呈現視頻畫面(miàn)。將(jiāng)P國制CM送入設備的硬件資源播放,産生聲音。
iOS播放流式音頻,使用Audio Queue 的方式,即,利用Audio懂花Toolbox.Framework 框架。
三、 iOS開(kāi)發(fā)之iOS直播平台有用的第做她三方資源共享:
1. 實時(shí)美顔參考網址:https:/些城/altitudelabs.co章話m/blog/real-time-filt好錯er/
2. 直播測試地址:
HLS:https://live.3gv.女劇ifeng.com/live/hongkong.m3u8 鳳凰衛視香在好港台
SMTP:rtmp://live.hkstv.hk.lxdns湖弟.com/live/hks 香港衛視
RSTP:rtsp://rtsp.vdowowza.tvb.com/tvb些也live/mobileinews200木不.stream 互動新聞台1
3. HLS streaming工具下載,用于銀資處理m3u8音、視頻源的HLS Streaming Tool Do吃很wnload
4. 直播相關SDK
1). VideoCore 在新浪雲你自上有文檔說(shuō)明,可閱讀iO好風S推流SDK使用文檔
2). 網易雲信直播SDK 好(hǎo)像是收費的,價格公朋還(hái)不便宜,一般公司可能(néng)這靜也不會(huì)用,不過(guò)可以購水嘗試看看,了解一下,有助于學(xué)習!
iossdk.html
4). 融雲直播 &n聽海bsp; https://www.rongcloud.cn/live
iossdk.html
5. 直播相關開(kāi)源庫
1). BeautifyFaceDemo 基店視于GPUImage的圖片處理,做美顔方面(miàn)可以參考一下
2). lf.swift明們 開(kāi)源RTMP Swift版的,可以學(xué)習一下!好(hǎ微能o)像作者是日本的,或者是在日本工作的,寫了不少日文!
3). PLPlayerKit 一匠老個不依賴FFmpeg的播放器,支持R街分TMP
4). HLS-Demo  湖下; httpss://github.com/yangchao0033/HL我什S-Demo HLS播放demo
5). SmarterStreaming https學月s://github.com/daniulive/Smar文動terStreaming 直亮費播SDK(支持私有協議和RTMP推流,如windows推流/andro地女id推流/iOS推流/windows播放器/a事玩ndroid播放器/iOS播放器)
四、 iOS開(kāi)發(fā)之 iOS 直哥學播平台 常見的視頻直播相關協議詳解
1、RTMP(Real Time Messaging見暗 Protocol,實時(shí)消息傳送協議)
RTMP是Adobe Systems公司爲Flash播呢友放器和服務器之間音頻、視頻和數據傳輸開(kāi)發(fā些白)的開(kāi)放協議。它有三種(zhǒng)變看報種(zhǒng):
1)、工作在TCP之上的明文協議,使用端口1935;
2)、RTMPT封裝在HTTP請求之中,可穿越器數防火牆;
3)、RTMPS類似RTMPT,但使用的是HTTPS連接;
RTMP協議是被(bèi)Flash用于對(du關都ì)象、視頻、音頻的傳輸。這(zhè)個協議建立在TCP協議或者輪務相詢HTTP協議之上。RTMP協議就(jiù)像一個用聽又來裝數據包的容器,這(zhè)些數據既可以是AMF格式的數據,也可以短用是FLV中的視音頻數據。一個單一歌大的連接可以通過(guò)不同的信事通道(dào)傳輸多路網絡流,這公喝(zhè)些通道(dào)中的包都(dōu)是按照固定大小的包傳什多輸的。
2、RTSP(Real Time Stre內筆aming Protocol,實時(shí)流傳輸協議)
RTSP定義了一對(duì)多應用程序如何有效地通過(guò)IP網絡傳送多那知媒體數據。RTSP提供了一個可擴展框架,數據源可以包括實時(shí)林線數據與已有的存儲的數據。該協議目的在于控制多個數據發(fā)送放務連接,爲選擇發(fā)送通道(dào)如UDP、組播U體鐘DP與TCP提供途徑,并爲選擇基于RTP上發(fā)送機制提供方法。
RTSP語法和運作跟HTTP/1.1類似,但并不特别山也強調時(shí)間同步,所以比較能(nén綠些g)容忍網絡延遲。代理服務器的緩存功能(néng)也同女雪樣(yàng)适用于RTSP,并且為物因爲RTSP具有重新導向(xiàng)功能(néng),可根據實際負載情火山況來切換提供服務的服務器,以避討北免過(guò)大的負載集中于同一服務器而造成(chéng)延遲。
3、RTP(Real-time Transport 熱信Protocol,實時(shí)傳輸協議)
RTP是針對(duì)多媒體數據流的一種(zhǒng)傳輸層協議,詳水門細說(shuō)明了在互聯網上傳遞音頻和視頻的标準數據包格務線式。RTP協議常用于流媒體系統(配合RTCP協議),視頻會(huì)議和一鍵東購通系統(配合H.323或SIP),使它成(chéng)爲IP電話産村舞業的技術基礎。
RTP是建立在UDP協議上的,常與RTCP一起(qǐ)使用,其本些湖身并沒(méi)有提供按時(shí)發(fā男熱)送機制或其它服務質量(QoS)保證,它依賴于低層服務去實現這(zh熱哥è)一過(guò)程。
RTP 并不保證傳送或防止無序傳送,也不确定底層網絡的可靠性,們土隻管發(fā)送,不管傳輸是否丢包,也不管接收方是否有收到包。RTP 城門實行有序傳送,RTP中的序列号允許接收方重組發(fā)送方林人的包序列,同時(shí)序列号也能(nén雨事g)用于決定适當的包位置,如在視頻解碼中,就(jiù)不需要順序解碼。
4、RTCP(Real-tim可我e Transport Control P西下rotocol,實時(shí)傳輸控制協議)
RTCP是RTP的配套協議,爲RTP媒體流提供信道(d草女ào)外的控制。RTCP和RTP一起(qǐ)協作將水友(jiāng)多媒體數據打包和發(fā)送票吧,定期在多媒體流會(huì)話參與者之間傳輸控制數據。
RTCP的主要功能(néng)是爲RTP所提供的服地愛務質量(QoS)提供反饋,收集相關媒體連接的統計信息,例如傳輸字節數都照,傳輸分組數,丢失分組數,單向(xiàng)和雙向(xiàng)網絡延遲等等。日愛網絡應用程序可以利用RTCP所提供的信息來提高相校服務質量,比如限制流量或改用壓縮比小的編解碼器。
本文鏈接/index/news/vi的數ew/id/145.html轉載請注明來自會間廣州易動維信息科技!
本文标簽:Default