年入千萬(wàn)就指望它了,視頻直播背后的技術(shù)
各種直播軟件,各種俊男靚女,各種視頻直播性福啪啪啪,現(xiàn)在直播軟件已經(jīng)火的一塌糊涂,但是好像并沒(méi)有什么大巨頭出現(xiàn)。
視頻直播的主要技術(shù)就是要保持實(shí)時(shí)性,到了手機(jī)端相對(duì)于PC端就更要考慮網(wǎng)絡(luò)情況從而能夠以不同的碼率來(lái)播放,網(wǎng)絡(luò)不好的時(shí)候,F(xiàn)aceTime有的時(shí)候也不清晰,鄙人還沒(méi)從事過(guò)視頻直播方面的開發(fā),簡(jiǎn)單學(xué)習(xí)了一點(diǎn)相關(guān)知識(shí),現(xiàn)學(xué)現(xiàn)賣裝逼下,今天簡(jiǎn)單為大家介紹下視頻直播領(lǐng)域的HLS(Http Live Streaming)技術(shù)。
HLS是蘋果推出的一項(xiàng)技術(shù),主要是能夠利用http服務(wù)器,以http的方式傳輸音視頻文件,由于音視頻文件都分割的足夠小,所以下載也足夠快的情況下,可以認(rèn)為就相當(dāng)于實(shí)時(shí)直播,相對(duì)于RTSP/RTMP這種實(shí)時(shí)的音視頻傳輸來(lái)講,TA不是最實(shí)時(shí)的。
直播的整個(gè)流程大概是這樣:
- 采集視頻源和音頻源
- 對(duì)視頻源H264編碼,對(duì)音頻源AAC編碼
- 分割為TS文件
- 組裝M3U8文件
- Http傳輸以及部署到CDN
順便也簡(jiǎn)單說(shuō)下M3U8是什么文件吧,M3U8其實(shí)是一個(gè)索引文件,就像一個(gè)TXT一樣,后綴名叫M3U,只不過(guò)是以UTF-8來(lái)編碼的,所以命名為M3U8。
TA當(dāng)中每一段描述了一段TS,TS是分割的十分小的已經(jīng)編碼好的音視頻文件,可以直接播放,M3U8就描述了,比如一共10個(gè)TS文件,每段多長(zhǎng)時(shí)間,地址是什么類似的信息。
只要想播放視頻,必須要先對(duì)M3U8進(jìn)行解析,解析出一個(gè)個(gè)的TS文件地址,然后按照M3U8描述的信息,選擇TS文件進(jìn)行播放。
為什么最終的小文件是TS,而不選用MP4文件呢?我搜索了一些資料,主要是因?yàn)門S文件可以無(wú)縫銜接,而MP4之類的文件很可能產(chǎn)生銜接過(guò)程閃動(dòng)、黑屏等等原因。所以我們一般看MP4的電影,都比較大,用來(lái)包裝一個(gè)文件。
HLS方式的主要優(yōu)點(diǎn)就是利用了標(biāo)準(zhǔn)的Http技術(shù),復(fù)用了當(dāng)前標(biāo)準(zhǔn)的代理服務(wù)器和CDN這些成熟的技術(shù),使得直播部署就像簡(jiǎn)單的下載服務(wù)器的部署一樣,我們把TS文件想象成一個(gè)個(gè)的軟件或者apk文件,完全利用了一整套高度成熟的機(jī)制,使得視頻直播利用到成熟的技術(shù),能夠迅速的降低成本。這也是相對(duì)于其他實(shí)時(shí)視頻技術(shù)的一個(gè)相當(dāng)大的優(yōu)勢(shì)。
先寫到這里,敬請(qǐng)批評(píng)指正。
#專欄作家#
給產(chǎn)品經(jīng)理講技術(shù),微信公眾號(hào)(pm_teacher),人人都是產(chǎn)品經(jīng)理專欄作家。資深程序猿,專注客戶端開發(fā)若干年,對(duì)前端、后臺(tái)技術(shù)略懂,熱衷于對(duì)新的科技領(lǐng)域的探索。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,不得轉(zhuǎn)載。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!