SRS
延禾xy
个人学习记录及思考。专注当下,停止焦虑。
展开
-
SRS介绍.md
简介SRS(Simple RTMP Server)是一款开源的流媒体服务器,使用C++开发,文档详细,代码清晰。官网介绍如下:SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS,包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。SRS还支持将接入的RTMP流进行各种变换,譬如将RTM...原创 2018-11-01 17:34:01 · 21598 阅读 · 0 评论 -
SRS启动流程
main函数main函数所在文件为main/srs_main_server.cpp中。该文件定义了一些全局变量:_srs_log:全局的log文件_srs_context:全局的context文件。是一个SrsThreadContext类,这个类使用map来存放协程指针到id的映射关系。std::map<srs_thread_t, int> cache;_srs_confi...原创 2018-11-01 18:10:05 · 4049 阅读 · 0 评论 -
SRS源码分析-协程相关类
SRS中使用协程库state-thread(ST), 在使用时对其进行了封装,保证使用方便。这种封装方法和使用thread库比较类似。在SRS中,st封装所在的文件为:srs_app_ast.hpp/cppISrsCoroutineHandlerHandle接口实现如下,每一个需要使用ST-coroutine的类都需要实现这个接口。这个接口中有一个cycle()函数,在具体的类中执行任务以及...原创 2018-11-01 18:37:48 · 3314 阅读 · 0 评论 -
SRS源码分析-读写类SrsStSocket
关键类SrsStSocket封装了socket的读写操作,将负责将数据发送给对端(send)以及读取对端发送过来的数据(read)。继承关系为:相关源码如下://使用协程的TCPclass SrsStSocket : public ISrsProtocolReaderWriter{private: // The recv/send timeout in ms. // ...原创 2018-11-05 17:16:54 · 893 阅读 · 0 评论 -
SRS源码分析-连接建立
初始化st协程库state-threads协程库在使用时需要初始化IO复用类型,并初始化。srs_error_t srs_st_init(){ //在linux上设置为epoll() if (st_set_eventsys(ST_EVENTSYS_ALT) == -1) { return srs_error_new(ERROR_ST_SET_EPOLL, "s...原创 2018-11-05 17:49:23 · 1712 阅读 · 0 评论