YouTube Live推流故障排查请求:FFmpeg运行异常问题
FFmpeg推流YouTube Live时13-15分钟出现连接异常排查
问题背景
我们使用FFmpeg进行YouTube Live推流,此前多次直播均运行正常,但近期一次直播在初始推流正常的情况下,运行13-15分钟左右出现异常中断。
错误日志
直播1(首次尝试)
ffmpeg [flv @ 0x555c4bdfe680] Failed to update header with correct duration. 2023-09-07T23:06:38.490+05:30
[flv @ 0x555c4bdfe680] Failed to update header with correct filesize. 2023-09-07T23:06:38.491+05:30
failed => rtmp://a.rtmp.youtube.com/live2/key......
2023-09-07T23:06:38.491+05:30
ffmpeg [tee @ 0x555c48843700] Slave muxer #1 failed: Broken pipe, continuing with 1/2 slaves.
直播2(第二次尝试)
Slave muxer #1 failed: Connection reset by peer, continuing with 1/2 slaves.
根本原因分析
- 连接中断类错误:
Broken pipe和Connection reset by peer是核心问题,指向FFmpeg与YouTube RTMP服务器的连接被意外终止,常见触发因素包括:- 本地网络波动:推流过程中上传带宽骤降、数据包丢失率过高,导致服务器判定连接超时并主动断开
- YouTube节点临时故障:推流目标的RTMP服务器节点负载过高或出现临时故障,主动重置连接
- tee muxer多目标冲突:若同时推流到多个目标,单个目标的连接异常会触发该提示,但日志显示剩余1个推流仍在运行,说明是特定YouTube推流节点的问题
- FLV头更新失败:
Failed to update header with correct duration/filesize是连接中断后的衍生错误,因RTMP连接断开后,FFmpeg无法向FLV容器写入完整元数据,并非根本诱因。
解决建议
- 网络稳定性排查:
- 推流期间持续监测本地网络上传带宽、丢包率,可使用
ping a.rtmp.youtube.com -t或traceroute工具跟踪链路状态 - 优先使用有线网络推流,避免无线信号干扰导致的连接不稳定
- 联系ISP确认是否存在网络节点临时故障或带宽限制
- 推流期间持续监测本地网络上传带宽、丢包率,可使用
- FFmpeg配置优化:
- 在推流命令中添加自动重试参数:
-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5,让FFmpeg在连接断开后自动重试 - 若使用tee muxer,检查推流URL及密钥是否正确,确认无拼写错误或密钥过期情况
- 升级FFmpeg至最新稳定版本,修复旧版本中可能存在的RTMP连接BUG
- 在推流命令中添加自动重试参数:
- YouTube侧调整:
- 登录YouTube直播后台查看推流状态,确认是否存在服务器端的警告或限制
- 尝试更换RTMP推流节点,例如将
a.rtmp.youtube.com切换为b.rtmp.youtube.com
内容的提问来源于stack exchange,提问作者kuldeep chopra
相关产品推荐
相关产品推荐

