视频通信基础知识之采集
在之前的文章里,我們說了不少關(guān)于音視頻相關(guān)的內(nèi)容,但是一直沒有系統(tǒng)的來介紹視頻通信,接下來我們將出一個(gè)系列關(guān)于視頻通信的文章。幫助大家對視頻通信有一個(gè)更全面的認(rèn)識。系列文大綱如下:
視頻通信采集
視頻通信處理
視頻通信編碼與封裝
視頻通信的傳輸與推流
今天給大家?guī)硎俏覀兿盗形恼碌牡谝黄兑曨l通信采集》
視頻通信采集是視頻通信的第一步,采集主要包括兩個(gè)方面:視頻采集和音頻采集。
視頻主要是通過攝像頭進(jìn)行采集,這里面涉及到攝像頭的相關(guān)操作以及攝像頭的參數(shù)設(shè)置,由于各個(gè)廠商的攝像頭存在差異,因此這方面也會有一些差異。音頻則通過麥克風(fēng)進(jìn)行采集,不同產(chǎn)品的麥克風(fēng)對音頻采樣率的支持不同。
音視頻通信采集技術(shù)要點(diǎn)
- 圖像采集技術(shù)要點(diǎn):
攝像頭、圖像比例、兼容性等問題
- 音頻采集技術(shù)要點(diǎn):
麥克風(fēng)、音頻采樣率、回聲消除處理、緩沖區(qū)大小等問題
在iOS開發(fā)中,對音視頻的采集都可以用<AVFoundation>框架。而Android開發(fā)主要是基于其C/S層架構(gòu),客戶端提供調(diào)用接口,而實(shí)現(xiàn)工作則是在服務(wù)端完成。
圖像采集
采集內(nèi)容
視頻中我們看到的內(nèi)容是由圖片一張張組合連續(xù)播放而成。圖像的采集過程主要由攝像頭等設(shè)備拍攝成 YUV 的原始數(shù)據(jù),然后經(jīng)過編碼器壓縮成數(shù)據(jù)分發(fā)出去。
圖像是一個(gè)視頻內(nèi)容的主要部分。圖像采集時(shí)主要涉及到下面的參數(shù):
圖像格式:通常采用 YUV 格式存儲原始數(shù)據(jù)信息,其中包含用 8 位黑白表示的灰度圖,以及由 RGB 組合成的彩色圖。
傳輸通道:正常情況下視頻的拍攝只需 1 路通道,隨著 3D、VR等技術(shù)的日漸成熟,為了拍攝一個(gè)360° 的視頻,需要進(jìn)行不同角度的拍攝,然后經(jīng)過多通道傳輸后合成。
分辨率:現(xiàn)在的設(shè)備屏幕尺寸的日益增多增大,視頻采集過程中原始視頻分辨率就起著越來越重要的作用,因?yàn)楹罄m(xù)處理環(huán)節(jié)中使用的所有視頻分辨率的定義都以原始視頻分辨率為基礎(chǔ)。
采樣頻率:采樣頻率反映了采集卡處理圖像的速度和能力。在進(jìn)行高度圖像采集時(shí),需要注意采集卡的采樣頻率是否滿足要求。采樣率越高,圖像質(zhì)量越高,同時(shí)保存這些圖像信息的數(shù)據(jù)量也越大。
以上,構(gòu)成了一個(gè)視頻采集的主要技術(shù)參數(shù),而對于視頻通信開發(fā)者來說,在了解這些細(xì)節(jié)后,有利于在實(shí)際開發(fā)中對采集環(huán)節(jié)中技術(shù)參數(shù)的控制,減少后續(xù)編碼環(huán)節(jié)的壓力。
采集源
圖像的采集源有攝像頭、屏幕錄制等,視頻通信的采集源主要是攝像頭,通過攝像頭獲取圖像信息。這里簡單說一下Android和iOS。
Android中很多基本的架構(gòu)都是C/S層架構(gòu)。Android Camera的架構(gòu)也是C/S架構(gòu),service端為Client進(jìn)程提供豐富的接口,使它能輕松獲得Camera數(shù)據(jù)的地址,然后處理這些數(shù)據(jù)。但是在Android中調(diào)用攝像頭需要相應(yīng)的權(quán)限,而且權(quán)限申請?jiān)贏ndroid 6.0后變成了動態(tài)申請。
而iOS端視頻采集,相比安卓更加便利,使用AVFoundation框架提供的一系列的API即可實(shí)現(xiàn)。
音頻采集
在說音頻采集內(nèi)容之前,先了解一些音頻基礎(chǔ)知識:
PCM:脈沖編碼調(diào)制,一種將聲音數(shù)字化的方法。
采樣精度(bit pre sample):每個(gè)聲音樣本的采樣位數(shù)。
聲道(channel):相互獨(dú)立的音頻信號數(shù),單聲道(mono)立體聲(Stereo)
語音幀(frame):在音頻數(shù)據(jù)中,幀(frame)是所有通道的一個(gè)樣本。
采樣頻率(sample rate):每秒鐘采集多少個(gè)聲音樣本
采集內(nèi)容
聲音在經(jīng)過麥克風(fēng)后,會轉(zhuǎn)換成一連串電壓變化的信號。要將這樣的電壓變化的信號轉(zhuǎn)化成為PCM信號則需要進(jìn)行三個(gè)過程:抽樣、量化、編碼。要實(shí)現(xiàn)這三個(gè)過程,則需要使用三個(gè)參數(shù),它們是:
采樣頻率、采樣位數(shù)和聲道數(shù)。- 采樣頻率
采樣頻率即每秒鐘取得聲音樣本的次數(shù)。采樣頻率越高,聲音的質(zhì)量也就越好,聲音的還原度越高,但同時(shí)它占的資源比越多。由于人耳的對聲音的頻率分辨有限,太高或太低的頻率并不能分辨出來。在16位聲卡中有22KHz、44KHz等幾級,目前的常用采樣頻率不超過48KHz。
- 采樣位數(shù)
采樣位數(shù)(采樣值)即將采樣樣本幅度量化。它是用來衡量聲音波動變化的一個(gè)參數(shù)。它的數(shù)值越大,分辨率也就越高,所發(fā)出聲音的強(qiáng)度越強(qiáng)。
在計(jì)算機(jī)中采樣位數(shù)一般有8位和16位之分,8位不是說把縱坐標(biāo)分成8份,而是分成2的8次方即256份; 同理16位是把縱坐標(biāo)分成2的16次方65536份。采樣位數(shù)的值越大,其記錄的波形就越接近原始信號。
- 聲道數(shù)
聲道主要有單聲道和立體聲之分,單聲道的聲音只能使用一個(gè)喇叭發(fā)聲(有的也處理成兩個(gè)喇叭輸出同一個(gè)聲道的聲音),立體聲的pcm可以使兩個(gè)喇叭都發(fā)聲(一般左右聲道有分工) ,更能感受到空間效果。
說完采樣頻率、采樣位數(shù)和聲道數(shù),接下來我們看一下PCM文件所占容量公式:
PCM文件存儲量 = (采樣頻率·采樣位數(shù)·聲道數(shù)·時(shí)間)/8 (單位:字節(jié)數(shù))
采集源
音頻源:音頻源相比視頻源來說,其采集源有限主要就是麥克風(fēng)。安卓端音頻采集大都使用AudioRecord,iOS端則會使用蘋果自身的Audio Unit進(jìn)行采樣。
緩沖區(qū):說完音頻源接下來就說一下緩沖區(qū)。緩沖區(qū)是麥克風(fēng)采集到的數(shù)據(jù)后放置的一個(gè)地方。數(shù)據(jù)庫在這里進(jìn)行存放,再被讀取獲得錄制的音頻數(shù)據(jù)。這里會牽扯到緩沖區(qū)大小。緩沖區(qū)設(shè)置得大一些,可以增加系統(tǒng)的穩(wěn)定性;而把緩沖區(qū)設(shè)置得小一寫,則會提升系統(tǒng)的響應(yīng)時(shí)間,減少音頻延遲。
以上就是我們視頻通信采集的所有內(nèi)容,下一篇我們將介紹視頻處理。
總結(jié)
以上是生活随笔為你收集整理的视频通信基础知识之采集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下修改时区和时间
- 下一篇: SVN命令行更新代码