馊了的饭 - SRS
type: channel
link: https://sfwww.cn/tag/SRS/
items: 搭建SRS服务器

搭建SRS服务器
type: item
date: 2022-08-21T19:59:00+08:00
description: SRS（Simple Rtmp Server）是 MIT 协议的开源流媒体服务器项目。下载源码，推荐用 CentOS7 系统：git clone -b 3.0release https://gitee.com/ossrs/srs.git编译，注意需要切换到 srs/trunk 目录：cd srs/trunk ./configure make启动服务器：./objs/srs -c conf/realtime.conf检查 SRS 是否成功启动，可以打开：http://localhost:8080/或者执行命令：# 查看SRS的状态 ./etc/init.d/srs status # 或者看SRS的日志 tail -f ./objs/srs.log使用 OBS 串流：服务器: rtmp://localhost/live 串流密钥: livestreamRTMP低延时配置配置 SRS 为 Realtime 模式，使用 RTMP 可以将延迟降低到 0.8~3 秒。适合：视频会议实时直播对延迟要求不特别苛刻的场景详细配置参考：https://gitee.com/ossrs/srs/wikis/v3_CN_LowLatency假设服务器 IP：192.168.1.170第一步：获取 SRSgit clone https://github.com/ossrs/srs cd srs/trunk如果已经有代码：git pull第二步：编译 SRS./configure && make第三步：编写配置文件创建：conf/realtime.conflisten 1935; max_connections 1000; vhost __defaultVhost__ { tcp_nodelay on; min_latency on; play { gop_cache off; queue_length 10; mw_latency 100; } publish { mr off; } }第四步：启动 SRS./objs/srs -c conf/realtime.conf第五步：推流使用 FFmpeg：for((;;)); do \ ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \ -vcodec copy -acodec copy \ -f flv -y rtmp://192.168.1.170/live/livestream; \ sleep 1; \ done或 FMLE：FMS URL: rtmp://192.168.1.170/live Stream: livestream第六步：观看 RTMPRTMP 地址：rtmp://192.168.1.170/live/livestream⚠ 不建议使用 VLC（延迟很高）可以使用 SRS 在线播放器：http://ossrs.net/srs.release/trunk/research/players/srs_player.html分发方式比较互联网常见流媒体分发方式：RTMPHLSHTTP Stream其他较少用于互联网的方式：UDPRTSPP2PRTMP优点：实时性高（约 3 秒以内）支持加密（RTMPS / RTMPE）编码器支持广稳定性高易监控支持容错缺点：协议复杂CPU 占用高Cache 困难HTTPHTTP 本质是文件分发。优点：性能高穿防火墙能力强服务器生态成熟缺点：延迟高移动端原生支持较差HLSApple 提出的标准。优点：HTTP 传输iOS 原生支持兼容性好缺点：延迟高（10 秒以上）产生大量小文件推荐架构最佳实践：编码器 → RTMP流媒体接入 → RTMP内部分发 → RTMP播放：场景推荐PC直播（低延迟）RTMPPC直播（普通）RTMP / HLSPC点播HTTP / HLSiOSHLSAndroidHLS / RTMPHLS部署实例创建配置：conf/hls.conflisten 1935; max_connections 1000; http_server { enabled on; listen 8080; dir ./objs/nginx/html; } vhost __defaultVhost__ { hls { enabled on; hls_path ./objs/nginx/html; hls_fragment 10; hls_window 60; } }启动：./objs/srs -c conf/hls.conf推流：for((;;)); do \ ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv…