建议大家深入分析SRS源码:

在学习SRS源码的过程中,我们必须特别留意一点,那就是仅仅通过网上搜寻SRS相关文章,并不能真正帮助我们掌握如何学习SRS。因此,我建议采取以下步骤:(1)首先,仔细阅读SRS官方的wiki;(2)其次,利用gdb等调试工具对代码进行跟踪分析。

具体的学习方法可以参考 4节 SRS如何学习。

3 SRS是否有商业应用

一些朋友对SRS在商业领域的应用抱有疑虑,他们想知道它是否具有商业价值。只需浏览招聘网站,观察大型企业在招聘时是否要求掌握该服务器,便可一目了然。以boss直聘为例,输入SRS后,我仅列举了三家公司发布的招聘信息。

SRS流媒体服务器商业应用_rtsp端口_SRS源码学习方法

rtsp端口_SRS源码学习方法_SRS流媒体服务器商业应用

rtsp端口_SRS流媒体服务器商业应用_SRS源码学习方法

招聘结果直观地反映出,若我们申请的是与流媒体相关的职位,精通SRS流媒体技术将是一项基本要求,甚至可能成为加分项。这一现象亦充分揭示了在软件开发过程中对SRS流媒体服务器的迫切需求。

rtsp端口_SRS流媒体服务器商业应用_SRS源码学习方法

如需获取流媒体服务器实战训练营的具体位置信息,请通过后台私信发送“流媒体”进行咨询。

4 SRS如何学习

学习SRS流媒体服务器,建议减少对百度的依赖,转而多浏览官方的wiki资料,并且亲自动手进行实践操作。

查阅维基百科,利用gdb进行代码调试,结合gdb的功能对srs框架进行深入分析,同时针对流媒体协议,对RTMP、HLS、HTTP-FLV、RTSP以及WebRTC等技术的具体实现细节进行剖析。

以官方的RTMP部署为例:

# conf/rtmp.conf
listen              1935;
max_connections     1000;
vhost __defaultVhost__ {
}

该问题关联到端口号1935,由此我们可以推知,此配置文件已设定了该端口号,进而表明RTMP服务需要监听此端口。

若需对该端口进行监听,必然需要查阅“listen”这一字段。举例来说,我们可以在source insight中执行对“listen”的搜索操作。

SRS流媒体服务器商业应用_rtsp端口_SRS源码学习方法

观察SrsConfig这个类,我们发现它负责读取"listen"字段;实际上,若深入查看SrsConfig,我们会发现所有配置文件均由该类负责读取。

我们继续深入,仅聚焦于"listen"等类似字段,进行搜索定位。

vector SrsConfig::get_listens()
{
   std::vector ports;
 
配置文件中提取的,名为"listen"的字段,被赋值给了SrsConfDirective类型的指针conf。
   if (!conf) {
       return ports;
   }
 
   for (int i = 0; i args.size(); i++) {
ports数组新增了conf结构体中args数组第i个元素的值。
   }
 
   return ports;
}

一旦到达此处,我们便能够利用gdb在SrsConfig类的get_listens方法上设置断点。

启动gdb进行调试:执行gdb ./objs/srs命令,配置参数为set args -c ./conf/rtmp.conf,设置断点:推荐首先在main函数处设置断点,随后运行程序至main函数并等待so模块加载完成,再在SrsConfig::get_listens函数处设置断点。若在main函数处设置断点后直接运行程序,程序会停留在main函数,此时即使设置断点仍会显示红色框的问题。此时,我们可以在srs_app_config.cpp文件的第3983行代码处设置断点。

接着输入“r”键以重启程序,连续按下“c”键直至达到“rs_app_config.cpp:3983”的断点位置,随后按下“bt”键,便能够观察到我们正在读取配置文件,并监听RTMP端口的调用栈。

SRS流媒体服务器商业应用_SRS源码学习方法_rtsp端口

然而,此刻若我们审视调用栈,会发现它仅仅是检查配置文件的准确性;随后,我们可继续输入字符“c”,紧接着输入“bt”来查看调用栈;如此反复,直至在调用栈中观察到“listen”这一关键词出现。

此时可以根据调用栈分析srs监听端口的框架流程

SRS流媒体服务器商业应用_rtsp端口_SRS源码学习方法

可以定位到

请查阅src/app/srs_app_server.cpp文件中的第1246行。

rtsp端口_SRS源码学习方法_SRS流媒体服务器商业应用

此时可以找到rtmp的监听流程。

这只是初露锋芒,关于SRS框架的分析,我已录制了若干视频,大家可通过关注并私信后台“资料”来获取观看。

本网站每日更新互联网创业教程,一年会员只需98,全站资源免费下载点击查看会员权益

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注