golang實(shí)現(xiàn)直播和點(diǎn)播功能

1.概述

? ? ? 剛開始做直播的時(shí)候,還是有些懵逼的,畢竟什么推拉流,什么格式協(xié)議完全不懂的,還有第三方的接口也是層出不窮,其實(shí)簡單的說一下,如圖(騰訊直播Api里面盜取的)

其實(shí)所謂的推流就是主播的客戶把我們要的播放內(nèi)容按特定的流程存放于服務(wù)器,當(dāng)然這里面展示的是騰訊云,完后經(jīng)過通訊云的轉(zhuǎn)碼再讓觀眾去觀看(拉取),建議不是很明確基礎(chǔ)的小伙伴去了解一下,理解起來還是很方便的.騰訊云傳送門

而我們今天使用的不是騰訊,而是用golang寫好的開源項(xiàng)目livego,livego傳送門

2.livego

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

?剩下就直接開干,搭建好環(huán)境以后,啟動(dòng)服務(wù):執(zhí)行l(wèi)ivego二進(jìn)制文件啟動(dòng) livego 服務(wù)就可以了

3.OBS

這個(gè)是直播標(biāo)配吧,流程我就不說了,我就說我遇到的坑,如圖:

當(dāng)我設(shè)置推流的時(shí)候,確實(shí)不知道流名稱是什么,查了半天以及試驗(yàn)的好久才明白,如果說你得 連接地址是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

本文來自php中文網(wǎng)的golang教程欄目:https://www.php.cn/be/go/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容