NetStream.publish()到AMS最终得到1kb文件

时间:2014-03-20 00:06:07

标签: actionscript-3 rtmp corruption netstream adobe-media-server

我正在使用Adobe Media Server 4.5和FLEX 4.6.0 sdk。

我有一个.swf应用程序通过RMTP连接到Adobe Media Server,从用户的网络摄像头和麦克风获取音频和视频输入,并执行NetStream.publish()将文件流式传输到服务器。当用户录制视频时,文件的大小会增加。有时,生成的文件最终会以1kb的大小结束。

造成这种情况的原因是什么?如何阻止它,或以其他方式结束会话并告知用户出现问题?

编辑:

可能有助于确定问题的其他一些问题/意见/意见:

这只发生1%的时间,而且我不确定我可以用什么来解决这个问题。在AMS生成的日志文件到期之前,我从未能够发现这种情况。

我的理论是当客户在某处失去联系时会发生这种情况。

只要NetStream正确发布,文件的大小就会增加。 如果文件没有增长,则应该意味着NetStream丢失了连接。看到文件是1kb,流在开始发布后必须立即丢失连接。

我还在Notepad ++中打开了文件并得到了这个:

FLV [SOH][NUL][NUL][NUL][NUL] [NUL][NUL][NUL][NUL]

另一个理论是某些东西有机会覆盖我的文件,但这不太可能

1 个答案:

答案 0 :(得分:1)

有同样的问题,但有0.001%的情况。

最常见的问题是因为麦克风。 需要在发布流之前检查麦克风。

另一个可能的问题:

  • 客户端中断流程 - NetStream.Record.Stop
  • 退出应用程序 - onDisconnect
  • Сlient禁用麦克风/摄像头
  • “FLV段缓存已满”

如果在服务器上调用onUnpublish事件,则可以发出警告。

我也在客户端使用publish ()方法之后使用计时器,如果在没有调用3-5秒NetStream.Record.Start事件后,客户端出现问题并且应该被阻止。< / p>