最近都在忙着做視頻直播的項目,有一個月沒有寫博客了,現在直播流程終於通了,寫個博客總結一下。
首先,如果你要實現的是攝像頭直播,那其實很簡單,因爲已經有很多第三方支持攝像頭直播了,你所要做的,無非就是接入他們的sdk。
或者你也可以去github上找一套攝像頭直播的代碼。
因爲我們項目要實現的是手機錄屏的直播,所以跟攝像頭直播有些區別,無法直接使用第三方的sdk。
ps:關於手機錄屏的內容,請看我的另外一篇博客:android視頻錄製--MediaProjection
好,廢話少說,先上圖:
要完成整個直播流程,客戶端需要如下幾步:
1. 視頻內容的採集(攝像頭還是屏幕錄製)
2. 視頻的編碼(flv,h264)
3. 視頻內容的傳輸
目前直播的傳輸基本上有兩種:
1. rtp/rtsp/rtmp協議,對應的格式是flv。
2. HLS協議(HTTP Live Streaming),這個是Apple搞出來的。它跟rtp的不同之處在於,它是基於HTTP的流媒體傳輸協議。
後端要完成的,也是rtmp或者hls協議,接受客戶端的流文件。