资讯动态

SRS 一键部署视频直播服务实战:OBS 推流、WebRTC 浏览器直播与 SRT 低延迟直播全指南

发布时间:2026/9/11 21:31:06 来源:尧图企业网站定制
SRS 一键部署视频直播服务实战OBS 推流、WebRTC 浏览器直播与 SRT 低延迟直播全指南【免费下载链接】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搭建一个真正可用的在线视频直播服务远不止运行一个媒体服务器那么简单你需要处理推流鉴权、多协议互通RTMP/WebRTC/SRT、HLS/HTTP-FLV 分发、录制、转码等一系列工程问题。本篇指南基于 SRS 开源社区的一键发行方案 Oryx完整讲解从零部署Lightsail / Docker / DigitalOcean 三种方式、OBS 推流、WebRTC 浏览器直播到 SRT 300ms 级低延迟直播的完整链路并深入当前仓库SRS 的 Go 语言实现 srsx源码与配置帮助你真正掌握这套开箱即用的视频流服务方案。为什么一键能成为现实媒体服务器之外的完整工程很多教程会教你怎么用 SRS 或 NGINX-RTMP 搭一个媒体服务器——但推流上来只是万里长征第一步。要建成一个面向公网的在线视频直播服务你还需要面对至少 8 个附加问题认证Authentication服务器拥有公网 IPv4 地址如何做鉴权如何阻止没有正确 token 的用户推流多协议支持除了用 OBS 推 RTMP你可能还需要 WebRTC 或 H5 网页推流如 OBS 的 WHIP 方案或者用支持 SRT 的广播设备推流。如何把 RTMP/WebRTC/SRT 统一转成 HLS 分发多平台转推Restreaming把一路直播同时转推到 YouTube、Twitch、Facebook 等平台扩大观众覆盖面。DVR 录制把直播流录制成 VoD 文件支持 Glob 过滤规则选择性录制并可对接 S3 云存储。转码Transcoding用 FFmpeg 做直播转码降低带宽成本适配不同网速和设备。虚拟直播Virtual Live Events用预录视频伪装成直播适用于电商、教育和在线演讲场景。IP 摄像头推流把 RTSP 摄像头流转发到 YouTube、Twitch 或 Facebook。AI 字幕转录基于 OpenAI Whisper 的实时字幕与多语言内容生成。听起来很复杂其实不然——对于开发者而言搭建确实困难需要流媒体工程、Node.js/Go 后端、前端管理页面等全套技能但对使用者来说基于开源方案 Oryx 加轻量云服务如 DigitalOcean、AWS一键就能完成。本仓库即 SRS 生态的 Go 语言实现Go 模块名srsx见 go.mod程序入口在 cmd/proxy/main.gointernal/proxy模块按协议拆分为 rtmp.go、srt.go、rtc.go、http.go 与 api.gointernal/lb提供基于 Redis 的负载均衡internal/rtmp实现 RTMP 协议与 AMF0 编解码amf0.go。教程所述的各种协议能力与鉴权、集群思路在该仓库中均有对应的模块化实现。准备工作你需要哪些东西开始之前请备齐以下三项OBS从官网下载并安装 OBS 推流软件。一台 VPS 云主机例如 AWS Lightsail、DigitalOcean Droplets或其他同类服务。可选Docker如果你打算在本地网络或个人电脑上运行 Oryx请提前安装 Docker。本教程全文使用your_public_ipv4和your_domain_name两个占位符请在实际操作时替换为你自己的公网 IP 与域名。Step 1三种方式一键创建 OryxOryx 提供三条部署路径按你的云环境任选其一即可。方式一AWS Lightsail 创建 Oryx注册并登录 AWS Lightsail 后点击Create instance创建实例。平台选择Linux/Unix蓝图选择OS Only镜像选择Ubuntu 20.04 LTS。点击Add launch script添加启动脚本粘贴以下脚本——实例创建完成后会自动执行并安装 Oryx/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/ossrs/oryx/HEAD/scripts/lightsail.sh)提示也可以先创建实例再登录到实例里手动执行该脚本。选择实例规格建议2vCPUs 1GB或更高配置点击Create instance。实例创建完成后进入Networking标签页点击Attach static IP绑定静态 IP避免公网 IP 漂移然后在IPv4 Firewall中点击Add rule添加一条All protocols规则并Create放行所有协议端口。至此 Oryx 已就绪浏览器打开http://your_public_ipv4/mgmt/首次访问点击Submit按钮设置管理员密码即可。方式二Docker 一键运行 Oryx如果你不想用 Lightsail或者手头有其它 VPS、虚拟机甚至本地电脑强烈推荐用 Docker 一条命令跑起 Oryxdocker run --restart always -d -it --name oryx -v $HOME/data:/data \ -p 80:2022 -p 443:2443 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \ ossrs/oryx:5各参数含义如下参数作用--restart always容器异常退出后自动重启保证服务可用性-v $HOME/data:/data将数据目录挂载到宿主机持久化配置、录制与日志-p 80:2022宿主机 80 端口映射到容器 2022HTTP 服务与管理入口-p 443:2443宿主机 443 端口映射到容器 2443HTTPS 服务-p 1935:1935RTMP 推流/拉流端口-p 8000:8000/udpUDP 媒体端口WebRTC-p 10080:10080/udpUDP 媒体端口SRT 默认监听这一端口布局与仓库 Dockerfile 中EXPOSE 1935 1985 8080 5060 9000 8000/udp 10080/udp的标准约定一致——除上述映射外SRS 容器镜像还保留了 1985HTTP API、8080HTTP 分发HLS/FLV、5060GB28181等内部端口。容器启动后同样打开http://your_public_ipv4/mgmt/点击Submit设置管理员密码。方式三DigitalOcean Droplets 一键创建 SRS DropletDigitalOcean 的 Droplet 是一种简单、可伸缩的云虚拟机而 SRS Droplet 就是预装了 Oryx 的 Droplet专门用于承载视频直播服务打开 DigitalOcean Marketplace 的 SRS 应用页面。点击Create SRS Droplet。设置 Droplet 的Region区域与Size规格建议选择2vCPUs 2GB或更大配置。点击底部的Create Droplet。创建完成后同样访问http://your_public_ipv4/mgmt/完成首次管理员密码设置。第一次访问初始化管理员密码无论采用哪种部署方式首次打开http://your_public_ipv4/mgmt/时都需要点击Submit设置管理员密码。这是 Oryx 管理后台的第一道安全关口设置完成后即可进入控制台配置推流、播放与各项功能。Step 2用 OBS 发布 RTMP 直播流OBS 使用简单SRS 官方提供了面向 OBS 的指引方式一在管理后台点击Scenarios Streaming RTMP: OBS or vMix方式二直接访问http://your_public_ipv4/mgmt/en/routers-scenario?tablive。页面会给出 OBS 需要的Server推流地址和StreamKey推流密钥把这两项复制粘贴到 OBS 的推流设置中即可。推流成功后你可以通过 H5 播放器链接用 HTTP-FLV 或 HLS 播放该流或用 VLC 直接打开流地址播放。注意VLC 延迟较大如果需要低延迟观看请改用ffplay播放 RTMP 或 HTTP-FLV。这里有一个关键安全点推流用的Stream Key中包含一个secret密钥它就是认证凭据。没有这个密钥SRS 会直接拒绝推流者——只有知道 secret 的人才能发布 RTMP 流。而播放 URL 是公开的、不含 secret因为一般不需要对播放端做认证。不过 SRS 规划了更多认证算法包括播放端 token、连接数上限、超时自动断开连接等能力。从仓库源码结构看RTMP 握手与协议解析由 internal/rtmp 实现rtmp.go、amf0.go推流鉴权与流分发逻辑位于 internal/proxy/rtmp.go 及配套的 bootstrap 流程internal/bootstrap这正对应文档中仅持有密钥者可推流的机制。Step 3WebRTC 浏览器推流可选WebRTCH5对普通用户非常友好只需打开一个 H5 页面就能像 OBS 一样调用摄像头开始直播无需安装任何插件。但WebRTC 强制要求 HTTPS因此你需要一个已注册的域名本教程使用占位符your_domain_name。准备工作两步走到域名注册商如 Namecheap、GoDaddy购买域名配置 DNS为your_domain_name添加一条A record指向你的服务器公网 IPyour_public_ipv4。然后在管理后台进入System / HTTPS / Lets Encrypt输入your_domain_name点击Submit即可免费申请 Lets Encrypt 的 SSL 证书。HTTPS 就绪后打开https://your_domain_name/mgmt进入Scenarios Streaming WebRTC: WHIP Browser打开页面给出的 URL即可用浏览器推流。注意开启 HTTPS 后网站与流地址全部切换为 HTTPS 协议包括 HTTPS-FLV、HLS 与 WebRTC。WebRTC 本身比 RTMP/HLS 复杂但在 SRS 的封装下HTTPS 站点、WebRTC 信令 API 以及推流/播放的演示页面都被大大简化使用起来非常直接。Step 4SRT 低延迟推流可选各协议延迟对比是选择低延迟方案的核心依据协议典型延迟RTMP / HTTP-FLV约 3~5 秒HLS约 5~10 秒SRT200ms ~ 500msWebRTC50ms ~ 300ms如果想做到 1 秒以内的低延迟直播WebRTC 虽然延迟最低但对设备支持要求苛刻、应用复杂度高WHIP 是 WebRTC 用于直播的一个草案协议但在 2022 年尚未成为 RFC普及仍需时间。相比之下SRT 是广播行业设备和软件OBS、vMix 等普遍支持的稳定方案是实现低延迟直播最稳妥、最便捷的路径。使用方式同样简单在管理后台点击Scenarios Streaming SRT: OBS or vMix按指引用 OBS 发布 SRT 流用 ffplay 播放OBS ffplay组合的端到端延迟约 300msvMix ffplay组合可以做到更低。两点补充WebRTC 延迟虽然比 SRT 更低但会引入更多卡顿pause事件画面流畅度不如 SRT。H5 浏览器不支持 SRT无法用 Chrome 直接播放 SRT 流Oryx 会把 SRT 自动转成 HTTP-FLV/HLS 来兼容常规播放器。仓库配套配置可直接对照SRT 服务配置见 srt.confSRT 转 TS 见 srt2ts.confSRT 转 WebRTC 见 srt2rtc.conf完整的生产参考配置在 full.conf。更多主题从单节点到集群Oryx 不止于此还有更多能力值得探索多平台转推Restreaming通过 fork 多个 FFmpeg 进程、每个进程负责一路流转推把直播同时转发到多个平台。DVR 录制把直播转成 VoD 文件需要把 VoD 文件保存到云存储相关云存储支持仍在持续演进。CMS 集成Oryx 正在考虑集成 CMS让用户发布直播房间或 VoD 内容如 vlog。集群能力Oryx 本身是单节点方案但 SRS 作为媒体服务器原生支持集群——包括 Origin 集群RTMP Origin Cluster、RTMP Edge 集群sample-rtmp-cluster以及基于 NGINX 的 HLS Edge 集群sample-hls-clusterSRS 与 NGINX 可以很好地协同工作。仓库中也有对应的集群配置示例如 origin.cluster.serverA.conf、origin-for-edge.conf 与 edge.conf。云服务不想自己搭直接用云SRS 社区的目标是建立一个非营利的开源社区打造一体化、开箱即用的直播与 WebRTC 在线视频开源方案。如果你不想从零搭建社区也提供了云服务详见 Cloud 文档其特色包括全球网络加速增强的拥塞控制算法覆盖全平台的客户端 SDK一定量的免费配额。总结在本教程中你仅用一键就完成了一个视频直播服务的搭建同时获得了认证、SRT、WebRTC 等实用能力。若想进一步深入了解 SRS可以从 安装与编译文档 和 入门示例 开始仓库中 trunk/conf 目录下提供了覆盖 HLS、SRT、RTC、集群、边缘等场景的现成配置trunk/3rdparty/srs-docs/blog 目录中还有更多主题化教程认证、WHIP、转推、录制、转码、虚拟直播、IP 摄像头、AI 转录等可以作为下一步实战的起点。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价