SRS源码梳理之rtmp协议解析

本文详细介绍了SRS服务器中使用协程处理RTMP服务的流程,从main函数开始,包括监听、接受新连接,到区分客户端的推流或拉流操作,并创建相应的处理协程。作者指出可能存在理解和表述上的错误,欢迎读者指正。
摘要由CSDN通过智能技术生成

        笔者用的srs源码版本为:srs-server-4.0-r4。

        listen_rtmp 函数的调用堆栈如下:

         accept_client 函数的调用栈如下,注意该调用是通过协程调用,这里需要仔细观察协程调用方式

         在srs中所有应用处理都采用协程,可以根据上面accept_client函数及源码中很多地方,协程调用流程总结如下:

         srs源码中从main函数开始至rtmp服务启动、监听、及accept接受新连接都在协程中处理的,具体流程大致如下:

         通过解析rtmp协议,主要确定客户端是推流(publish)还是拉流(play),创建不同的处理协程回调函数,具体如下:

        由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值