1. 在越南部署前先评估目标用户位置与延时:使用mtr或ping测试目标ISP。
步骤:sudo apt-get install mtr -y;mtr -rw 目标IP;记录平均延时和丢包。
2. 实例规格:优先选择1Gbps网络口、至少4核8GB内存起步,SSD或NVMe磁盘,IOPS≥3000为佳。
3. 带宽计费:选择按带宽包月或峰值计费对比,直播通常需保证上行稳定带宽。
2. 启用BBR提高吞吐:sudo modprobe tcp_bbr;echo "tcp_bbr" | sudo tee /etc/modules-load.d/bbr.conf;sudo sysctl -w net.core.default_qdisc=fq;sudo sysctl -w net.ipv4.tcp_congestion_control=bbr;并写入 /etc/sysctl.conf。
调整MTU和socket参数:sudo sysctl -w net.ipv4.tcp_mtu_probing=1;添加 net.core.rmem_max=67108864 net.core.wmem_max=67108864 到 sysctl.conf。
3. OBS推流建议:码率根据分辨率设置(720p:1500-3000kbps,1080p:3500-6000kbps),关键帧间隔设置为2s,使用x264或硬件NVENC,编码配置:preset=fast profile=high。
4. RTMP推流URL格式:rtmp://your-vn-server:1935/live/streamKey;保证防火墙放行1935 TCP或使用443端口作为备用。
4. 使用SRS示例快速部署:git clone https://github.com/ossrs/srs.git;cd srs/trunk;./configure && make;修改 conf/srs.conf,设置vhost为按需转HLS、HTTP-FLV和WebRTC。
5. Nginx-RTMP 配置片段:rtmp { server { listen 1935; application live { live on; record off; hls on; hls_path /tmp/hls; } } } 并确保nginx拥有足够worker_connections。
5. 使用FFmpeg做实时转码并生成多码率流:ffmpeg -i rtmp://localhost/live/stream -c:v libx264 -b:v 3000k -s 1280x720 -g 50 -c:a aac -b:a 128k -f flv rtmp://localhost/live/stream_720p (为每个档位重复)。
6. 生成HLS:在SRS或FFmpeg中开启hls_segment(一般2s切片),并确保nginx/HTTP服务器开启gzip与cache-control。
6. 使用CDN做外网分发:在越南优先考虑本地CDN提供商(如Viettel、FPT)或国际CDN(Cloudflare、Akamai)并启用流媒体加速。
配置要点:源站设置回源IP白名单、开启Token鉴权或时间戳防盗链、配置较短HLS缓存TTL以减少延迟。
7. 若需低于1s延迟,采用WebRTC:部署支持WebRTC的媒体服务器(SRS/WebRTC、Janus),配置TURN/STUN以穿透NAT。
步骤:生成SSL证书(Let's Encrypt),在服务器启用443端口并在SRS中开启rtc。确保带宽与CPU满足多路转发。
8. 监控关键指标:网络吞吐、丢包、CPU、内存、FFmpeg延迟、chunk生成时延。
实现:Prometheus + node_exporter + custom exporter(抓取SRS/NGINX指标),Grafana建仪表盘。设置基于出站带宽或并发流量的自动伸缩策略(使用云商API,预留模板镜像)。
9. 防护:启用云厂商DDoS基础防护,限制推流IP白名单或签名鉴权;配置WAF保护管理面板。
运维:定期快照备份、自动化部署脚本(Ansible/Terraform),并在越南多个可用区做热备。
10. 答:使用mtr/iperf3/ping定位:先用mtr看丢包在哪一跳,再用iperf3 -c 目标 -t 60 测带宽;若内网瓶颈用iftop观察流量,结合server日志确认是上行还是下行瓶颈。
11. 答:采用双轨策略:主轨使用HLS/HTTP-FLV做广覆盖与兼容(延迟2-6s),低延迟轨使用WebRTC或LL-HLS用于互动;并在推流端统一使用关键帧2s与合理码率。
12. 答:经常忽视的包括:未开启BBR或socket调优导致带宽未跑满、HLS切片过长导致延迟、CDN回源限速、推流端关键帧/码率设置不匹配。按照本文步骤逐项校验可显著提升体验。