插件窝 干货文章 FFmpeg推流失败提示“av_interleaved_write_frame(): Unknown error -10053”是什么原因?

FFmpeg推流失败提示“av_interleaved_write_frame(): Unknown error -10053”是什么原因?

服务器 FFmpeg 问题 RTMP 934    来源:    2025-03-16

FFmpeg 推流失败并提示“av_interleaved_write_frame(): Unknown error -10053”通常与网络连接问题有关。具体来说,错误代码 -10053 表示网络连接被远程主机强制关闭。以下是可能的原因和解决方法:


可能原因

  1. 网络连接不稳定

    • 推流过程中网络中断或不稳定,导致远程服务器主动断开连接。
  2. 服务器端问题

    • 推流的目标服务器(如RTMP服务器)可能拒绝了连接,或者服务器配置有问题(如超时时间过短)。
  3. 防火墙或安全策略

    • 本地防火墙或网络中的安全策略可能阻止了FFmpeg与远程服务器的通信。
  4. 推流地址或密钥错误

    • 推流地址(RTMP URL)或推流密钥(Stream Key)配置错误,导致服务器无法识别或接受推流。
  5. FFmpeg参数问题

    • FFmpeg的推流参数(如码率、分辨率、帧率等)设置不当,导致服务器无法处理。

解决方法

  1. 检查网络连接

    • 确保本地网络连接稳定,尝试使用 pingtraceroute 测试与目标服务器的连通性。
    • 如果是无线网络,尝试切换到有线网络。
  2. 检查推流地址和密钥

    • 确认RTMP URL和Stream Key是否正确。
    • 例如,RTMP URL格式通常为:rtmp://<server-address>/<app-name>/<stream-key>
  3. 调整FFmpeg参数

    • 降低码率、分辨率或帧率,避免服务器无法处理高负载。
    • 示例命令: bash ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -c:a aac -b:a 128k -f flv rtmp://<server-address>/<app-name>/<stream-key>
  4. 检查服务器配置

    • 如果使用的是自建RTMP服务器(如Nginx-RTMP),检查服务器日志,确认是否有错误信息。
    • 确保服务器配置允许接收推流,并且超时时间设置合理。
  5. 检查防火墙和安全策略

    • 确保本地防火墙或路由器未阻止FFmpeg的推流端口(默认RTMP端口为1935)。
    • 如果需要,临时关闭防火墙进行测试。
  6. 尝试其他服务器

    • 如果问题仍然存在,尝试推流到其他RTMP服务器(如YouTube Live、Twitch等),以排除服务器端问题。
  7. 更新FFmpeg版本

    • 确保使用的是最新版本的FFmpeg,旧版本可能存在兼容性问题。

调试建议

  • 使用 -loglevel debug 参数运行FFmpeg,查看详细的调试信息: bash ffmpeg -loglevel debug -i input.mp4 -f flv rtmp://<server-address>/<app-name>/<stream-key>
  • 检查输出日志,定位具体的错误原因。

通过以上方法,应该能够解决“av_interleaved_write_frame(): Unknown error -10053”的问题。如果问题仍然存在,请提供更多上下文信息(如FFmpeg命令、服务器配置等),以便进一步分析。