直播在2016年是一個(gè)非?;馃岬念I(lǐng)域,我也有幸在今年參與了新浪微博直播客戶端的開發(fā),在此分享一下關(guān)于直播開發(fā)的一些經(jīng)驗(yàn)。

1.視頻直播的基本原理

視頻直播的過程大概由這么幾個(gè)部分構(gòu)成:

  • 推流端
  • 源服務(wù)器
  • CDN邊緣節(jié)點(diǎn)
  • 播放端

直播架構(gòu).jpg

整個(gè)直播流轉(zhuǎn)的過程是:推流端將視頻流推向源服務(wù)器,源服務(wù)器對(duì)視頻流進(jìn)行編碼或者轉(zhuǎn)存,CDN負(fù)責(zé)負(fù)載均衡與緩存,CDN節(jié)點(diǎn)從源服務(wù)器獲取視頻流,播放端再?gòu)腃DN上把視頻流拉下來。

2.不同的直播協(xié)議

  • HLS
    HLS全稱是Http live stream,是蘋果公司主導(dǎo)的一種直播協(xié)議,完全符合http協(xié)議標(biāo)準(zhǔn),Html對(duì)其原生進(jìn)行支持,所以這種協(xié)議的優(yōu)勢(shì)就在于無論是在web端,還是iOS端都可以方便快捷的播放HLS的視頻流。HLS協(xié)議不僅支持直播還支持點(diǎn)播,廣泛的應(yīng)用于H5產(chǎn)品當(dāng)中。
    HLS本身請(qǐng)求的是一個(gè)m3u8格式的文件:
    #EXTM3U                     m3u文件頭,必須放在第一行 #EXT-X-MEDIA-SEQUENCE       第一個(gè)TS分片的序列號(hào) #EXT-X-TARGETDURATION       每個(gè)分片TS的最大的時(shí)長(zhǎng) #EXT-X-ALLOW-CACHE          是否允許cache #EXT-X-ENDLIST              m3u8文件結(jié)束符 
            		

    網(wǎng)友評(píng)論