音视频入门-流媒体原理
1. 流媒體概念
不知道你發(fā)現(xiàn)沒有,我們的生活正慢慢的向著“實時”發(fā)生轉(zhuǎn)變。我們獲取、分享信息,乃至日常中的衣食住行,都在變成像“自來水”那樣源源不斷“流體”服務(wù),我們無需提前儲備,只需實時按需取用。這個轉(zhuǎn)變依賴于科技的進步,計算機科技在歷經(jīng)了文件(File)、頁面(Web)時代后,今天來到了以“流(Flows/Streams)”為單位的時代。我們的生活就在各種信息流、數(shù)據(jù)流、媒體流中節(jié)奏越來越快,速度為王,質(zhì)量靠邊站。
向“流”轉(zhuǎn)變最初最典型的應(yīng)用就是流媒體(Streaming Midea)技術(shù),它指的是在網(wǎng)絡(luò)上采用流式傳輸技術(shù)來發(fā)布音頻、視頻以及其他多媒體文件。所謂的流式傳輸就是將音頻、視頻多媒體文件經(jīng)過一定算法編碼壓縮成一個個很小的壓縮包,流媒體服務(wù)器通過特定網(wǎng)絡(luò)協(xié)議進行連續(xù)、實時的傳送,用戶端接收到壓縮包后由播放軟件實時解壓縮實現(xiàn)播放的過程。而所謂的流媒體則特指一切采用這種流失傳輸?shù)拿襟w文件。
流媒體技術(shù)的出現(xiàn)改變了我們還未曾忘記的那種需要將整個音視頻文件下載到本地計算機才能進行觀看,為此要等上漫長時間的傳統(tǒng)媒體播放方式。我們今天通過互聯(lián)網(wǎng)看視頻、看直播、聽音樂,通過各種盒子(IPTV/OTT)看電視、聽廣播如此的方便,一鍵觀看即點即用,其背后就是有著流媒體系統(tǒng)的支撐。
2.流式傳輸特點
以往傳統(tǒng)看視頻的方式是將整個視頻文件下載到本地計算機硬盤,再通過本地播放器程序進行觀看。而流式傳輸則是將連續(xù)視音頻經(jīng)壓縮編碼、數(shù)據(jù)打包后連續(xù)、實時的傳送給接收設(shè)備,用戶端在后續(xù)源源不斷的數(shù)據(jù)包到達的同時對接收到的數(shù)據(jù)進行解壓和播放。這個過程中,只需要等待幾秒或幾十秒的啟動時間就可以正常觀看視頻了,剩余的部分就像“水流”一樣在一邊觀看的同時一邊下載。下圖描繪了流式傳輸?shù)倪^程。
在對于音視頻的傳輸分發(fā)上,我們會經(jīng)常聽到HTTP漸進式、HTTP流、RTMP、RTSP、HLS、HDS、DASH、Websocket等等專業(yè)術(shù)語。對于傳輸協(xié)議后續(xù)文章會專門討論,實際上,從傳輸方式上大致可以分發(fā)傳統(tǒng)文件下載、HTTP漸進式下載、HTTP流式傳輸、實時流媒體傳輸四大類。
HTTP漸進式是指通過支持Seek,終端播放器可從沒下載完成部分中任意選取一個時間點開始播放,如此來滿足不用等整個文件下載完快速播放的需求,一般MP4和FLV格式文件支持較好,打開一個視頻拖拽到中部,短暫緩沖即可播放,點擊暫停后文件仍將被持續(xù)下載就是典型的漸進式下載,目前大型點播網(wǎng)站如YouTube、優(yōu)酷等均采用這種方式。
HTTP流式傳輸或者HTTP流化技術(shù),不同廠商有不同做法,但主要思路都是在服務(wù)端將媒體文件分割成一個個很小的獨立切片文件,文件分片時需要同時產(chǎn)生用于跟蹤切片的索引文件(描述文件),播放器再通過HTTP協(xié)議向服務(wù)端請求一個個小的媒體切片實現(xiàn)點播或直播的播放,我們平常聽到的HLS(Apple)、HDS(Adobe)、MSS(Microsoft) 、DASH(MPEG通用標準)均屬于HTTP流的范疇。下表總結(jié)了不同傳輸方式的特點:
3. 流媒體系統(tǒng)構(gòu)成
流媒體文件從采集到最終播放的路徑就是一套完整的流媒體系統(tǒng)所需的組成部分。
從系統(tǒng)層面來看,編碼層負責(zé)對音視頻文件編碼壓縮(h.264/h.265/VP9/AAC等);封裝層負責(zé)對數(shù)據(jù)包進行容器封裝(flv/ts等);協(xié)議層負責(zé)網(wǎng)絡(luò)打包(RTMP/HTTP等);傳輸層負責(zé)網(wǎng)絡(luò)傳輸(socket/st等);播放層負責(zé)對圖像進行解碼顯示(FLASH/VLS/VIDEO JS等)。
從我們所熟知的產(chǎn)品服務(wù)層面,一套完整的流媒體系統(tǒng)所需的組件一般包括:
(1)編碼器:用于流媒體文件生成的編碼工具;
(2)流媒體數(shù)據(jù);直播信號、點播文件;
(3)流媒體服務(wù)器:用于控制、傳送流媒體數(shù)據(jù)的流媒體服務(wù)器;
(4)傳輸網(wǎng)絡(luò):能夠支持特定流式數(shù)據(jù)傳輸協(xié)議的傳輸網(wǎng)絡(luò);
(5)多終端播放器:各操作平臺用于顯示流式數(shù)據(jù)的播放器。
以上5大組件是一個流媒體系統(tǒng)所必須要的基本組件,隨著近年來的迅猛發(fā)展,能夠承載大規(guī)模流媒體應(yīng)用的內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)也有必要納入流媒體系統(tǒng)的范疇了。除了這些基本系統(tǒng)外,大型的運營及流媒體系統(tǒng)還會有流媒體內(nèi)容制作生產(chǎn)、內(nèi)容管理控制、數(shù)據(jù)監(jiān)控等周邊系統(tǒng)和中間件等。
4. 流媒體涉及技術(shù)
流媒體技術(shù)誕生的主要目的是要在目前“盡力而為”的Internet上傳輸數(shù)據(jù)量非常大的音視頻文件,所以流媒體技術(shù)最核心的就是音視頻編解碼技術(shù)和流式傳輸技術(shù)。
然而,在今天這個“體驗為王”的時代,我們需要面臨的流媒體,不論從用戶量級上還是應(yīng)用場景上來說都是極為復(fù)雜的。靠堆砌幾臺流媒體服務(wù)器,架個開源的OBS和播放器簡單實現(xiàn)功能的時代早已過去。從當下成熟的大型流媒體系統(tǒng)來看,要完成一個支撐高體驗大規(guī)模的流媒體系統(tǒng),必要要考慮的技術(shù)層面有:
(1)云計算基礎(chǔ)服務(wù)相關(guān)技術(shù)
這幾年視音頻技術(shù)、終端硬件平臺、用戶需求極速增長的同時,骨干網(wǎng)、跨運營商等基礎(chǔ)設(shè)施的建設(shè)卻明顯沒有跟上趟。這種現(xiàn)狀下,要實現(xiàn)高穩(wěn)定、高并發(fā)、低延時的流媒體應(yīng)用,基于云架構(gòu)的計算、網(wǎng)絡(luò)、存儲、CDN等底層基礎(chǔ)服務(wù)已經(jīng)變成了必須。硬件虛擬化,網(wǎng)絡(luò)虛擬化能夠最大程度保障視音頻播放的穩(wěn)定性;CDN內(nèi)容分發(fā)網(wǎng)絡(luò)能夠有效應(yīng)對高并發(fā)和突增流量的需求,對流媒體傳輸所有環(huán)節(jié)進行針對性優(yōu)化能夠大幅降低延時;對象存儲滿足了流媒體數(shù)據(jù)的大規(guī)模存儲要求。
(2)視音頻相關(guān)技術(shù)
這個層面包括了視音頻的編/解碼、4K、VR等視音頻核心技術(shù)能力,尤其是在新形勢下移動端編碼和播放的優(yōu)化。這里面包括了對不同硬件平臺、操作系統(tǒng)的實踐,固網(wǎng)移動網(wǎng)等不同網(wǎng)絡(luò)環(huán)境下的理解,以及在弱網(wǎng)情況下的解決方案等。另外,4K、VR、AR等新技術(shù)的發(fā)展能提升提升用戶觀看體驗,甚至引發(fā)全新應(yīng)用場景;新的編碼標準如H.265等能進一步提升視音頻編碼效率,降低對網(wǎng)絡(luò)帶寬、CDN的消耗。
(3)場景化應(yīng)用相關(guān)技術(shù)
雖說流媒體的核心只是音視頻編解碼和流媒體傳輸,但針對當下不同垂直領(lǐng)域?qū)τ诹髅襟w的應(yīng)用,其中一些場景化功能需求,流媒體系統(tǒng)也不得不去考慮。比如秀場娛樂直播的實時錄制,實時水印,實時鑒黃;社交直播的連麥;IPTV/OTT的時移回看;現(xiàn)場直播的云端導(dǎo)播;視頻網(wǎng)站的版權(quán)保護等等。
5.流媒體的應(yīng)用
(1)功能方面
流媒體技術(shù)實質(zhì)上就是用流式傳輸來分發(fā)音視頻,所以從功能上來講,流媒體主要應(yīng)用也就是點播和直播。
■ 點播:
音視頻的點播已經(jīng)非常成熟,其業(yè)務(wù)流程一般為上傳-轉(zhuǎn)碼-編輯制作-入庫-用戶請求-網(wǎng)絡(luò)分發(fā)-播放。類型上可以簡單分為如下幾類:一是以優(yōu)酷、愛奇藝等為代表的音視頻點播網(wǎng)站,特點是少量上傳海量點播;二是以監(jiān)控、秀場直播錄制為代表的錄像點播,特點是海量上傳少量點播;三是以短視頻網(wǎng)站,特點是海量上傳海量點播。針對不同類型的點播應(yīng)用,需要架構(gòu)不同的流媒體系統(tǒng)。
需要說明的是,如前文所述目前點播大多以HTTP漸進式方式分發(fā),或者以HLS切片方式分發(fā)(點播的HLS只下載一次M3U8索引,后續(xù)就是.ts文件下載了),它更接近文件分發(fā)。
而我們后續(xù)文章將要著重論述的流媒體,主要是真正的實時流式傳輸,所以后續(xù)內(nèi)容主要討論的是流媒體在音視頻直播方面的應(yīng)用, 這也是觀止云團隊優(yōu)勢所在。
■ 直播:
流媒體技術(shù)在音視頻直播的應(yīng)用,大概可以這樣分類,一是廣電新媒體網(wǎng)臺/IPTV直播/OTT直播為代表的以電視直播業(yè)務(wù)為主,特點是延時容忍度高,但穩(wěn)定性、清晰度要求高;二是秀場/游戲直播/體育直播/移動直播/教育直播等為代表的互動直播,特點是延時要求高;三是以視頻會議為代表的音視頻通訊業(yè)務(wù),特點是延時要求極高,音頻質(zhì)量要求高。
隨著互動直播的興起和相關(guān)的技術(shù)服務(wù)市場競爭加劇,流媒體直播系統(tǒng)對底層基礎(chǔ)資源服務(wù)、CDN分發(fā)網(wǎng)絡(luò)、視音頻技術(shù)等都提出了全新的挑戰(zhàn)。
(2)應(yīng)用場景方面
我們研究流媒體,或許有很多人會擔心直播市場來得越快跌得越慘。其實大可不必這么想,至少有三條比較明顯的趨勢。一是不論市場變幻莫測,看直播的總需求量目前還在低點未來很長一段時間仍是上行通道;二是目前的直播主要還是集中在娛樂領(lǐng)域,未來將出現(xiàn)更多如在線教育、電商直播等將直播作為一項工作工具的垂直領(lǐng)域,他們會有著明確的商業(yè)模式;三是隨著更多VR這樣的新技術(shù)不斷涌現(xiàn),視頻永遠會作為信息傳遞的最佳載體。所以,學(xué)點技術(shù),吃不了太大的虧。至少,以下這些領(lǐng)域眼下就看得見他們對于直播的需求:
■ 在線教育
在線教育場景中主要是學(xué)生通過觀看點播、直播課程來獲取課程內(nèi)容。流媒體功能除了直播信號采集、點播文件上傳、轉(zhuǎn)碼、存儲、全網(wǎng)分發(fā)、多終端播放六大主干功能外,一般對版權(quán)保護要求非常高。另外,在線教育場景中,場景化功能需要也比較集中,如多分屏、課件制作、白板等等。
在線教育直播,目前主要以新東方這類綜合培訓(xùn)機構(gòu)主導(dǎo),未來會有更多垂直培訓(xùn)組織如藝術(shù)培訓(xùn)、專業(yè)技能培訓(xùn)等上線直播。另外,跨國遠程學(xué)習(xí)如留學(xué)、語言類也將是未來趨勢。
■ 電子商務(wù)
目前電商的商品展示依然是圖片為主,隨著天貓、聚美等上線直播,不難想象未來的電子商務(wù)產(chǎn)品呈現(xiàn)上會引入更多的視頻,尤其是互動直播的方式。這可不是噱頭,電子商務(wù)發(fā)展到今天,在攻克了消息對稱、信任、支付、物流幾項大課題后,唯一還未解決的就是遠程體驗了,互動直播無疑為遠程體驗帶來了新的曙光。
未來趨勢中,電子商務(wù)尤其要關(guān)注VR、AR、全程溯源幾方面對于流媒體技術(shù)的應(yīng)用。
■ 泛娛樂
娛樂是目前點播、直播應(yīng)用的紅海區(qū)域,也是將流媒體技術(shù)應(yīng)用最前沿的陣地。這里面,演藝直播、游戲直播、美女秀場、移動社交直播、體育直播等不同特定場景對功能、技術(shù)的要求也有差異。現(xiàn)場大型直播需要專業(yè)編碼器等硬件設(shè)備支持,移動端尤其需要對不同機型和平臺作推流和播放的適配,體育直播和游戲直播還會涉及跨國傳輸?shù)取?/p>
未來,泛娛樂仍將是直播增量最重要的一方面,畢竟,線下太多的娛樂都還未被搬上網(wǎng)絡(luò)呢。
■ 廣電
電視慢慢在轉(zhuǎn)變成IPTV/OTT/智能電視,形象一點說就是連著操作系統(tǒng)的顯示器,它本身就是流媒體的應(yīng)用。
之后的發(fā)展中,廣電系手握資源和政策紅利,不會簡單的在互聯(lián)網(wǎng)點播直播的沖擊下束手就擒,在爭奪“客廳娛樂”方面,廣電依然很有希望獲得主動權(quán),所以未來,廣電系統(tǒng)對流媒體技術(shù)的需求還會放量增長。
■ 媒體/營銷
隨著紙媒的沒落,媒體集體往線上遷移,而視頻是其中占比較大的一塊。所以,未來所有的新聞機構(gòu)、營銷機構(gòu)都會注重視頻的建設(shè),由于新聞營銷都有較強的時效性,所以對直播的運用值得關(guān)注。
■ 視頻會議
即便是到今天,很多企業(yè)很多人依然沒有使用上視頻會議系統(tǒng),原因就在于傳統(tǒng)的辦公室視頻會議系統(tǒng)安裝復(fù)雜,價格高昂,缺乏對移動辦公的支持等。所以,未來基于互聯(lián)網(wǎng)的、更輕量級、價格便宜的視頻辦公將會產(chǎn)生大量需求。在流媒體技術(shù)方面需要關(guān)注更高效的編解碼方式、更低的延遲、更好的音頻質(zhì)量、數(shù)據(jù)更安全、對移動辦公更兼容等方面,另外,也有在線教育那樣的大量場景化需求需要考慮。
■ 視頻監(jiān)控
除了我們以往熟悉的安防、交通、建筑等常規(guī)監(jiān)控外,智慧醫(yī)療、智慧家庭、智慧農(nóng)業(yè)、景區(qū)監(jiān)控等為視頻監(jiān)控帶來了更多拓展的空間。未來的發(fā)展,我們除了讓監(jiān)控成為物聯(lián)網(wǎng)的影像傳感器外,還要盡可能去讓它連上網(wǎng),甚至互動起來,這里面都需要流媒體技術(shù)去攻克難題。
6. 國內(nèi)外大型流媒體系統(tǒng)
我們說的大型流媒體系統(tǒng)是指包括了完整流媒體組件,支持直播、點播應(yīng)用,提供完善的開發(fā)者組件的流媒體平臺。這里面包括大型商用系統(tǒng),也包括優(yōu)秀的開源系統(tǒng)。
商用系統(tǒng)中,Microsoft公司的Windows Media家族、Apple公司的Quick Time家族、Real Networks公司的RealMedia家族、Adobe公司的Flash家族都提供了一整套商用流媒體系統(tǒng),其中涵蓋了媒體制作工具、服務(wù)器系統(tǒng)、播放器軟件、流媒體傳輸、數(shù)字版權(quán)保護等在內(nèi)的系列企業(yè)級和個人級產(chǎn)品。除了IT巨頭,還有美國Wowza Media等專注于流媒體的公司也提供完整產(chǎn)品,觀止云團隊作為國內(nèi)專注流媒體技術(shù)研發(fā)公司,也提供廣電級編碼器、BMS流媒體服務(wù)器、多終端播放器以及流媒體周邊系統(tǒng)。
開源方面,服務(wù)端早期較為出色的項目有由前暴雪核心員工領(lǐng)隊發(fā)起的Red 5 Media Server,live555;目前應(yīng)用最廣泛的Nginx流媒體模塊Nginx-Rtmp,觀止云團隊發(fā)起的國內(nèi)優(yōu)秀的專注互聯(lián)網(wǎng)視頻的SRS。其它還有不少開源項目,包括開源編碼工具、播放器、媒體制作工具,如大名鼎鼎的開源編碼工具ffmpeg、OBS,播放器VLC,音頻領(lǐng)域的Speex等等。
7.總結(jié)
流媒體技術(shù)的目標是在“盡力而為”的互聯(lián)網(wǎng)上更好的傳輸視音頻媒體,其最明顯的技術(shù)進步性在于通過流式傳輸協(xié)議實現(xiàn)了實時播放直播信號及無需等待播放點播文件。我們今天所面臨的流媒體技術(shù)應(yīng)用環(huán)境難度更大,需要在新挑戰(zhàn)下優(yōu)化與架構(gòu)新一代流媒體系統(tǒng)。市場需求高漲的同時,由于流媒體實現(xiàn)環(huán)節(jié)較多、技術(shù)門檻較高、技術(shù)人才缺乏,一般垂直領(lǐng)域不具備獨立搭建大型流媒體系統(tǒng)的能力,所以流媒體技術(shù)正在基于云架構(gòu)以云服務(wù)的形態(tài)成為第三方服務(wù)。
新環(huán)境下,我們應(yīng)該多去思考能提高效率、能帶來全新應(yīng)用場景的新技術(shù)。另外,技術(shù)只是工具,面臨競爭,我們更應(yīng)該多去思考新的創(chuàng)意和內(nèi)容,以及新的商業(yè)模式。
總結(jié)
以上是生活随笔為你收集整理的音视频入门-流媒体原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: grpc php 返回值过大,使用grp
- 下一篇: FreeRTOS学习笔记——互斥型信号量