Web音視頻入門系列——音視頻基礎(chǔ)知識

前言

21世紀(jì)以來,隨著網(wǎng)絡(luò)基礎(chǔ)設(shè)施的不斷完善,3G、4G、乃至現(xiàn)今5G網(wǎng)絡(luò)的普及,互聯(lián)網(wǎng)徹底改變了我們的生活。以前在家里看一部電影需要買DVD和播放機,現(xiàn)在直接打開瀏覽器,進(jìn)各大視頻網(wǎng)站就可以看了,而且有非常豐富的視頻資源供你選擇。與此同時也涌現(xiàn)了許許多多的應(yīng)用場景:遠(yuǎn)程會議、遠(yuǎn)程醫(yī)療、在線教育等等。許多開發(fā)者也紛紛開始在Web平臺上開發(fā)自己的音視頻應(yīng)用。為此我想來分享一系列和Web端開發(fā)音視頻相關(guān)的內(nèi)容,和大家共同學(xué)習(xí)。本章我會分享一些音視頻的基礎(chǔ)知識,水平有限,歡迎大家指出錯誤或者提建議哦!

音頻

人耳能聽到的聲音我們都可以稱之為音頻,我們經(jīng)常會用這個詞去形容錄制好可播放的一段聲音。下面我會介紹一些與音頻相關(guān)的重要概念。包括采樣率、比特率(碼率)和常見的音頻編碼。這些是我們在制作、存儲、和傳輸音頻所必須了解的內(nèi)容。

采樣率

采樣率(也稱為采樣速度或者采樣頻率)定義了每秒從連續(xù)信號中提取并組成離散信號的采樣個數(shù),它用赫茲(Hz)來表示。采樣頻率的倒數(shù)叫作采樣周期或采樣時間,它是采樣之間的時間間隔。注意不要將采樣率與比特率(bit rate,亦稱“位速率”)相混淆。(取自維基百科)

通俗來講,采樣率的大小對我們聽一個音頻最直觀的影響就是”清晰度“或者說音頻的”還原程度“。理論上錄制時的采樣率越高,能描述的聲波頻率就越接近原聲,更能還原聲音原本的樣子,聽感上更接近臨場聽這個聲音。但是人耳一般能辨別的采樣率也有上限,采樣率達(dá)到人耳能分辨的閾值后,再高的采樣率人耳也難以聽出其中的差別。

一般情況下錄音設(shè)備決定了一個音頻采樣率的上限。生活中,打電話和播放一首高清音樂就能體現(xiàn)出采樣率的不同,我們明顯能聽出來高清音樂更加的”清晰“,更好的還原出聲音,這是因為電話麥克風(fēng)采樣率一般為8000赫茲左右,而一首音樂是在專業(yè)的錄音棚中由專門的錄音設(shè)備錄制,采樣率通常是數(shù)萬赫茲。

采樣率

比特率(碼率)

比特率,又稱碼率,我們先看看wiki上對比特率的解釋:

比特率是單位時間播放連續(xù)的媒體如壓縮后的音頻或視頻的比特數(shù)量。在這個意義上講,它相當(dāng)于術(shù)語數(shù)字帶寬消耗量,或吞吐量。
比特率規(guī)定使用“比特每秒”(bit/s或bps)為單位,經(jīng)常和國際單位制詞頭關(guān)聯(lián)在一起,如“千”(kbit/s或kbps),“兆”(百萬)(Mbit/s或Mbps),“吉”(Gbit/s或Gbps)和“太”(Tbit/s或Tbps)。
雖然經(jīng)常作為“速度”的參考,比特率并不測量“‘距離’/時間”,而是被傳輸或者被處理的“‘二進(jìn)制碼數(shù)量’/時間”,所以應(yīng)該把它和傳播速度區(qū)分開來,傳播速度依賴于傳輸?shù)慕橘|(zhì)并且有通常的物理意義。(取自維基百科)

維基上的解釋已經(jīng)非常清楚了。比特率與音頻文件占用的存儲空間成正比,比特率越高,代表這個音頻每秒包含數(shù)據(jù)量越大,通常也表示這個音頻更清晰,音質(zhì)更好。

不考慮外部因素,一段音頻的音質(zhì)會與采樣率和比特率有著直接關(guān)系,但是一味的追求較高的采樣率和比特率也會帶來存儲空間和帶寬的浪費。所以在錄制音頻時,我們需要結(jié)合實際情況,根據(jù)應(yīng)用場景選擇合適的比特率和采樣率,這樣才能在滿足需求的同時降低成本。

音頻編碼

音頻編碼就是指將獲取到的音頻數(shù)據(jù)按約定格式進(jìn)行轉(zhuǎn)換。編碼時通常會對數(shù)據(jù)進(jìn)行一定程度上的壓縮,也因此分為2類:有損格式和無損格式。不同的壓縮算法,對數(shù)據(jù)的處理方式也不同。有些編碼方式會丟棄一部分音頻數(shù)據(jù),壓縮率較高,從而達(dá)到減小占用的存儲空間的目的。而無損格式正相反,指的是編碼后,在下次播放進(jìn)行解碼得到的數(shù)據(jù)與原音頻數(shù)據(jù)一致,沒有損失,但是因此往往壓縮率較低,存儲時占用的空間較大。同一段音頻,一般使用有損格式比使用無損格式編碼存儲后所占用的存儲空間小。這里也需要注意,現(xiàn)在有很多編碼格式轉(zhuǎn)換工具,如果你將有損格式轉(zhuǎn)換為無損格式,他只是將已經(jīng)有損的數(shù)據(jù)作為基礎(chǔ),用無損的格式存儲下來,所以他本質(zhì)上音頻數(shù)據(jù)還是已經(jīng)有缺失的,也就是”有損的“,不能把有損格式存儲的數(shù)據(jù)恢復(fù)到原來無損的樣子。

常見的有損格式:MP3,AAC,Ogg
常見的無損格式:WAV,F(xiàn)LAC,APE

下面簡單介紹一下幾種常見的編碼格式:

MP3

MP3

MP3 是我們生活中大量使用的一種音頻格式,英文全稱為:MPEG(Moving Picture Experts Group)Audio Layer 3,存儲的文件后綴名為:.mp3。它在存儲時舍棄了一部分對人類聽覺不重要的音頻數(shù)據(jù),從而能將音頻數(shù)據(jù)壓縮存儲成較小的文件。是一種有損格式。它的比特率通常位于128kbps和320kbps之間。
MP3具有很多優(yōu)勢,大部分?jǐn)?shù)碼設(shè)備都可以播放MP3格式的音頻,而且單個文件所占用的存儲空間較小,使它分享和傳播十分的便捷。他的缺點也顯而易見,由于是一種有損格式,帶來了音質(zhì)上的損失(尤其是高頻部分),雖然許多場景下MP3格式提供的音質(zhì)已經(jīng)足夠了,但是如果要追求更高的音質(zhì),就不能使用MP3格式了。

AAC

AAC

AAC,高級音頻編碼,全稱:Advanced Audio Coding,與其相關(guān)的文件后綴名有:.aac,.mp4,.m4a。AAC是一種高壓縮比的編碼格式,屬于有損格式,AAC作為MP3的后繼者被設(shè)計出來,相較于MP3格式,它的音質(zhì)表現(xiàn)比MP3更好,可選擇的采樣率范圍比MP3更大,且支持更多的比特率。它的算法更先進(jìn),在相同比特率的情況下,使用AAC的音質(zhì)要比MP3的好。但即便如此,它依舊是一種有損格式。而且它在設(shè)備上支持的程度沒有MP3廣,一些設(shè)備上需要安裝對應(yīng)的解碼器才能播放。

WAV

WAV

全稱:Waveform Audio File Format,簡稱WAV,與其相關(guān)的文件后綴名為:.wav。WAV可以稱為是一種無損格式,因為它編碼時不會對原數(shù)據(jù)進(jìn)行壓縮,因此也就沒有數(shù)據(jù)會丟失。但是如果音頻數(shù)據(jù)本身已經(jīng)“有損”了(從有損格式轉(zhuǎn)換過來等情況下),它會原樣存儲,所以存儲下來的音頻數(shù)據(jù)是有損的。它的優(yōu)點便是不會對數(shù)據(jù)進(jìn)行壓縮,原樣存儲、還原,自由度較高,由于是由微軟和IBM開發(fā)的,在windows平臺有著廣泛的支持,缺點便是占用的存儲空間較大。

FLAC

FLAC

全稱:Free Lossless Audio Codec,簡稱FLAC,相關(guān)的文件后綴名為:.flac。FLAC是一種無損壓縮格式,不同于AAC和MP3等有損壓縮格式,它對數(shù)據(jù)進(jìn)行壓縮后不會損失數(shù)據(jù)。flac是一種自由開放的編碼格式,它支持任意的采樣率,可以按1Hz的幅度進(jìn)行微調(diào)。我們也可以自由設(shè)定flac的壓縮率,類似gzip,選擇高壓縮率的情況下,文件體積越小,但是解壓需要耗費的時間越多。選擇低壓縮率時,文件體積大,但是解壓耗費的時間短。FLAC在現(xiàn)代設(shè)備上有著廣泛的支持,許多平臺的無損音樂都采用這種格式,但是它在一些老設(shè)備上的支持不足,可能需要安裝特定的編解碼器來使用。

視頻

視頻(英語:video)是泛指將一系列的靜態(tài)影像以電信號方式加以捕捉、紀(jì)錄、處理、存儲、發(fā)送與重現(xiàn)的各種技術(shù)。(取自維基百科)

視頻在我們現(xiàn)在的生活中無處不在,我們要制作一段視頻,開發(fā)與其相關(guān)的應(yīng)用也需要了解相關(guān)的知識。下面我會介紹一些視頻的基礎(chǔ)知識,包括逐行掃描和隔行掃描、分辨率、幀率等等。為了更好的傳輸和存儲,視頻也有一系列的格式和編碼方式,我也會介紹幾種常見的格式。

逐行掃描和隔行掃描

逐行掃描和隔行掃描,是將圖像呈現(xiàn)在顯示設(shè)備上的2種方式,如同它們的名字一樣,逐行掃描指的是顯示器會掃描畫面中的每一行,完整的顯示每一幀的畫面,但是由于完整顯示會占用大量的帶寬,部分顯示設(shè)備(如早期的電視),無法流暢連貫的顯示畫面,因此需要用到隔行掃描了。參考下方的gif,這是被放慢了的隔行掃描。隔行掃描便是設(shè)備交換掃描偶數(shù)行和奇數(shù)行進(jìn)行顯示。我們平時所見到的清晰度有720p、1080p、720i、1080i,前面的數(shù)字指的就是垂直方向有多少條水平掃描線(這里是垂直方向的像素),而后面的i就是指的隔行掃描(interlaced scan),p指的是逐行掃描(progressive scan)。理論上隔行掃描的視頻體積和帶寬消耗比逐行掃描要小一半,但是隔行掃描人眼容易感知到閃爍,而且在顯示移動的物體時,物體周圍會有晃動現(xiàn)象,整體畫面效果不如逐行掃描。

隔行掃描

分辨率

分辨率(英語:Image resolution)泛指量測或顯示系統(tǒng)對細(xì)節(jié)的分辨能力。此概念可以用時間、空間等領(lǐng)域的量測。日常用語中之分辨率多用于影像的清晰度。分辨率越高代表影像質(zhì)量越好,越能表現(xiàn)出更多的細(xì)節(jié);但相對的,因為紀(jì)錄的信息越多,文件也就會越大。(取自維基百科)

視頻是由一幀幀圖像構(gòu)成的,因此也有分辨率的概念。描述分辨率的單位有:dpi(點每英寸)、lpi(線每英寸)和ppi(每英寸像素)。日常生活中,通常會用 1920x1080 (水平像素數(shù)x垂直像素數(shù))這樣的方式來描述顯示分辨率,分辨率與視頻占用的存儲空間成正比,分辨率越高的視頻傳輸和存儲成本越高,畫面也越清晰。

幀率

幀率是用于測量顯示幀數(shù)的度量。測量單位為“每秒顯示幀數(shù)”(Frame per Second,F(xiàn)PS)或“赫茲”,一般來說FPS用于描述視頻、電子繪圖或游戲每秒播放多少幀(取自維基百科)

聊到幀率,我們先要知道為什么我們看視頻,它的畫面是“動”的。我們平時看到的視頻、動畫、gif動圖等等,它們其實都是不停的在播放一張張靜止的圖片,欺騙了我們的眼睛,讓我們的眼睛看上去它們在“動”。這是因為人眼有一種視覺暫留效果,當(dāng)我們用自己的眼睛看一個物體時,它會成像于視網(wǎng)膜上,并由視神經(jīng)輸入我們的大腦,讓大腦感知到這個“畫面”,但當(dāng)物體移去時,視神經(jīng)對物體的印象不會立即消失,而是會在很短的時間內(nèi)保留下來,人眼的這種性質(zhì)被稱為“視覺暫留效果”。因此當(dāng)每秒連續(xù)呈現(xiàn)約10至12幀的畫面時,我們的眼睛就會認(rèn)為它是連貫的,就“動”起來了。

通常來講,幀率越高,我們看到的畫面就會越流暢,我在下方放2張動圖大家可以對比一下,這是一個黑色圓形從左移動到右邊的一個動畫,根據(jù)幀率設(shè)置過渡幀,上方的動畫幀率只有5fps,下方的是30fps的。

5fps
30fps

可以發(fā)現(xiàn)5fps的那張圖我們會覺得他很卡,而30fps那張看上去就流暢許多,黑色圓形的”移動“很連貫,這就是幀率高低所帶來的差別。我們平時看的視頻或者電影通常有24幀~30幀左右,現(xiàn)在的視頻網(wǎng)站和一些電影也支持更高的幀率,比如b站和油管都支持1080p60幀的視頻。我們有時候看視頻或者玩游戲會突然覺得很”卡“,其實這個時候就是因為這段時間內(nèi)畫面的幀率突然大幅降低,比如因為網(wǎng)絡(luò)不好丟包了,或者是設(shè)備性能原因等等,畫面的fps突然降低,人眼感知到了這個變化,就導(dǎo)致我們認(rèn)為畫面變”卡“了。

比特率(碼率)

視頻同樣有比特率的概念,與音頻相同,比特率越高的視頻,意味著畫質(zhì)和分辨率更優(yōu)秀,觀感更好,傳輸和存儲的成本也更高。

視頻格式&編碼格式

前面介紹過,視頻其實就是由一幀幀畫面組成的,因此一個視頻的數(shù)據(jù)量往往是非常龐大的,隨著視頻視頻時長、比特率的增加,視頻的數(shù)據(jù)量也會不斷增多。為此我們需要強大的視頻編碼格式對視頻進(jìn)行壓縮,常見的有:VP8/VP9,H.264/H.265。同時,視頻文件還需要考慮到聲音,字幕,版權(quán)等等多方面因素,非常復(fù)雜。為了方便視頻的傳輸與存儲,誕生了許許多多的視頻格式,常見的有:MP4、AVI、WebM、MOV、WMV、RMVB、FLV等等。下面我來簡單介紹其中的幾種。

AVI

AVI

AVI是英語 Audio Video Interleave 的首字母縮寫,文件后綴名為:.avi。由微軟在1992年推出。它對視頻采用了一種有損壓縮方式,壓縮率較高,畫面質(zhì)量一般,應(yīng)用范圍較廣,在windows平臺上受到廣泛支持。但是由于其壓縮標(biāo)準(zhǔn)不統(tǒng)一,會導(dǎo)致在播放解碼時出現(xiàn)莫名其妙的問題,需要用戶手動安裝合適的解碼器。

FLV

FLV

Flash Video(簡稱FLV),文件后綴名為:.flv,是一種網(wǎng)絡(luò)視頻格式,用作流媒體格式,它的出現(xiàn)有效地解決了視頻文件導(dǎo)入 Flash 后,使導(dǎo)出的SWF文件體積龐大,不能在網(wǎng)絡(luò)上有效使用等缺點。由于它體積較小、因此在網(wǎng)絡(luò)上傳輸?shù)膸挸杀疽残。罅康囊曨l網(wǎng)站都在使用這種格式,包括油管、b站、niconico、優(yōu)酷等等。以前通常會將flv視頻包在一個 Flash 中進(jìn)行播放,但是由于 Flash 存在著包括大量耗電以及信息安全等諸多問題,2011年 Adobe 公司宣布停止開發(fā)個人電腦平臺以外的 Flash Player,許多公司也大規(guī)模放棄使用 Flash 播放器,改用HTML5。開發(fā)者可以使用 flv.js 在自己的 Web 平臺上播放該格式的視頻。

WebM

WebM

WebM 是一個開放、免費的視頻格式,文件后綴名為:.webm,它能提供高質(zhì)量的視頻壓縮以配合HTML5使用。前面提到 Flash 技術(shù)已經(jīng)被淘汰,為了配合HTML5,能在Web平臺上播放視頻,谷歌贊助開發(fā)了 WebM。它采用了VP8及其后續(xù)版本VP9作為視頻編解碼格式。目前,Edge、Firefox、Chrome瀏覽器已經(jīng)支持播放WebM的視頻,Safari有限支持。

參考caniuse

VP8/VP9

VP8

VP8是一個開放的影像編碼格式,由 On2 Technologies 開發(fā),后來該公司被谷歌收購。它能以較少的數(shù)據(jù)提供高質(zhì)量的視頻,而且只需較小的處理能力即可播放視頻。VP9則是為了替代VP8產(chǎn)生的,在其基礎(chǔ)上做了許多改進(jìn),相比于 H.265 編碼,許多瀏覽器都支持 VP9(WebM)視頻格式。

H.264/H.265


H.264,高級視頻編碼(英語:MPEG-4 Part 10, Advanced Video Coding,縮寫為MPEG-4 AVC),如今它已經(jīng)成為高精度視頻錄制、壓縮和發(fā)布的最常用格式之一,它能用較低的碼率提供高質(zhì)量的圖像,容錯能力強,網(wǎng)絡(luò)適應(yīng)性強,在同等圖像質(zhì)量的條件下,H.264 的壓縮比是 MPEG-4 的1.5~2倍。因此它能夠應(yīng)用于各種各樣的網(wǎng)絡(luò)和系統(tǒng)的各應(yīng)用上,包括低和高比特率,低和高分辨率視頻,廣播,DVD存儲等等。H.265 ,又稱為高效率視頻編碼,是 H.264 的繼任者,它不僅提升畫面質(zhì)量,同時也能達(dá)到H.264兩倍的壓縮率,支持4K甚至更高分辨率的視頻,最高可達(dá)8K。但是目前支持播放 H.265 的設(shè)備較少,需要安裝對應(yīng)的解碼器才能播放。

結(jié)尾

音視頻領(lǐng)域在蓬勃發(fā)展,用戶對音視頻的要求也在不斷提高:更高的畫質(zhì)音質(zhì),更高的分辨率(4k、8k),更低的時延等等都在不斷促進(jìn)著這一領(lǐng)域的發(fā)展。與音視頻相關(guān)的知識也非常復(fù)雜深奧,遠(yuǎn)非一兩篇文章能講清楚的。我的水平有限,近期也是在開發(fā)Web音視頻相關(guān)的內(nèi)容,踩了不少坑,覺得開發(fā)這方面內(nèi)容還是需要學(xué)習(xí)不少相關(guān)知識的。寫這篇文章是想與和我一樣想要開發(fā)音視頻應(yīng)用的開發(fā)者,分享知識,共同學(xué)習(xí),也十分歡迎大家提出寶貴的意見。感謝大家的閱讀!

「本文為個人原創(chuàng),首發(fā)于聲網(wǎng)開發(fā)者社區(qū)

(文中部分圖片來自互聯(lián)網(wǎng),如有侵權(quán)請聯(lián)系刪除。)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 說到視頻,大家自己腦子里基本都會想起電影、電視劇、在線視頻等等,也會想起一些視頻格式 AVI、MP4、RMV...
    ForestSen閱讀 23,991評論 10 203
  • 1.1 視頻編碼 視頻編碼指的就是通過特定的壓縮技術(shù),將某個視頻格式文件轉(zhuǎn)換成另一種視頻格式的文件的方式。 視頻流...
    差不多先生Ai閱讀 1,775評論 0 0
  • 基礎(chǔ)概念 一般情況下,視頻流從加載都準(zhǔn)備播放是需要經(jīng)過解協(xié)議、解封裝、解編碼這樣的過程,其中協(xié)議指的就是流媒體協(xié)議...
    南歌ccc閱讀 778評論 0 0
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,822評論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    余生動聽閱讀 10,858評論 0 11

友情鏈接更多精彩內(nèi)容