anyrtcrtmp分析

Rtmp,port)rtmp使用tcp,所以开始监听tcp 。srs_tcp_listen创建一个套接字,监听newsrsstcoroutine(TCP , RTC等)等服务,).SRSERVERADAPTER、rtmp、http、https等中各种服务器的适配,,RtcServerAdapter是webrtc的服务,我们会在本文中服务分析rtmp , 所以进入SRSERVERADAPTER后 , 我们会监听各种服务器并调用 , 然后调用srsserver::listen()> srsbufferlistener::listen > newsrtcsplister(这个 。

1、SRSRTMP发布和播放代码解析主程序启动后,会根据config判断是控制台模式还是后台运行模式,然后进入run_hybrid_server启动各种服务 , 比如rtmp、http、https、rtc等等;SRSERVERADAPTER、rtmp、http、https等中各种服务器的适配 。,RtcServerAdapter是webrtc的服务,我们会在本文中服务分析rtmp,所以进入SRSERVERADAPTER后 , 我们会监听各种服务器并调用,然后调用srsserver::listen()> srsbufferlistener::listen > newsrtcsplister(这个 , 

Port)rtmp使用tcp,所以开始监听tcp 。srs_tcp_listen创建一个套接字并进行侦听 。之后 , newsrcoroutine(TCP,this)创建一个协议 。调用start会调用SRS tcplistener::cycle();具体过程是,接受的进程等待客户端的连接,客户端的连接请求后,开始回调on _ TCP _ C 。

根据2、RTMP协议抓包 分析推流过程RTMP协议 , 发布流媒体需要两个先决步骤:第一步是建立网络连接 。第二步是建立NetStream 。网络连接代表服务器端应用程序和客户端之间的基本连接,网络流代表发送多媒体数据的通道 。在服务器和客户端之间只能建立一个网络连接 , 但是可以基于这个连接创建许多网络流 。发布一个采用rtmp协议的流媒体有四个阶段:以下是使用librtmp执行流媒体流程的API调用流程,如下:RTMP定义了一个相对完善的协议标准,我们可以使用合适的工具来推流,但是因为有些操作是可选的 , 所以抓包的过程略有不同 。以下是我用ffmpeg工具推流时抓取的消息,用的是wireshark 分析 。
3、Nginxrtmp推流(publish【anyrtcrtmp分析】系列文章:Nginxrtmp拉流播放)_ fdsafwagdagg 6576专栏CSDN博客Nginxrtmp拉流(前向拉)_ fdsafwagdagg 6576专栏CSDN博客Nginxrtmp推送_ fdsafwagdagg 6576专栏CSDN博客Nginxrtmp点播流程_ fdsafwagdagg 6576专栏CSDN博客1的整体结构图:先建立信令,再接收媒体2的流程图4源代码/1234 。

    推荐阅读