分佈式直播系統(十二)【nginx-rtmp-module動態轉推和動態回源】

轉載請註明出處:https://blog.csdn.net/impingo
項目地址:https://github.com/im-pingo/pingos
項目官網:https://pingos.io

上篇文章分佈式直播系統(十一)【nginx-rtmp-module鑑權接口】已經介紹了oclp_play和oclp_publish的鑑權使用方法。這篇文章將介紹如何利用oclp_push和oclp_pull實現動態轉推和動態回源的方法,用法與oclp_play和oclp_publish非常類似,對配置不熟悉的朋友可以參考前面的文章。

動態轉推oclp_push

動態轉推是通過push通知實現的,利用oclp_push配置可以實現將本機器上的流轉推到其他rtmp服務器。
之所以稱此種操作爲動態轉推是因爲轉推地址可以通過查詢結果動態指定。

oclp_push http://xxx.xxx.xxx.xxx/xxx stage=start,update,done args=k=v update=2s timeout=3s;

oclp_push最多可配置8條,每條都會觸發一路轉推。
服務器收到實時流的發佈消息(如rtmp推流、rtmp回源和http-flv回源,總之只要有流輸入進來就會觸發oclp_push操作)之後馬上向配置的http://xxx.xxx.xxx.xxx/xxx 發送http get請求 並且攜帶uri參數call=push&act=start&domain=$domain&app=$app&name=$name

返回值:

http 200 : 不轉推,不觸發update(act=update)和done(act=done)

http 302 :讀取http header中的location一欄中的rtmp地址,並且向該地址推流。
如果配置了stage=update,則會週期性地觸發參數call=push&act=update的http請求,直到推流結束。

其他值:結束推流請求

動態回源oclp_pull

拉流端PingOS業務服務器源站rtmp/http-flv/http-ts/hls+播放發送http get 請求 uri參數call=pull&act=start如果返回 http 200什麼都不做如果返回4xx或5xx斷開所有拉流端斷開所有拉流端如果返回302(location字段攜帶視頻源地址)解析出http header中的location字段請求http-flv或rtmp拉流週期性地發送call=pull&act=update的請求如果update返回 4xx 或 5xx斷開http-flv或rtmp拉流斷開所有拉流端當http-flv或rtmp流結束時發送call=pull&act=done的請求拉流端PingOS業務服務器源站

配置語法

Syntax: oclp_pull url [args=string] [stage=[start][,update][,done]] [timeout=time] [update=time];
Default: -
Context: application

具體參數含義可以參考上一篇文章,這裏不再贅述。

QQ交流羣:697773082

微信(cczjp1989)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章