教你用golang實現直播和點播功能

2020-10-08 21:00:07
下面由欄目給大家介紹golang實現直播和點播功能的方法,希望對需要的朋友有所幫助!

1.概述

剛開始做直播的時候,還是有些懵逼的,畢竟什麼推拉流,什麼格式協定完全不懂的,還有第三方的介面也是層出不窮,其實簡單的說一下,如圖(騰訊直播Api裡面盜取的)

其實所謂的推流就是主播的客戶把我們要的播放內容按特定的流程存放於伺服器,當然這裡面展示的是騰訊雲,完後經過通訊雲的轉碼再讓觀眾去觀看(拉取),建議不是很明確基礎的小夥伴去了解一下,理解起來還是很方便的.騰訊雲傳送門

而我們今天使用的不是騰訊,而是用golang寫好的開源專案livego,livego傳送門

2.livego

說實話,檔案挺少的,估計是作者工作忙吧,我這裡也是簡單的使用,不過要提一個小小的bug,估計是go版本的問題,在go1.10中,有一處錯誤,返回的是2個數值,但是那裡只寫了一個(具體哪裡我也記不清楚了"")

剩下就直接開幹,搭建好環境以後,啟動服務:執行 livego 二進位制檔案啟動 livego 服務就可以了

3.OBS

這個是直播標配吧,流程我就不說了,我就說我遇到的坑,如圖:

當我設定推流的時候,確實不知道流名稱是什麼,查了半天以及試驗的好久才明白,如果說你得 連線地址是rtmp://106.12.5.245:1935/live/push,而在livego中的live.cfg又是這樣的:

裡面appname的live是要和rtmp://106.12.5.245:1935/live中的live相同的,假如說我appname的值是livego,那麼我的推播地址必須得是:rtmp://106.12.5.245:1935/livego,而流名稱是隨便填寫的,只要不為空就行,比如我這裡面填寫的是push,那麼接下來我拉取的頁面就是:

rtmp://106.12.5.245:1935/live/push

http://106.12.5.245:7001/live/push.flv

http://106.12.5.245:7002/live/push.m3u8

以上就是教你用golang實現直播和點播功能的詳細內容,更多請關注TW511.COM其它相關文章!