




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上移動端音視頻應用優(yōu)化之道手機APP在音視頻方面的應用產(chǎn)品,近兩年呈井噴狀態(tài)。觀眾在流暢地觀看著視頻畫面的同時,背后其實包含了大量的技術(shù)難題。本次分享將從手機攝像頭數(shù)據(jù)采集開始,把視頻編碼、數(shù)據(jù)傳輸、視頻解碼、畫面顯示整條鏈路中的技術(shù)難點和優(yōu)化方法進行詳細講解。另外,還會對音視頻開發(fā)者最關(guān)心的一些問題如直播延時、畫面清晰度、手機端資源消耗等展開討論。移動端的音視頻直播,點播,之所以能大量爆發(fā),跟下面幾點因素分不開。第一,音視頻直播,點播的需求一直大量存在,包括各種行業(yè)應用,比如,視頻門戶、娛樂直播、游戲直播,在線教育、遠程醫(yī)療,遠程監(jiān)控,企業(yè)協(xié)作,社交應用等。那么以前為
2、什么沒有全面爆發(fā),是因為硬件條件不滿足。首先,網(wǎng)絡(luò)的帶寬有限,現(xiàn)在網(wǎng)速不斷提升,很多都是光纖到小區(qū),有線網(wǎng)絡(luò)的上下行帶寬已經(jīng)達到要求。移動網(wǎng)絡(luò)4G接入速度也挺快,滿足了基本的視頻直播帶寬要求。而且網(wǎng)絡(luò)資費也比較低,變得大眾可接受。其次,智能硬件設(shè)備的大量普及,特別是大屏智能手機,平板,基本是人手一臺。而且這些設(shè)備的性能也越來越強勁,4核CPU是常態(tài),現(xiàn)在都是8核了,2GB內(nèi)存是小意思,現(xiàn)在都配4GB了。硬件性能的提升解決了視頻編解碼的性能瓶頸,可以拿手機,平板作為PC機器使用。因此,以上幾點滿足視頻直播的性能,帶寬這些基本要求。網(wǎng)絡(luò)費用便宜達到了大眾消費級別,兩者一碰撞就把以前壓制的視頻直播,
3、點播需求都爆發(fā)出來了,特別是移動直播,現(xiàn)在的理念是隨時隨地玩直播。一個完整的視頻直播,點播過程主要包括以下幾個方面。對于直播來說,首先是音視頻推流端會把數(shù)據(jù)流推送到流媒體服務器,然后在通過CDN平臺進行分發(fā),最后觀眾用各種播放器從CDN拉流觀看。對于點播過程來說,首先內(nèi)容提供商要把視頻文件轉(zhuǎn)碼,轉(zhuǎn)成符合網(wǎng)絡(luò)傳輸?shù)母袷剑缓蟀岩曨l文件部署到點播服務器,之后會通過CDN平臺進行分發(fā),主要是支持超大并發(fā)量的訪問,最后觀眾用各個平臺的播放器從CDN拉流觀看。在點播過程中有兩個額外的服務,一個是轉(zhuǎn)碼服務,用來轉(zhuǎn)碼各種音視頻文件。另外一個是存儲服務,用來保存大量的音視頻文件。不管是直播或點播服務,都會有一
4、個視頻云管理服務器,用來管理直播頻道,點播文件,以及后臺管理web頁面。對外提供http接口,供產(chǎn)品的應用服務器調(diào)用。管理服務器協(xié)調(diào)推流客戶端,流媒體服務器,播放器之間保證作為一個整體運行。對于移動端來說,主要涉及到推流端和播放器這兩部分。其中推流端包括了音頻,視頻的采集,預處理,編碼,打包,發(fā)送這幾個模塊。而播放器包括了碼流接收,解碼,后處理,顯示這幾個模塊。分別講述一下各個模塊的功能和特點,音頻是從麥克風采集,音視頻從攝像頭抓取圖像,也可以抓取屏幕圖片,比如游戲直播。當有混音需求時,也可以采集聲卡的音頻數(shù)據(jù),然后跟麥克風的聲音進行混音。對于采集的音頻一般先要進行降噪處理,特別是戶外環(huán)境下,
5、噪聲會比較明顯。如果涉及到互動直播,有雙向通話的情況,還需要對音頻進行回聲抑制處理,防止出現(xiàn)回聲效果。對于采集的圖像可以進行一些特效濾鏡處理,比如黑白,黃昏,提亮,美顏等,這些處理非常耗費性能,一般都是需要用OpenGL ES來實現(xiàn)。也可以進行圖像疊加,比如給主播加個帽子,或者為了保護版權(quán),加個水印圖片。所有的這些操作都有實時性要求,因為后端要編碼成視頻流。因此,對于一般的圖像處理算法,當用到視頻場景下,有時很難達到性能要求,比如要處理25幀每秒,特別是移動設(shè)備,這個性能就更加難達到要求,都是需要進行一些定制優(yōu)化。目前主流的視頻編碼標準就是H.264,編碼質(zhì)量,性能,碼率,各方面都比較好,而且
6、使用最廣泛,現(xiàn)在互聯(lián)網(wǎng)最常用的就是H.264視頻。對于VP8視頻編碼,這是Google推出的標準,是WebRTC實時視頻通話主要編碼標準,但是目前在網(wǎng)絡(luò)直播,點播方面不常用。而音頻的AAC標準,是用的最多的音頻編碼,非常流行,編碼的音質(zhì)也好。而speex音頻標準,是一套主要針對語音的開源免費,無專利保護的音頻壓縮格式。也很適合網(wǎng)絡(luò)應用,在網(wǎng)絡(luò)應用上有著自己獨特的優(yōu)勢,但是還不夠流行,沒有普遍使用。對于音視頻直播來說,上行推流主要采用rtmp協(xié)議,用這個協(xié)議的延時小,但是可能會有端口上的限制。如果用HLS推流,那些延時會比較大,走http協(xié)議,沒有網(wǎng)絡(luò)端口的限制。對于下行的播放來說,主要有htt
7、p-flv,HLS,RTMP這幾種拉流方式。其中http-flv,HLS這兩種方式會在流媒體服務器上進行重新封裝,以及協(xié)議轉(zhuǎn)換。對于點播服務來說,播放用的主流方式是http-flv,http-mp4,hls這幾種,全部走http協(xié)議,比較適合網(wǎng)絡(luò)傳輸。音視頻流通過CDN平臺分發(fā)之后,能支持超大量的訪問,千萬級別都沒有問題的。對于播放器來說,就是一個推流的逆向過程,先接受媒體流,然后解析協(xié)議,解封裝,解碼音視頻數(shù)據(jù),后處理,最后顯示畫面,聲音。如果用到后處理,比如圖像可以色彩增強,音頻可以音量增強。顯示的時候也可以做一些處理,比如全屏的時候圖像拉伸,或者填黑邊,或者裁剪,也可加上走馬燈,進行版權(quán)
8、保護。主要的優(yōu)化方向,第一,要選擇一個通用性好,性能良好,復雜度相對較低的編碼器,現(xiàn)在主流的就是H.264編碼器,開源的主要是x264和openh264,其中openh264是思科開源項目,針對實時視頻通話場景做了優(yōu)化。比如選擇用H.265編碼器,但是編解碼復雜度太高,特別是在移動平臺性能達不到要求,另外,對于低分辨率的視頻直播,節(jié)省不了碼率,圖像質(zhì)量也沒有明顯的提高。第二,在選定一個編碼標準之后,就要看是否采用硬件編碼方式,如果采用軟件編碼,那么會比較耗費cpu資源,表現(xiàn)出來就是設(shè)備發(fā)燙,耗電快,但是設(shè)備兼容性好,幾乎可以在任何設(shè)備上運行。如果采用硬件編碼方式,那么編碼性能好,完全可以支持1
9、080p圖像全高清的實時編碼,而且也省電,但是設(shè)備的適配性比較差,特別Android設(shè)備的硬件編碼模式支持的比較差。ios設(shè)備支持的適配性比較好,但是,沒有開放更底層的編碼接口,難做到按幀獲取碼流,進行實時直播。另外用硬件編碼方式,也比較難做動態(tài)碼率控制。針對網(wǎng)絡(luò)直播和點播場景,在編碼階段要盡量做到碼率波動的平滑,這個需要優(yōu)化碼率控制算法。第三,對于Gop的大小也要根據(jù)應用場景做適當?shù)恼{(diào)整,如果關(guān)鍵幀之間的間隔小,那么碼率會出現(xiàn)頻繁的尖峰,發(fā)送數(shù)據(jù)的時候,會造成瞬間的擁塞。第四,可以通過設(shè)置buffer來解決碼率波動問題,比如在推流端增加一個發(fā)送緩沖區(qū),按照固定的碼率發(fā)送數(shù)據(jù),而不是根據(jù)每幀數(shù)
10、據(jù)來發(fā)送。同樣在播放器也可以設(shè)置一個接收buffer,解決網(wǎng)絡(luò)波動對播放造成的頻繁卡頓。但是這個設(shè)置過大的buffer會增加延時,不適合直播應用,比較適合點播應用。對于直播場景,要求端到端的延時盡量小,播放端能快速啟動,看到畫面。對于rtmp直播還要解決累計延時,可以采用在播放器主動清空buffer的方法。這樣低延時,小緩沖,主動清空緩沖的方案,抗網(wǎng)絡(luò)波動比較差,一旦網(wǎng)絡(luò)不好,會造成不停的音視頻卡頓,但比較適合直播場景。對于點播場景,可以適當?shù)脑龃骲uffer,進行碼流的預加載,在網(wǎng)絡(luò)好的時候,盡量多加載一些視頻數(shù)據(jù),這樣抗網(wǎng)絡(luò)的波動就好,基本不會出現(xiàn)卡頓,也沒有延時要求,因此這個方案比較適合
11、點播場景。第五,不管是直播還是點播服務,都存在一個端到端的數(shù)據(jù)傳輸鏈路問題。在推流端先要連接到接流服務器,這時就要選擇合適的節(jié)點,一種是根據(jù)客戶端的DNS域名來選擇就近的節(jié)點,當DNS配置有誤的時候,可能會存在調(diào)度不準的問題。另外一種是根據(jù)客戶端的出口IP來選擇節(jié)點,這種調(diào)度方式會比較準確一些。同樣對于播放器端也是采用類似的方式來選擇流媒體服務器集群的邊緣節(jié)點。第六,在整個直播或點播過程中,最好有實時統(tǒng)計數(shù)據(jù),包括網(wǎng)絡(luò)類型,機器信息,實時網(wǎng)絡(luò)狀況,幀率,碼率,分別率等。這樣可以分析遇到的各種問題,特別是對于直播場景,當網(wǎng)絡(luò)波動,出現(xiàn)卡頓時,可以為動態(tài)調(diào)整qos提供依據(jù)。第七,對于直播場景,采用qos策略,動態(tài)調(diào)整編碼參數(shù),包括幀率,碼率,分辨率,緩沖區(qū)。當直播出現(xiàn)卡頓,采用快降慢升的策略,當網(wǎng)絡(luò)波動比較厲害,這樣可以避免編碼參數(shù)頻繁的來回調(diào)整,造成惡性循環(huán)。當進行編碼參數(shù)調(diào)整時,一般是根據(jù)分辨率把碼率,幀率分成幾個檔次,然后在根據(jù)一定時間段內(nèi)的統(tǒng)計數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 63203-201-4:2024 EN-FR Wearable electronic devices and technologies - Part 201-4: Electronic textile - Test method for determining sheet resistance of conductive fabrics
- 廣東引進創(chuàng)新創(chuàng)業(yè)團隊合同書
- 投影儀購銷合同書
- 中國公路運輸合同
- 型鋼采購合同協(xié)議
- 家教老師聘用合同書
- 玻璃幕墻安裝合同
- 商品買賣居間合同
- 美國工程設(shè)計服務合同
- 側(cè)柏買賣合同
- 靜脈采血的課件
- 三年級數(shù)學-數(shù)獨練習題打印版10組
- DB3502T 051-2019 家政服務規(guī)范 通 用要求
- 癥狀護理意識障礙
- 公司組織架構(gòu)圖模板完整版可編輯 10
- 《護理法律法規(guī)》課件
- AI在知識庫領(lǐng)域的應用
- 易制毒化學品經(jīng)營管理制度
- 2024年中國成人心肌炎臨床診斷與治療指南解讀課件
- 全國川教版信息技術(shù)八年級下冊第一單元第2節(jié)《制作創(chuàng)意掛件》信息技術(shù)教學設(shè)計
- GB/T 22919.8-2024水產(chǎn)配合飼料第8部分:巴沙魚配合飼料
評論
0/150
提交評論