1.
准备与选购
购买香港百兆独享带宽时,优先选择支持BGP/多链路直连的IDC。确认带宽为独享100Mbps、无峰值抖动承诺、并索取最近7天延迟与丢包监测报告。准备好服务器规格(CPU 4核以上、内存8GB+、SSD),并确保有公网IPv4地址与反向DNS。
2.
基础环境搭建
在Linux(推荐Ubuntu 20.04)上执行:apt update && apt install -y nginx ffmpeg iperf3 git。如果使用Nginx-RTMP:git clone https://github.com/arut/nginx-rtmp-module && 编译安装带模块的nginx。开机启用bbr:编辑/etc/sysctl.conf,加入net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr,然后sysctl -p。
3.
网络调优与测试
利用iperf3做吞吐与抖动测试:在服务器上运行iperf3 -s,在本地或监测点运行iperf3 -c <服务器IP> -P 10 -t 60。注意观察丢包率和带宽曲线。若有明显波动,与IDC沟通骨干链路或增加上游链路。
4.
RTMP/Nginx配置要点
在nginx.conf加入rtmp段:rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; hls on; hls_path /tmp/hls; hls_fragment 4s; hls_playlist_length 12s; } } }。重启nginx并确认1935端口对外开放(ufw或iptables规则)。
5.
编码器(OBS)与推流参数
OBS设置建议:分辨率根据观众带宽选择(720p/30fps 常用);码率控制在70%-80%带宽,如百兆独享上传可设置10-15Mbps(单路),关键帧间隔2s,编码器x264 preset:veryfast或faster以降低CPU负载;使用CBR或VBR+maxrate控制。
6.
点播(VOD)与转码策略
用ffmpeg离线转码多码率:ffmpeg -i input.mp4 -c:v libx264 -b:v 2500k -maxrate 2688k -bufsize 3750k -vf scale=1280:720 out_720.mp4,生成多分辨率并用HLS打包(ffmpeg -i ... -hls_time 4 -hls_list_size 0)。将HLS分片放到nginx静态目录并配置合理缓存与CORS。
7.
监控与告警(问1)
问:如何实时监控传输稳定性并设置告警?
8.
答:监控与告警实践(答1)
答:部署Prometheus采集节点导出器、rtmp/nginx-exporter和node-exporter,Grafana建面板监测带宽、丢包、延迟、CPU与内存。用Prometheus Alertmanager设置阈值:丢包>1%、延迟>100ms或带宽利用率异常时发短信/邮件。
9.
问:当观众量暴增导致抖动怎么办?(问2)
问:如何应对突发流量,保证直播不中断?
10.
答:弹性扩展与CDN策略(答2)
答:采用源站+CDN混合架构:直播源站只负责转码与生成多码率流,接入CDN做全网分发。遇到高并发,启用CDN回源缓存并横向扩容源站(增加推流接入层或使用云负载均衡),并在客户端启用自适应码流。
11.
问:如何做最终的性能验证?(问3)
问:有哪些具体测试步骤确认传输稳定性满足业务?
12.
答:性能验证步骤(答3)
答:1) 做并发推流/拉流脚本模拟真实并发;2) 用iperf3+ping长期监测丢包与延迟;3) 用SRT或RTMP拉流观察关键帧延迟与卡顿率;4) 分析日志(nginx/error/access、ffmpeg日志),若发现问题按丢包/带宽/CPU逐项定位并优化。
来源:传输稳定 香港服务器百兆独享 在直播和点播业务中的实际表现