You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang joy4包rtmp_publish示例无法运行的问题求助

问题分析与排查建议

现象总结

  • 启动joy4的HTTP-FLV&RTMP示例服务器后,自定义的rtmp_publish.go无法向服务器发布FLV数据
  • 使用ffmpeg命令发布则成功,且可通过VLC播放流:
    ffmpeg -re -i projectindex.flv -c copy -f flv rtmp://localhost:1936/app/publish
    
  • 服务器日志差异:ffmpeg请求包含Accept和Parsing URL日志,rtmp_publish.go请求仅显示Accept日志

排查方向

  1. RTMP协议握手流程检查
    RTMP连接需要完成三次握手,rtmp_publish.go可能只完成了初始连接(对应Accept日志),但后续握手步骤缺失。对比ffmpeg的RTMP实现,确认是否正确发送了C0/C1/C2包,以及后续的连接、创建流等命令。

  2. URL解析与RTMP命令发送
    服务器日志中的Parsing URL说明ffmpeg正确发送了符合RTMP规范的URL解析请求,而rtmp_publish.go可能未正确构造或发送RTMP连接命令(如connect命令),导致服务器无法解析流路径,无法进入后续发布流程。

  3. FLV数据封装格式
    确认rtmp_publish.go输出的FLV数据格式是否符合RTMP传输要求:

    • 是否包含正确的FLV文件头(9字节)
    • 是否按顺序发送音频/视频标签,且标签头信息正确
    • 是否处理了时间戳的递增逻辑,避免时间戳异常导致服务器丢弃数据
  4. 日志与调试
    在rtmp_publish.go中添加详细日志,记录发送的每个RTMP包内容、握手状态、命令响应,对比ffmpeg的RTMP交互流程,定位缺失的步骤。

内容的提问来源于stack exchange,提问作者Kundera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:52:37