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