轉載請註明出處: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
配置語法
Syntax: oclp_pull url [args=string] [stage=[start][,update][,done]] [timeout=time] [update=time];
Default: -
Context: application
具體參數含義可以參考上一篇文章,這裏不再贅述。