SRS流媒体服务器之HTTP-FLV框架分析
SRS流媒体服务器之HTTP-FLV框架分析
链接:https://www.isolves.com/it/cxkf/kj/2021-03-25/37488.html
介绍的代码和现版本代码有出处,但对流程序的理解有相当的价值。简要笔记如下。
整体的框架:
RTMP推流端-----》SRS流媒体服务器(建立SOURCE->生成Consumer->指定封装格式endoder=FLV) 《《--------------拉流客户端拉取HTTP-FLV
1.gdb ./objs/srs -c conf/http.flv.live.conf
b SrsLiveStream::SrsLiveStream
bt 可以查看流的来源
2.RTMP推流的时候根据url,创建对应的handler,拉流的时候根据url,找到对应处理的handler。即url和handler是一一对应关系。
3.SRS流媒体服务器源码的重要函数和类说明
SrsLiveStream::do_serve_http:处理客户端的数据发送。
SrsHttpConn:表示每个http client或RTMP client都有这个连接。
SrsConsumer:每个SrsHttpConn都对应一个消费者SrsConsumer,对应RTMP或HTTP。关于SrsConsumer前面文章已经讲过,这里相当于中间数据的缓存。
SrsBufferCache:HTTP直播流编码器的缓存。
SrsFlvStreamEncoder:将RTMP转成HTTP FLV流。
SrsBufferWriter:将流直接写⼊到HTTP响应的数据中。
SrsLiveStream:HTTP直播流,将RTMP转成HTTP-FLV或者其他格式,其实际是handler SrsLiveEntry 直播⼊⼝,⽤来处理HTTP 直播流。
SrsHttpStreamServer:HTTP直播流服务,服务FLV/TS/MP3/AAC流的合成。
SrsHttpResponseWriter: 负责将数据发送给客户端,本质是调⽤SrsStSocket进⾏发送
SrsHttpServeMux:HTTP请求多路复⽤器,实际就是路由,⾥⾯记录了path以及对应handler。
4. rtmp推流的时候就会产生数据源,对应源码就是source。那http-flv client也是要从source里面拉取数据,也是要绑定一个consumer,这个思想在前面的文章中都要反复讲过。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)