首页 > 其他分享 >SRS流媒体服务器之HTTP-FLV框架分析

SRS流媒体服务器之HTTP-FLV框架分析

时间:2023-04-23 16:13:17浏览次数:47  
标签:流媒体 HTTP FLV SRS handler RTMP

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,这个思想在前面的文章中都要反复讲过。

标签:流媒体,HTTP,FLV,SRS,handler,RTMP
From: https://www.cnblogs.com/zeliangzhang/p/17346821.html

相关文章

  • 解决Since Maven 3.8.1 http repositories are blocked的问题
    在使用Idea社区版时,已经默认带了Maven插件。所以无需额外安装Maven即能使用。进入Idea的Maven插件目录:C:\ProgramFiles\JetBrains\IntelliJIDEACommunityEdition2023.1\plugins\maven\lib\maven3\conf编辑setting.xml文件,并注释以下内容: <!--<mirror><id......
  • 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    .net6之后,不会随项目生成packages文件夹,将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的情况,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应路径下即可......
  • jmeter中的java请求 用httpclient写的http请求 及参数化
    首先,jmeter中的sample的原理: jmeter 中的java 请求,sample 原理,java testjmeter自带的包,把包放在类路径下面,通过反射机制,通过反射机制扫出来。 先导入五个jar包  packagecom.young.testing91;importjava.io.IOException;importorg.apache.http.client.C......
  • 业务接口造数据(httpclient)
    导入httpclientjar包创建maven工程 httpclient发送get请求packagecom.testing91;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client......
  • Unable to tunnel through proxy. Proxy returns "HTTP/1.1 503 Service Unavailable
    背景:某日,一正常项目迁移到新的服务器新的服务器,需要使用代理来访问之前能直接访问的接口,加完代理之后,发现无法获取数据了报错:org.springframework.web.client.ResourceAccessException:I/OerroronGETrequestfor"https://xxxxxxxxxx/xxxx":Unabletotunne......
  • 01-Httprunner简介、安装及基本使用教程
     https://www.jb51.net/article/237541.htm httprunner是一款面向 HTTP(S) 协议的通用测试框架。只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求,本文给大家介绍Httprunner安装使用教程,感兴趣的朋友一起看看吧......
  • 02-httprunner创建脚手架报错解决方法:httprunner: error: invalid choice: ‘startpro
      转载:https://blog.csdn.net/qq_33940095/article/details/128191841安装完httprunner版本4.1.3后进行创建脚手架是报错  经过百度发现是与python(3.7.6)版本不匹配.卸载httprunner重新安装低版本的httprunner卸载:pipuninstallHttpRunner  ......
  • SSRS获取某个固定单元格的值
    比如我需要标准因子单元格名字叫textbox17ReportItems!textbox17.Value  ......
  • HTTP协议中Via的用法
    现在,在将Web请求从客户端传送到服务器的路径上,经过两个或多个代理是很常见的。比如,出于安全和节省费用的考虑,很多公司都会用缓存代理服务器来访问因特网,而且很多大型ISP都会使用代理缓存来提高性能并实现各种特性。现在,有相当比例的Web请求都是通过代理转发的。同时,出于性能原因,把......
  • Forest-声明式HTTP客户端框架-集成到SpringBoot实现调用第三方restful api并实现接口
    场景Forest声明式HTTP客户端API框架,让Java发送HTTP/HTTPS请求不再难。它比OkHttp和HttpClient更高层,是封装调用第三方restfulapiclient接口的好帮手,是retrofit和feign之外另一个选择。通过在接口上声明注解的方式配置HTTP请求接口。官网:Forest 代码地址:forest:声明式HTTP客户......