Ubuntu 22.04 LTS下SRS流媒体服务器一键部署指南(含OBS推流测试)
Ubuntu 22.04 LTS下SRS流媒体服务器极简部署与OBS推流实战流媒体技术正在重塑现代数字内容的分发方式。无论是企业在线会议、教育直播还是个人内容创作实时视频传输都成为刚需。作为一款轻量高效的流媒体服务器解决方案SRSSimple Realtime Server凭借其开源特性和多协议支持成为众多开发者的首选。本文将带你在Ubuntu 22.04 LTS上完成从零开始的一站式部署并通过OBS Studio实现专业级推流测试。1. 环境准备与依赖安装在开始部署前我们需要确保系统环境满足基本要求。Ubuntu 22.04 LTS作为长期支持版本提供了稳定的基础运行环境。建议使用至少2核CPU、4GB内存的云服务器或本地虚拟机存储空间不少于20GB。首先更新系统软件包并安装必要依赖sudo apt update sudo apt upgrade -y sudo apt install -y git build-essential gcc make pkg-config libssl-dev libpcre3-dev zlib1g-dev提示如果使用云服务器建议先配置安全组规则提前开放1935(RTMP)、8080(HTTP API)、1985(HTTP Server)等端口。验证基础工具链是否就位gcc --version make --version常见依赖问题排查表错误提示解决方案验证命令pkg-config not foundsudo apt install pkg-configpkg-config --versionOpenSSL development headers missingsudo apt install libssl-devopenssl versionPCRE library not foundsudo apt install libpcre3-devdpkg -l libpcre3-dev2. SRS服务器一键式部署传统源码编译方式需要处理各种依赖关系而SRS官方提供的快速安装脚本极大简化了这一过程。以下是经过优化的部署流程# 获取官方安装脚本 wget https://github.com/ossrs/srs/raw/develop/trunk/auto/install.sh chmod x install.sh # 执行自动化安装默认安装到/usr/local/srs sudo ./install.sh --with-ssl --with-hls --with-http-callback安装完成后系统会自动创建以下关键目录结构/usr/local/srs/ ├── conf/ # 配置文件目录 ├── objs/ # 可执行文件 └── logs/ # 运行日志启动服务并设置开机自启sudo systemctl start srs sudo systemctl enable srs验证服务状态systemctl status srs curl http://localhost:8080/api/v1/versions关键配置文件/usr/local/srs/conf/srs.conf的主要参数说明listen 1935; # RTMP默认端口 max_connections 1000; # 最大连接数 daemon on; # 守护进程模式 http_server { # HTTP服务配置 enabled on; listen 8080; dir ./objs/nginx/html; }3. OBS推流配置详解OBS Studio作为开源推流工具与SRS的配合堪称完美组合。下面展示专业级的配置方法下载安装OBSLinux用户sudo apt install obs-studioWindows/macOS用户从官网下载安装包场景与源配置创建新场景如LiveDemo添加视频捕获源摄像头或屏幕采集设置音频输入设备关键推流参数设置推流服务器rtmp://你的服务器IP/live 流密钥任意唯一标识如test123 视频编码H.264 码率2500 Kbps 关键帧间隔2秒 音频编码AAC注意局域网环境建议使用RTMP协议公网推流可考虑启用SRT协议提升抗丢包能力高级优化技巧启用动态码率适应网络波动设置CPU使用预设为veryfast配置音频采样率为48kHz性能调优对照表分辨率推荐码率CPU预设适用场景720p1500-2500Kbpsveryfast普通直播1080p4000-6000Kbpsfaster游戏直播4K8000-12000Kbpsmedium专业制作4. 全链路测试与监控完整的流媒体系统需要验证每个环节的可用性。以下是系统化的测试方案推流测试命令使用FFmpegffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -b:v 1500k -maxrate 1500k -bufsize 3000k -vf scale1280:720 -c:a aac -b:a 128k -f flv rtmp://localhost/live/stream1播放测试方法HTTP-FLV播放http://服务器IP:8080/live/stream1.flvHLS播放http://服务器IP:8080/live/stream1.m3u8WebRTC播放new RTCPeerConnection({ iceServers: [{urls: stun:服务器IP:1985}] })监控指标获取API# 获取服务器状态 curl http://localhost:8080/api/v1/summaries # 获取特定流信息 curl http://localhost:8080/api/v1/streams/stream1典型监控指标说明指标正常范围异常处理CPU使用率70%降低转码复杂度内存占用80%减少并发流数网络延迟3秒检查带宽瓶颈丢包率1%启用FEC保护5. 生产环境优化策略当系统需要承载真实业务流量时以下配置能显著提升稳定性日志轮转配置/etc/logrotate.d/srs/usr/local/srs/logs/*.log { daily missingok rotate 30 compress delaycompress notifempty sharedscripts postrotate systemctl reload srs /dev/null 21 || true endscript }安全加固措施配置HTTPS加密sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /usr/local/srs/conf/key.pem \ -out /usr/local/srs/conf/cert.pem启用鉴权模块vhost __defaultVhost__ { http_remux { enabled on; mount [vhost]/[app]/[stream].flv; auth { enabled on; publish your_publish_key; play your_play_key; } } }高可用架构建议------------- | CDN节点 | ------------ | ------------------------------ | | ------------ ------------ | 边缘服务器A | | 边缘服务器B | ------------ ------------ | | ------------ ------------ | 源站服务器 ---------------- 备份服务器 | ------------- -------------性能压测数据参考4核8G云服务器并发流数平均CPU负载内存占用建议配置5035%2.1GB720p1500kbps10068%3.8GB720p1500kbps20092%6.5GB需要水平扩展