系列文章:
Nginx rtmp 拉流播放(play)_fdsafwagdagadg6576的專欄-CSDN博客
Nginx rtmp 拉流(轉發pull)_fdsafwagdagadg6576的專欄-CSDN博客
Nginx rtmp 轉推_fdsafwagdagadg6576的專欄-CSDN博客
Nginx rtmp 點播流程_fdsafwagdagadg6576的專欄-CSDN博客
1 整體結構圖:
send streaming
先建立信令,然后接收媒體
2 流程圖
image
3 階段
- 1 handshake
- 2 connect
- 3 createStream
- 4 publish
- 5 接收av
- 6 轉推
4 源碼分析:
**ngx_rtmp_relay_publish(ngx_rtmp_session_t s, ngx_rtmp_publish_t v)
**s->relay **
//b) //s->relay無論是轉推還是relay ;init is 0,轉推,relay 一次之后變成1.直接next
if (ctx && s->relay) {
goto next;
}
**接收流媒體 **
/*從ngx_rtmp_relay_create_local_ctx函數返回后,就一直返回到ngx_rtmp_relay_publish函數中.
接著執行 next_publish的下一個函數.這里為 ngx_rtmp_live_publish。*/
//因為是next,所以不是ngx_rtmp_relay_publish,而是 ngx_rtmp_live_publish(relay先于live)
//ngx_rtmp_live_publish;ngx_rtmp_live_join as publish
return next_publish(s, v);