直播推流服务器搭建入门
发布时间:2025-10-17 14:59       
更新时间:2025-10-17 16:42
一台云服务器就能搭起完整的直播推流环境,开源流媒体服务器 SRS(Simple Realtime Server)是常见的起点。从小规模验证开始,链路通了再谈并发。
一、安装与启动
准备一台 Linux 服务器,安全组放行 1935(RTMP 推拉流)和 8080(HTTP 访问)两个端口;系统防火墙也要同步放行,只放一边是端口不通时最常被忽略的原因。从 SRS 项目主页获取源码包或对应系统的二进制包,二进制包最快,源码编译也不慢,普通两核机器几分钟完成:
cd trunk
./configure && make
启动服务:./objs/srs -c conf/srs.conf,日志在 ./objs/srs.log。生产环境建议注册成 systemd 服务托管,配好开机自启,别靠 nohup 顶着。
二、推流测试
服务器上放一个视频文件就能测试,用 ffmpeg 把它推上去:
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://服务器IP/live/stream1
-re 表示按原始帧率发送,模拟真实直播节奏;-c copy 不转码、直接转发;stream1 是流名,相当于频道号。用 OBS 这类推流软件时,服务器填 rtmp://服务器IP/live,串流密钥填 stream1,效果相同。推流端走公网时注意上行带宽,要大于码率的 1.5 倍,家用宽带的上行常常是短板。
三、拉流验证
在另一台机器或本机执行:
ffplay rtmp://服务器IP/live/stream1
画面出来、声音正常,链路即通。想确认流的技术参数,用 ffprobe 看一眼:
ffprobe rtmp://服务器IP/live/stream1
输出的码率、分辨率、编码格式与推流内容一致,说明没有意外的转码损耗。拉流卡顿先分清方向:推流端上行不足,还是服务端出口带宽不足,看服务端网络监控的出向流量就能判断。
四、延迟与并发预期
RTMP 方案的端到端延迟通常在 1 到 3 秒;HLS 切片方案更稳定但延迟更高,从数秒到十几秒不等,对延迟敏感的场景要研究 SRS 的 RTC 相关配置,配置里的 gop_cache 开关影响首帧速度,开了首屏快、延迟略增,按场景取舍。并发上限主要卡在带宽:按码率乘同时观看人数估算出口,2Mbps 的流支撑 500 人观看就需要约 1Gbps 峰值,超出单机能力就把分发交给 CDN,或者搭 SRS 集群。先小规模把链路和延迟调满意,完整录一场直播测试再评估要不要扩容。