Nginx rtmp 推流(publish) 解析

2021-12-06  本文已影响0人  mfdalf

系列文章:
Nginx rtmp 拉流播放(play)_fdsafwagdagadg6576的专栏-CSDN博客
Nginx rtmp 拉流(转发pull)_fdsafwagdagadg6576的专栏-CSDN博客
Nginx rtmp 转推_fdsafwagdagadg6576的专栏-CSDN博客
Nginx rtmp 点播流程_fdsafwagdagadg6576的专栏-CSDN博客

1 整体结构图:

send streaming

先建立信令,然后接收媒体

2 流程图

image

3 阶段

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);

如果对您有所帮助,请随手点赞,谢谢

上一篇下一篇

猜你喜欢

热点阅读