拓冰建站拓冰建站
首页 / 资讯中心 / 正文

SRS 端口与资源全景指南:从内核服务端口到镜像与 API 路径的完整解读

SRS 端口与资源全景指南从内核服务端口到镜像与 API 路径的完整解读【免费下载链接】srsSRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.项目地址: https://gitcode.com/GitHub_Trending/sr/srsSRSSimple Realtime Server是一款支持 RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH 与 GB28181 等协议的实时媒体服务器其运行依赖一组规划清晰的内核端口、可选服务端口与 HTTP API 路径。本文基于仓库文档skills/internal-docs-for-srs/references/cpp-docs/doc/resource.md整理成篇并结合 full.conf、console.conf 等真实配置与 srs_app_config.cpp、srs_app_rtc_server.cpp 等源码实现帮助读者一次性掌握 SRS 各端口的作用、配置位置、HTTP API 路径体系以及官方镜像源的克隆用法与性能对比。内核服务端口SRS 赖以运行的基础SRS 的内核服务端口在进程启动时即被绑定是 RTMP、HTTP API、HTTP 直播与 WebRTC 媒体四类核心能力的入口。文档将其列为“kernel services”意味着这些端口是 SRS 功能成立的前提关闭任何一个都会直接导致对应协议不可用。端口协议用途对应配置段默认配置tcp://1935RTMPRTMP 直播推流/拉流服务器rtmp { listen 1935; }见 console.conftcp://1985HTTPHTTP API 服务器承载 HTTP-API 与 WebRTC 信令等http_api { listen 1985; }见 compatible.conftcp://8080HTTPHTTP 直播服务器提供 HTTP-FLV、HLS 等http_server { listen 8080; }见 console.confudp://8000UDPWebRTC 媒体服务器STUN/DTLS/RTP/RTCP 均在此收包rtc_server { listen 8000; }见 console.conf其中rtc_server的监听端口在 srs_app_rtc_server.cpp 的 UDP 收包路径中承担全部媒体会话处理SRS 通过SrsRtcSessionManager::on_udp_packet对收到的 UDP 数据按 STUN、RTP、RTCP、DTLS 分派到对应会话处理器可见 8000 端口是 WebRTC 媒体面Media Plane的唯一入口而信令面则由 1985 端口的 HTTP API 承担。各内核端口在真实配置中的体现RTMP1935几乎所有配置模板都会保留rtmp { listen 1935; }例如 demo.conf 与 docker.conf。它同时服务推流publish与拉流play是 SRS 最基础的直播能力。HTTP API1985http_api { enabled on; listen 1985; }是管理面入口控制台、WebRTC 信令/rtc/v1/、REST 管理接口/api/v1/全部经由它暴露。HTTP 直播8080http_server { enabled on; listen 8080; }承载 HTTP-FLV/HLS 等流媒体输出配置中还包含dir默认./objs/nginx/html与crossdomain等参数详见 full.conf。WebRTC 媒体8000rtc_server { enabled on; listen 8000; }并配套candidate配置用于指定对外通告的 IP如candidate $CANDIDATE见 console.conf。注意 8000 是 UDP 端口防火墙放行策略需与 TCP 端口区分对待。可选 HTTPS 服务端口演示级加密通道SRS 内置的 HTTPS 服务主要用于演示与本地联调生产环境官方建议由 Nginx/Caddy 反向代理终结 TLS。这两组端口按需启用端口用途配置位置tcp://8088HTTPS 直播服务器http_server { https { listen 8088; } }tcp://1990HTTPS API 服务器http_api { https { listen 1990; } }在 full.conf 的http_api段中可以看到完整示例https { enabled on; listen 1990; # 默认 1990也可写为 1990 [::]:1990 key ./conf/server.key; cert ./conf/server.crt; }对应的http_serverHTTPS 段默认监听 8088full.conf证书可通过以下命令自签生成配置注释中给出的做法openssl genrsa -out server.key 2048 openssl req -new -x509 -key server.key -out server.crt -days 3650 -subj /CCA/STToronto/LToronto/OMe/OUMe/CNossrs.io仓库中的 https.srs.conf、https.flv.live.conf、https.hls.conf 与 https.rtc.conf 等模板即按“8088 直播 1990 API”的搭配编排可直接参考。需要双栈监听时可参考 console.ipv46.conf 中listen 1990 [::]:1990;与listen 8088 [::]:8088;的写法。流转换Stream Converter服务端口把外部流接入 SRS流转换器stream_caster负责把其他协议的输入转换为 RTMP 推入 SRS文档列出的三个端口对应三种转换方式端口类型说明udp://8935mpegts_over_udp通过 UDP 推 MPEG-TS 流转换为 RTMPtcp://8936flv通过 HTTP POST 推 FLV 流转换为 RTMPudp://10080srtSRT 媒体推流服务转换为 RTMPMPEG-TS over UDP8935full.conf 中的配置片段stream_caster { enabled on; caster mpegts_over_udp; output rtmp://127.0.0.1/live/livestream; listen 8935; }单独运行该功能可参考 push.mpegts.over.udp.conf其中listen 8935;表明这是 UDP 监听端口推流端需向该端口发送 MPEG-TS over UDP 数据。HTTP-FLV 推流8936full.conf 中的配置片段stream_caster { enabled on; caster flv; output rtmp://127.0.0.1/[app]/[stream]; listen 8936; }其用法为向http://127.0.0.1:8936/live/livestream.flv发起 HTTP POSTSRS 会将路径中的[app]与[stream]映射为输出地址rtmp://127.0.0.1/live/livestream。单独运行可参考 push.flv.conf。SRT 推流10080udp://10080由srt_server段承载见 full.conf 的listen 10080;同时在 console.conf 与 clion-srt.conf 中均有体现。从源码角度看SRT 端口绑定实现在 srs_app_srt_server.cpp 的SrsSrtAcceptor::listen中该函数在创建 SRT socket 后还会依次设置maxbw、mss、tsbpdmode、latency、rcv_latency、peer_latency、tlpktdrop、connect_timeout、peer_idle_timeout、sendbuf、recvbuf等 SRT 参数均来自_srs_config-get_srto_*()系列读取说明 SRS 对该端口上每条 SRT 连接都做了完整的传输参数调优。外部协作服务端口与信令服务的对接文档还列出一个与 SRS 配合使用的外部服务端口端口用途说明udp://1989WebRTC Signaling 服务器由独立的 signaling 项目如 ossrs/signaling提供SRS 本身并不监听该端口属于外部服务需要单独部署 signaling 进程SRS 侧无需也无法在自身配置中绑定它。部署时需确保 1989 端口对客户端可达并在防火墙中同时放行 1985HTTP API与 8000WebRTC 媒体两个端口才能完成“信令协商 媒体传输”的完整 WebRTC 流程。HTTP API 路径体系SRS 的管理与信令入口SRS 通过 HTTP 路径划分了管理面与信令面的命名空间文档整理为三类路径前缀用途/api/v1/通用 HTTP API覆盖 vhosts/streams/clients 等资源管理/rtc/v1/RTC 专属 HTTP API如 play/publish 信令/sig/v1/演示用 signaling API来自 ossrs/signaling 项目/api/v1/管理接口在 srs_app_http_api.cpp 中可以看到路径解析逻辑的注释示例/api/v1/vhosts/100匹配模式/api/v1/vhosts/并取 vhost_id100/api/v1/streams/100、/api/v1/clients/100同理。这说明/api/v1/采用“资源类型 资源 ID”的 RESTful 风格可用于查询和操作虚拟主机、流与客户端。/rtc/v1/信令接口在 srs_app_rtc_api.cpp 中定义了POST /rtc/v1/play/与POST /rtc/v1/publish/两类核心信令此外该文件还实现了 WHIP 删除接口重定向到/rtc/v1/whip/?actiondeletetoken...app...stream...session...见 srs_app_rtc_api.cpp。WebRTC 播放/推流前客户端需先向 1985 端口的这些路径发起 SDP 交换。其他外部 API 路径文档还列出了 ossrs.net 平台使用的统计与版本查询 API它们不属于 SRS 内核而是平台侧约定/gif/v1统计 API/service/v1/最新可用版本查询/ws-service/v1/基于 WebSocket 的版本查询/im-service/v1/基于 IM 的版本查询/code-service/v1/基于验证码的版本查询。以及统计页面的路径约定/srs/xxx对应 GitHub Pages、/release/xxx对应发布页、/console/xxx对应控制台、/player/xxx对应播放器页面、/k8s/xxx对应 K8s 部署模板。这些路径用于平台级统计埋点与资源分发普通自建部署无需关心。镜像与克隆多源获取 SRS 代码文档提供三种克隆来源并给出了将克隆源切换回 GitHub 的命令模式。国内用户建议优先使用 Gitee或 CSDN、OSChina 镜像速度更快。Gitee 镜像文档推荐国内用户使用并可一键改回 GitHub 源git clone https://gitee.com/ossrs/srs.git cd srs git remote set-url origin https://github.com/ossrs/srs.git git pullGitLab 镜像git clone https://gitlab.com/winlinvip/srs-gitlab.git srs cd srs git remote set-url origin https://github.com/ossrs/srs.git git pullGitHub 官方源git clone https://github.com/ossrs/srs.git各分支克隆成本对比文档给出了一份基于 Gitee 的实际测量数据用于指导选择全量克隆还是浅克隆--depth1分支耗时体积命令3.0release2m19.931s262MBgit clone -b 3.0release https://gitee.com/ossrs/srs.git3.0release0m56.515s95MBgit clone -b 3.0release --depth1 https://gitee.com/ossrs/srs.gitdevelop2m22.430s234MBgit clone -b develop https://gitee.com/ossrs/srs.gitdevelop0m46.421s42MBgit clone -b develop --depth1 https://gitee.com/ossrs/srs.gitmin2m22.865s217MBgit clone -b min https://gitee.com/ossrs/srs.gitmin0m36.472s11MBgit clone -b min --depth1 https://gitee.com/ossrs/srs.git从数据可以看出--depth1浅克隆可将体积压缩到全量克隆的 1/3 至 1/20develop 分支 234MB→42MBmin 分支 217MB→11MB耗时也大幅缩短。仅需编译运行或阅读代码时浅克隆足够需要回溯历史提交或参与贡献时再选择全量克隆。端口总览速查表综合全文给出 SRS 相关端口的完整速查表便于防火墙配置与排障端口协议归属用途1935TCPSRS 内核RTMP 直播推流/拉流1985TCPSRS 内核HTTP API含/api/v1/与/rtc/v1/8080TCPSRS 内核HTTP 直播HTTP-FLV、HLS 等8000UDPSRS 内核WebRTC 媒体8088TCPSRS 可选HTTPS 直播1990TCPSRS 可选HTTPS API8935UDPSRS 流转换MPEG-TS over UDP 推流8936TCPSRS 流转换HTTP-FLV 推流10080UDPSRS 流转换SRT 推流1989UDP外部服务WebRTC Signaling配置与运维提示所有端口的默认值、环境变量覆盖方式如SRS_HTTP_SERVER_LISTEN、SRS_HTTP_API_HTTPS_LISTEN与 IPv4/IPv6 双栈写法均可在 full.conf 的对应配置段注释中查到这是最权威的“端口字典”。修改端口后需同时检查防火墙与安全组TCP 端口1935/1985/8080/8936与 UDP 端口8000/8935/10080的放行规则是独立的。生产环境建议仅开放必要的端口HTTPS 能力交给 Nginx/Caddy 反向代理SRS 内置 HTTPS 仅用于演示full.conf 的注释已明确此点。验证端口是否监听可对 RTMP 端口使用curl -v telnet://127.0.0.1:1935对 HTTP 端口使用curl http://127.0.0.1:1985/api/v1/versions或curl http://127.0.0.1:8080/api/v1/versions等方式快速探测。本文以resource.md文档为主线将 SRS 的端口规划、API 路径与镜像源信息逐一落地到仓库真实配置与源码实现中。读者在部署 SRS 时可据此快速定位每个服务的监听端口与配置项避免“端口被占用”“防火墙不通”“WebRTC 协商失败”等常见问题。【免费下载链接】srsSRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.项目地址: https://gitcode.com/GitHub_Trending/sr/srs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门