
1. 如何将OBS对接直播推送CDN?
步骤一:在CDN控制台获取推流地址(如 RTMP 地址)和流名称/鉴权key;步骤二:打开OBS,进入“设置 -> 推流”,选择服务为“自定义”,在“服务器”填入 RTMP 地址(例如:rtmp://cdn.example.com/live),在“流密钥”填入流名称或Key;步骤三:设置输出参数(码率、分辨率、编码器),点击“开始推流”。
示例
服务器:rtmp://cdn.example.com/live;流密钥:stream_key_123
注意事项
确保使用正确的编码器(推荐x264或硬件编码)、与CDN要求一致的分辨率与码率,并开启关键帧间隔(GOP)与帧率一致。
常见问题排查
若OBS提示无法连接,检查防火墙、推流地址拼写、流密钥是否过期或被IP限制。
2. 使用FFmpeg如何推流到CDN?给出常用命令示例。
FFmpeg 支持多种推流协议(RTMP/SRT/HLS等),最常见是 RTMP 推流。基本命令如下,用于把本地视频或摄像头推送到CDN:
命令示例
ffmpeg -re -i input.mp4 -c:v libx264 -b:v 2500k -c:a aac -b:a 128k -f flv "rtmp://cdn.example.com/live/stream_key"
参数说明
-re 表示按真实速率读入;-c:v 指定视频编码器;-b:v/-b:a 分别为视频/音频码率;-f flv 指定输出格式以兼容RTMP。
推流高级示例(摄像头+麦克风)
ffmpeg -f dshow -i video="摄像头名":audio="麦克风名" -c:v libx264 -preset veryfast -b:v 2000k -g 50 -c:a aac -b:a 128k -f flv "rtmp://cdn.example.com/live/stream_key"
3. 推送CDN时常见的协议与端点该如何填写?
常见协议包括RTMP(低延时,常用于推流)、HLS(分段播放,主要用于分发)、SRT(可靠低延时传输)。CDN会在控制台提供对应的推流地址和播放地址,推流端填写推流地址+流键,播放端使用播放地址或播放列表(HLS 的 .m3u8)。
填写示例
RTMP 推流地址:rtmp://push.cdn.example.com/live,流键:stream_key;播放地址(HLS):https://play.cdn.example.com/live/stream_key.m3u8
鉴权与安全
很多CDN支持防盗链、签名鉴权、IP白名单,推流时需按CDN文档拼接签名参数或在控制台绑定IP/时间窗口。
跨域与端口
注意防火墙放行RTMP端口(默认1935),或根据CDN要求使用HTTPS/HLS端口(443)。
4. 在OBS与FFmpeg中如何设置码率、分辨率和关键帧以适配CDN?
合理配置可保证画质与兼容性:分辨率与码率应与目标分发带宽和观众终端匹配;关键帧间隔(GOP)常设置为2秒或帧率的倍数以保证播放器切片与CDN转码稳定。
推荐配置
720p(1280x720)常配 2500-4000kbps;480p配 800-1500kbps;关键帧间隔:gop=fps*2(例如,30fps -> -g 60)。
OBS 配置位置
设置 -> 输出 -> 推流编码器与码率;高级 -> 编码器配置可设置关键帧间隔(Keyframe Interval)。
FFmpeg 参数范例
使用 -b:v 2500k -maxrate 3000k -bufsize 5000k -g 60 来控制码率峰值与缓冲。
5. 推送CDN时如何优化延迟与稳定性(网络、重连、鉴权)?
提升稳定性和降低延迟的关键是网络质量、协议选择与重连策略。使用有线路由、固定带宽,优先选择低延时协议(RTMP/SRT),并在推流工具中开启自动重连与心跳。
网络优化
使用有线网络、QoS限速避免抖动,保证上行带宽 ≥ 推流码率的1.5倍。
重连与容错配置
OBS 设置 -> 高级 -> 自动重连;FFmpeg 可用 -reconnect 选项或用脚本监控并重启命令。
鉴权与安全策略
尽量使用短时签名或动态key,并结合CDN的鉴权策略避免被非法推流或中断。


