洛杉矶服务器推 TikTok 直播,怎么用 ffprobe 看推流码率和关键帧间隔是否达标
TikTok 直播对推流参数有严格要求:码率过低画面糊,关键帧间隔不对会导致观众端频繁卡顿。洛杉矶独立服务器 做 TikTok 直播推流中转,怎么确认 FFmpeg 输出的流参数是否达标?云数方舟 教你用 ffprobe 检测。
第一步:用 ffprobe 分析推流输出。在推流服务器上,如果有本地拉流地址(如 RTMP 本地回环),执行:ffprobe -v quiet -print_format json -show_streams rtmp://127.0.0.1/live/stream_key
关注以下字段:
– width / height:分辨率(TikTok 推荐 1080×1920 竖屏)。
– r_frame_rate:帧率(应 ≥ 30)。
– bit_rate:码率(应 3000-6000 kbps,过高会被 TikTok 降质)。
– has_b_frames:B 帧数(TikTok 建议 0-2,过多增加延迟)。
第二步:检查关键帧间隔(GOP size)。关键帧间隔是直播流畅度的核心参数。TikTok 要求关键帧间隔 ≤ 2 秒(即每 2 秒一个 I 帧)。用 ffprobe 详细模式:ffprobe -v verbose -show_frames rtmp://127.0.0.1/live/stream_key 2>&1 | grep "key_frame" | head -20
观察 key_frame=1 出现的间隔。如果间隔 > 2 秒(如每 4-5 秒一个关键帧),观众端切换清晰度或进入直播间时会黑屏很久。
第三步:正确的 FFmpeg 推流参数。ffmpeg -i input -c:v libx264 -b:v 4500k -maxrate 5000k -bufsize 10000k -g 60 -keyint_min 60 -c:a aac -b:a 128k -f flv rtmp://live.tiktok.com/...
关键参数解释:
– -g 60:每 60 帧一个关键帧(30fps × 2s = 60)。
– -keyint_min 60:强制最小关键帧间隔为 60 帧。
– -bufsize 10000k:缓冲区大小 = 2× 码率,防止码率波动。
– -maxrate 5000k:限制峰值码率,避免网络拥塞。
| 参数 | TikTok 要求 | 不达标后果 |
|---|---|---|
| 码率 | 3000-6000 kbps | 过低→画面糊;过高→被降质 |
| 关键帧间隔 | ≤ 2 秒 | 观众进房黑屏/卡顿 |
| 分辨率 | 1080×1920(竖屏) | 非竖屏→画面变形 |
| 帧率 | ≥ 30 fps | 低帧率→画面不流畅 |
| 编码 | H.264 | H.265 部分设备不支持 |
行动建议。在 洛杉矶独立服务器 上做 TikTok 直播推流中转时,推流前先用 ffprobe 验证输出参数,确保码率稳定在 4500k 左右、关键帧间隔 2 秒。如果关键帧间隔过大,在 FFmpeg 参数中加 -force_key_frames "expr:gte(t,n_forced*2)" 强制每 2 秒一个关键帧。记住:TikTok 直播的”卡顿”80% 是推流参数问题,不是网络问题——参数对了,洛杉矶到 TikTok 服务器的 30ms 延迟足够支撑高质量直播。
📌 查看云数方舟洛杉矶节点方案:
云数方舟官网 | 洛杉矶独立服务器
本文由 云数方舟 技术团队原创发布,转载请注明出处。