SRS服务启动
SRS服务的main函数在trunk/src/main/srs_main_server.cpp中。
RTCServer启动
一、创建RTC服务:在RtcServerAdapter中创建SrsRtcServer对象。
RtcServerAdapter::RtcServerAdapter()
{
rtc = new SrsRtcServer();
}
二、RtcServerAdapter初始化:包含rtc模块的全局dtls证书的初始化,SrsRtcServer初始化。
srs_error_t RtcServerAdapter::initialize()
{
srs_error_t err = srs_success;
if ((err = _srs_rtc_dtls_certificate->initialize()) != srs_success) {
return srs_error_wrap(err, "rtc dtls certificate initialize");
}
if ((err = rtc->initialize()) != srs_success) {
return srs_error_wrap(err, "rtc server initialize");
}
return err;
}
三、RtcServerAdapter运行:rtc服务监听UDP(主要是bind IP地址和端口号);启动HTTP服务,播放接口(/rtc/v1/play/)和推流接口(/rtc/v1/play/);资源管理器开启。
srs_error_t RtcServerAdapter::run()
{
srs_error_t err = srs_success;
if ((err = rtc->listen_udp()) != srs_success) {
return srs_error_wrap(err, "listen udp");
}
if ((err = rtc->listen_api()) != srs_success) {
return srs_error_wrap(err, "listen api");
}
if ((err = _srs_rtc_manager->start()) != srs_success) {
return srs_error_wrap(err, "start manager");
}
return err;
}