1.
概述与目标
说明目标:在香港机房的云服务器上实现高带宽视频直播(RTMP/HLS)与点播(VOD)稳定播放。小分段:(1)明确业务并发、带宽需求;(2)预估并发观众乘以码率得到出/入带宽;(3)准备测试工具:iperf3、ffmpeg、nginx、监控。
2.
购买与网络选择
步骤: (1)选择支持BGP或CN2直连的香港机房,优先选带宽峰值保证的线路;(2)购买独享带宽或包年带宽,确认上/下行分配;(3)询问运营商是否支持端口镜像和流量清洗防护。
3.
服务器规格与网卡设置
建议: (1)选择2.5G/10G网卡或增强型虚拟网卡,CPU至少4核+,内存视并发而定;(2)设置网卡参数:ethtool -K eth0 tx off rx off gso off gro off tso off(按需关闭);(3)调整网卡队列:echo 4 > /sys/class/net/eth0/tx_queue_len。
4.
操作系统与内核调优
具体命令: (1)开启BBR:echo "tcp_bbr" >> /etc/modules-load.d/bbr.conf; modprobe tcp_bbr; sysctl -w net.ipv4.tcp_congestion_control=bbr; (2)常用sysctl:sysctl -w net.core.somaxconn=65535; sysctl -w net.core.netdev_max_backlog=250000; sysctl -w net.ipv4.tcp_tw_reuse=1; sysctl -w net.ipv4.ip_local_port_range="10240 65535"; sysctl -w net.core.rmem_max=16777216; sysctl -w net.core.wmem_max=16777216。
5.
部署Nginx+RTMP(直播推流)
操作步骤: (1)安装依赖并编译nginx-rtmp模块;(2)示例配置(简化):rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; hls on; hls_path /mnt/hls; hls_fragment 4; } } };(3)设置worker_processes = auto,worker_connections >= 4096。
6.
HLS与点播(VOD)配置
要点: (1)开启HTTP服务并映射HLS目录,配置长缓存与CORS;(2)对点播文件使用切片工具或ffmpeg生成多个码率的HLS:ffmpeg -i in.mp4 -map 0 -c:v libx264 -b:v 2000k -s 1280x720 -f hls ...;(3)生成master.m3u8引用不同码率实现自适应。
7.
接入CDN与缓存策略
步骤: (1)将HLS切片路径接入CDN并配置回源缓存规则;(2)设置短时缓存(如2-10s)以保证直播延时与流畅的平衡;(3)为点播配置较长缓存并开启GZIP、静态文件压缩。
8.
压测与带宽验证
实操命令: (1)用iperf3做带宽测试:iperf3 -s(服务器端)和 iperf3 -c server_ip -P 10 -b 0(客户端并发流);(2)使用ffmpeg模拟并发推流:循环启动若干推流进程,观察CPU/带宽占用;(3)用真实播放器或phantomjs做并发拉流测试并记录丢包/卡顿率。
9.
监控、日志与自动扩缩
步骤: (1)部署Prometheus+Grafana采集网络、磁盘、nginx rt metrics;(2)设置告警阈值(丢包>1%、CPU>75%、带宽>80%);(3)结合负载均衡或编写自动扩缩脚本(实例自动化创建及流量切换)。
10.
常见故障与排查流程
方法: (1)出现卡顿先用ping/traceroute/iperf定位丢包或路由问题;(2)若CPU或网卡拥塞,检查中间队列、关闭GSO/GRO或提升网卡规格;(3)观察nginx error/access log和HLS切片是否生成及时。
11.
优化小技巧与生产化建议
建议:(1)把关键切片目录放在高速SSD并使用异步IO;(2)使用多机房镜像与Geo DNS降低区域波动风险;(3)对重要活动提前做全链路压测并预留30%-50%带宽冗余。
12.
问:在香港云服务器上如何优先保证上行推流的稳定性?
答:保证推流稳定性关键是选择独享高质量上行带宽、启用BGP/CN2优选链路、在OS层开启BBR并提升net.core参数,使用多路冗余推流(主备推流到不同机房或CDN回源)。
13.
问:直播延时如何在低延时与稳定性之间平衡?
答:通过调整HLS fragment(如2-4s)和cache时间、使用低延迟HLS或WebRTC对关键场景,结合CDN短时缓存,可在可接受的延时内最大化稳定性。
14.
问:点播高并发下载造成卡顿怎么办?
答:对点播使用CDN加速、分段并行下载、设置合理缓存头和开启HTTP/2或QUIC,必要时启用多节点分发与负载均衡,避免单服务器成为瓶颈。
来源:香港云服务器高带宽视频直播与点播稳定性优化实战指南