



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、移動端音視頻應用優(yōu)化之道手機app在音視頻方面的應用產(chǎn)品,近兩年呈井噴狀態(tài)。觀眾在流暢地觀看著視頻畫面的 同時,背后其實包含了大量的技術難題。本次分享將從手機攝像頭數(shù)據(jù)采集開始,把視頻編 碼、數(shù)據(jù)傳輸、視頻解碼、畫面顯示整條鏈路中的技術難點和優(yōu)化方法進行詳細講解。另外, 還會對音視頻開發(fā)者最關心的一些問題如直播延時、畫面清晰度、手機端資源消耗等展開討 論。移動端的音視頻直播,點播,之所以能大量爆發(fā),跟下面幾點因素分不開。第一,音視頻直 播,點播的需求一直大量存在,包括各種行業(yè)應用,比如,視頻門戶、娛樂直播、游戲直播, 在線教育、遠程醫(yī)療,遠程監(jiān)控,企業(yè)協(xié)作,社交應用等。那么以前為什么沒有全面爆
2、發(fā), 是因為硬件條件不滿足。首先,網(wǎng)絡的帶寬有限現(xiàn)在網(wǎng)速不斷提升,很多都是光纖到小區(qū), 有線網(wǎng)絡的上下行帶寬已經(jīng)達到要求。移動網(wǎng)絡4g接入速度也挺快,滿足了基本的視頻直 播帶寬要求。而且網(wǎng)絡資費也比較低,變得大眾可接受。其次,智能硬件設備的大量普及, 特別是大屏智能手機,平板,基本是人手一臺。而且這些設備的性能也越來越強勁,4核 cpu是常態(tài),現(xiàn)在都是8核了,2gb內(nèi)存是小意思,現(xiàn)在都配4gb 了。硬件性能的提升解 決了視頻編解碼的性能瓶頸,可以拿手機,平板作為pc機器使用。因此,以上幾點滿足視 頻直播的性能,帶寬這些基本要求。網(wǎng)絡費用便宜達到了大眾消費級別,兩者一碰撞就把以 前壓制的視頻直播
3、,點播需求都爆發(fā)岀來了,特別是移動直播,現(xiàn)在的理念是隨時隨地玩直 播。一個完整的視頻直播,點播過程主要包括以下幾個方面。對于直播來說,首先是音視頻推流 端會把數(shù)據(jù)流推送到流媒體服務器,然后在通過cdn平臺進行分發(fā),最后觀眾用各種播放 器從cdn拉流觀看。對于點播過程來說,首先內(nèi)容提供商要把視頻文件轉碼,轉成符合網(wǎng) 絡傳輸?shù)母袷剑缓蟀岩曨l文件部署到點播服務器,之后會通過cdn平臺進行分發(fā),主要 是支持超大并發(fā)量的訪問,最后觀眾用各個平臺的播放器從cdn拉流觀看。在點播過程中 有兩個額外的服務,一個是轉碼服務,用來轉碼各種音視頻文件。另夕個是存儲服務,用 來保存大量的音視頻文件。不管是直播或點播
4、服務,都會有一個視頻云管理服務器,用來管 理直播頻道,點播文件,以及后臺管理web頁面。對外提供http接口,供產(chǎn)品的應用服務 器調(diào)用。管理服務器協(xié)調(diào)推流客戶端,流媒體服務器,播放器之間保證作為一個整體運行。對于移動端來說,主要涉及到推流端和播放器這兩部分。其中推流端包括了音頻,視頻的采 集,預處理,編碼,打包,發(fā)送這幾個模塊。而播放器包括了碼流接收,解碼,后處理,顯 示這幾個模塊。分別講述一下各個模塊的功能和特點,音頻是從麥克風采集,音視頻從攝像 頭抓取圖像,也可以抓取屏幕圖片,比如游戲直播。當有混音需求時,也可以采集聲卡的音 頻數(shù)據(jù),然后跟麥克風的聲音進行混音。對于采集的音頻一般先要進行降
5、噪處理,特別是戶 外環(huán)境下,噪聲會上傲明顯。如果涉及到互動直播,有雙向通話的情況,還需要對音頻進行 回聲抑制處理防止出現(xiàn)回聲效果。對于采集的圖像可以進行一些特效濾鏡處理上匕如黑白, 黃昏,提亮,美顏等,這些處理非常耗費性能,一般都是需要用opengl es來實現(xiàn)。也可 以進行圖像疊加,比如給主播加個帽子,或者為了保護版權,加個水印圖片。所有的這些操 作都有實時性要求,因為后端要編碼成視頻流。因此,對于一般的圖像處理算法,當用到視 頻場景下,有時很難達到性能要求,比如要處理25幀每秒,特別是移動設備,這個性能就 更加難達到要求,都是需要進行一些定制優(yōu)化。目前主流的視頻編碼標準就是h.264,編碼
6、 質量,性能,碼率,各方面都比較好,而且使用最廣泛,現(xiàn)在互聯(lián)網(wǎng)最常用的就是h.264 視頻。對于vp8視頻編碼,這是google推出的標準,是webrtc實時視頻通話主要編碼 標準,但是目前在網(wǎng)絡直播,點播方面不常用。而音頻的aac標準,是用的最多的音頻編 碼,非常流行,編碼的音質也好。而speex音頻標準,是一套主要針對語音的開源免費, 無專利保護的音頻壓縮格式。也很適合網(wǎng)絡應用,在網(wǎng)絡應用上有著自己獨特的優(yōu)勢,但是 還不夠流行,沒有普遍使用。對于音視頻贛來說,上行推流主要采用rtmp協(xié)議”用這個 協(xié)議的延時小,但是可能會有端口上的限制。如果用hls推流,那些延時會比較大,走http 協(xié)議,
7、沒有網(wǎng)絡端口的限制。對于下行的播放來說,主要有http-flv z hls , rtmp這幾種 拉流方式。其中http-flv , hls這兩種方式會在流媒體服務器上進行重新封裝,以及協(xié)議轉 換。對于點播服務來說,播放用的主流方式是http-flv , http-mp4 , his這幾種,全部走 http協(xié)議,比較適合網(wǎng)絡傳輸。音視頻流通過cdn平臺分發(fā)之后,能支持超大量的訪問, 干萬級別都沒有問題的。對于播放器來說,就是一個推流的逆向過程,先接受媒體流,然后 解析協(xié)議,解封裝,解碼音視頻數(shù)據(jù),后處理,最后顯示畫面,聲音。如果用到后處理,比 如圖像可以色彩增強,音頻可以音量增強。顯示的時候也可
8、以做一些處理”比如全屏的時候 圖像拉伸,或者填黑邊,或者裁剪,也可加上走馬燈,進行版權保護。主要的優(yōu)化方向,第一,要選擇一個通用性好,性能良好,復雜度相對較低的編碼器,現(xiàn)在 主流的就是h.264編碼器,開源的主要是x264和openh264 z其中openh264是思科開 源項目,針對實時視頻通話場景做了優(yōu)化。比如選擇用h.265編碼器,但是編解碼復雜度 太高,特別是在移動平臺性能達不到要求,另外,對于低分辨率的視頻直播,節(jié)省不了碼率, 圖像質量也沒有明顯的提高。第二,在選定一個編碼標準之后,就要看是否采用硬件編碼方 式,如果采用軟件編碼,那么會比較耗費cpu資源,表現(xiàn)出來就是設備發(fā)燙,耗電快
9、,但 是設備兼容性好,幾乎可以在任何設備上運行。如果采用硬件編碼方式,那么編碼性能好, 完全可以支持1080p圖像全高清的實時編碼,而且也省電,但是設備的適配性比較差,特 別android設備的硬件編碼模式支持的上匕較差。ios設備支持的適配性比較好,但是,沒有 開放更底層的編碼接口,難做到按幀獲取碼流,進行實時直播。另外用硬件編碼方式,也比較難做動態(tài)碼率控制。針對網(wǎng)絡直播和點播場景,在編碼階段要盡量做到碼率波動的平滑, 這個需要優(yōu)化碼率控制算法。第三,對于gop的大小也要根據(jù)應用場景做適當?shù)恼{(diào)整,如 果關鍵幀之間的間隔小那么碼率會出現(xiàn)頻繁的尖峰發(fā)送數(shù)據(jù)的時候會造成瞬間的擁塞。第四,可以通過設
10、置buffer來解決碼率波動問題,比如在推流端增加一個發(fā)送緩沖區(qū),按 照固定的碼率發(fā)送數(shù)據(jù),而不是根據(jù)每幀數(shù)據(jù)來發(fā)送。同樣在播放器也可以設置一個接收buffer,解決網(wǎng)絡波動又橢放造成的頻繁卡頓。但是這個設置過大的buffer會增加延時, 不適合直播應用,上倣適合點播應用。對于直播場景,要求端到端的延時盡量小,播放端能 快速啟動看到畫面。對于rtmp直播還要解決累計延時,可以采用在播放器主動清空buffer 的方法。這樣低延時,小緩沖,主動清空緩沖的方案,抗網(wǎng)絡波動比較差,一旦網(wǎng)絡不好, 會造成不停的音視頻卡頓,但比較適合直播場景。對于點播場景,可以適當?shù)脑龃骲uffer,進行碼流的預加載,在
11、網(wǎng)絡好的時候,盡量多加載一些視頻數(shù)據(jù),這樣抗網(wǎng)絡的波動就好,基本不會出現(xiàn)卡頓,也沒有延時要求,因此這個方案比較適合點播場景。第五,不管是直播 還是點播服務,都存在一個端到端的數(shù)據(jù)傳輸鏈路問題。在推流端先要連接到接流服務器, 這時就要選擇合適的節(jié)點,一種是根據(jù)客戶端的dns域名來選擇就近的節(jié)點,當dns配 置有誤的時候,可能會存在調(diào)度不準的問題。另外一種是根據(jù)客戶端的岀口 ip來選擇節(jié)點, 這種調(diào)度方式會比較準確一些。同樣對于播放器端也是采用類似的方式來選擇流媒體服務器 集群的邊緣節(jié)點。第六,在整個直播或點播過程中,最好有實時統(tǒng)計數(shù)據(jù),包括網(wǎng)絡類型, 機器信息,實時網(wǎng)絡狀況,幀率,碼率,分別率等。這樣可以分析遇到的各種問題,特別是 對于直播場景,當網(wǎng)絡波動,出現(xiàn)卡頓時,可以為動態(tài)調(diào)整qos提供依據(jù)。第七,對于直 播場景,采用qos策略,動態(tài)調(diào)整編碼參數(shù),包括幀率,碼率,分辨率,緩沖區(qū)。當直播 出現(xiàn)卡頓,采用快降慢升的策略,當網(wǎng)絡波動比較厲害,這樣可以避免編碼參數(shù)頻繁的來回 調(diào)整,造成惡性循環(huán)。當進行編碼參數(shù)調(diào)整時,一般是根據(jù)分辨率把碼率”幀率分成幾個檔 次,然后在根據(jù)一定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國防爆電器行業(yè)十三五規(guī)劃及發(fā)展趨勢分析報告
- 2025-2030年中國鋪管船市場競爭狀況及發(fā)展趨勢分析報告
- 2025-2030年中國鎢材產(chǎn)業(yè)十三五規(guī)劃及投資戰(zhàn)略研究報告
- 2025年吉林省安全員C證考試(專職安全員)題庫及答案
- 2025-2030年中國道路標線行業(yè)規(guī)模分析及發(fā)展建議研究報告
- 2025-2030年中國蜂王漿凍干粉市場發(fā)展狀況及營銷戰(zhàn)略研究報告
- 2025-2030年中國背光模組行業(yè)運行狀況及發(fā)展趨勢分析報告
- 2025-2030年中國翡翠玉鐲市場運行狀況與前景趨勢分析報告
- 揚州大學《室內(nèi)設計(實踐)》2023-2024學年第二學期期末試卷
- 西藏職業(yè)技術學院《智能應用系統(tǒng)開發(fā)》2023-2024學年第二學期期末試卷
- DeepSeek從入門到精通培訓課件
- 2024-2025學年第二學期學校總務工作計劃(附2月-6月安排表行事歷)
- 23G409先張法預應力混凝土管樁
- 《幼兒教育政策與法規(guī)》教案-單元5 幼兒的權利與保護
- 三年級下冊口算天天100題(A4打印版)
- 推進優(yōu)質護理-改善護理服務-PPT課件
- T∕CNFAGS 3-2021 三聚氰胺單位產(chǎn)品消耗限額
- 幾種藏文輸入法的鍵盤分布圖
- 山西公務員錄用審批表
- ASTM-D3330剝離強度測試標準中文版
- 零部件檢驗卡
評論
0/150
提交評論