資源描述:
《音視頻直播技術(shù)的總結(jié).pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、音視頻直播技術(shù)的總結(jié)1.流媒體協(xié)議流媒體協(xié)議是服務(wù)器與客戶端之間通信遵循的規(guī)定。當(dāng)前網(wǎng)絡(luò)上主要的流媒體協(xié)議如圖所示。2.直播平臺(tái)參數(shù)對(duì)比主流互聯(lián)網(wǎng)視音頻平臺(tái)直播服務(wù)的參數(shù)對(duì)比如圖所示:3.直播技術(shù)架構(gòu)圖:可以看到直播的流程可以分為如下幾步:采集—>處理—>編碼和封裝—>推流到服務(wù)器—>服務(wù)器流分發(fā)—>播放器流播放1.音視頻采集采集是整個(gè)視頻推流過程中的第一個(gè)環(huán)節(jié),它從系統(tǒng)的采集設(shè)備中獲取原始視頻數(shù)據(jù),將其輸出到下一個(gè)環(huán)節(jié)。視頻的采集涉及兩方面數(shù)據(jù)的采集:音頻采集和圖像采集,它們分別對(duì)應(yīng)兩種完全不同的輸入源和數(shù)據(jù)格式。音頻采集:麥克風(fēng)采集,系統(tǒng)
2、采集等音頻數(shù)據(jù)既能與圖像結(jié)合組合成視頻數(shù)據(jù),也能以純音頻的方式采集播放,后者在很多成熟的應(yīng)用場(chǎng)景如在線電臺(tái)和語音電臺(tái)等起著非常重要的作用。音頻的采集過程主要通過設(shè)備將環(huán)境中的模擬信號(hào)采集成PCM編碼的原始數(shù)據(jù),然后編碼壓縮成AAC等格式的數(shù)據(jù)分發(fā)出去。常見的音頻壓縮格式有:MP3,AAC,HE-AAC,Opus,F(xiàn)LAC,Vorbis(Ogg),Speex和AMR等。音頻采集和編碼主要面臨的挑戰(zhàn)在于:延時(shí)敏感、卡頓敏感、噪聲消除(Denoise)、回聲消除(AEC)、靜音檢測(cè)(VAD)和各種混音算法等。視頻采集:攝像頭采集,屏幕錄制,視頻文件
3、等將圖像采集的圖片結(jié)果組合成一組連續(xù)播放的動(dòng)畫,即構(gòu)成視頻中可肉眼觀看的內(nèi)容。圖像的采集過程主要由攝像頭等設(shè)備拍攝成YUV編碼的原始數(shù)據(jù),然后經(jīng)過編碼壓縮成H.264等格式的數(shù)據(jù)分發(fā)出去。常見的視頻封裝格式有:MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB和WebM等。圖像由于其直觀感受最強(qiáng)并且體積也比較大,構(gòu)成了一個(gè)視頻內(nèi)容的主要部分。圖像采集和編碼面臨的主要挑戰(zhàn)在于:設(shè)備兼容性差、延時(shí)敏感、卡頓敏感以及各種對(duì)圖像的處理操作如美顏和水印等。2.音視頻處理音頻可以變聲變調(diào),視頻可以美顏加水印,濾鏡等視
4、頻或者音頻完成采集之后得到原始數(shù)據(jù),為了增強(qiáng)一些現(xiàn)場(chǎng)效果或者加上一些額外的效果,我們一般會(huì)在將其編碼壓縮前進(jìn)行處理,比如打上時(shí)間戳或者公司Logo的水印,祛斑美顏和聲音混淆等處理。在主播和觀眾連麥場(chǎng)景中,主播需要和某個(gè)或者多個(gè)觀眾進(jìn)行對(duì)話,并將對(duì)話結(jié)果實(shí)時(shí)分享給其他所有觀眾,連麥的處理也有部分工作在推流端完成。3.編碼和封裝編碼:把原始音頻PCM,視頻yuv編碼為AAC和h264等視頻編碼的意義原始視頻數(shù)據(jù)存儲(chǔ)空間大,一個(gè)1080P的7s視頻需要817MB原始視頻數(shù)據(jù)傳輸占用帶寬大,10Mbps的帶寬傳輸上述7s視頻需要11分鐘而經(jīng)過H.26
5、4編碼壓縮之后,視頻大小只有708k,10Mbps的帶寬僅僅需要500ms,可以滿足實(shí)時(shí)傳輸?shù)男枨螅詮囊曨l采集傳感器采集來的原始視頻勢(shì)必要經(jīng)過視頻編碼。編碼基本原理為什么巨大的原始視頻可以編碼成很小的視頻呢?這其中的技術(shù)是什么呢?核心思想就是去除冗余信息:1)空間冗余:圖像相鄰像素之間有較強(qiáng)的相關(guān)性2)時(shí)間冗余:視頻序列的相鄰圖像之間內(nèi)容相似3)編碼冗余:不同像素值出現(xiàn)的概率不同4)視覺冗余:人的視覺系統(tǒng)對(duì)某些細(xì)節(jié)不敏感5)知識(shí)冗余:規(guī)律性的結(jié)構(gòu)可由先驗(yàn)知識(shí)和背景知識(shí)得到封裝:把AAC和h264封裝成MP4或fiv等格式目前,我們?cè)诹髅襟w
6、傳輸,尤其是直播中主要采用的就是FLV和MPEG2-TS格式,分別用于RTMP/HTTP-FLV和HLS協(xié)議.4.推流到服務(wù)器推流是直播的第一公里,直播的推流對(duì)這個(gè)直播鏈路影響非常大,如果推流的網(wǎng)絡(luò)不穩(wěn)定,無論我們?nèi)绾巫鰞?yōu)化,觀眾的體驗(yàn)都會(huì)很糟糕。所以也是我們排查問題的第一步,如何系統(tǒng)地解決這類問題需要我們對(duì)相關(guān)理論有基礎(chǔ)的認(rèn)識(shí)。推送協(xié)議主要有三種:1.RTSP(RealTimeStreamingProtocol):實(shí)時(shí)流傳送協(xié)議,是用來控制聲音或影像的多媒體串流協(xié)議,由RealNetworks和Netscape共同提出的;2.RTMP(Re
7、alTimeMessagingProtocol):實(shí)時(shí)消息傳送協(xié)議,是Adobe公司為Flash播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開發(fā)的開放協(xié)議;3.HLS(HTTPLiveStreaming):是蘋果公司(AppleInc.)實(shí)現(xiàn)的基于HTTP的流媒體傳輸協(xié)議;主要介紹RTMPRTMP協(xié)議基于TCP,是一種設(shè)計(jì)用來進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用來在flash/AIR平臺(tái)和支持RTMP協(xié)議的流媒體/交互服務(wù)器之間進(jìn)行音視頻和數(shù)據(jù)通信。支持該協(xié)議的軟件包括AdobeMediaServer/UltrantMediaServer/red5等
8、。它有三種變種:RTMP工作在TCP之上的明文協(xié)議,使用端口1935;RTMPT封裝在HTTP請(qǐng)求之中,可穿越防火墻;RTMPS類似RTMPT,但使用的是HTTPS