15

我想使用 Flash 从用户的网络摄像头捕获视频,然后将其保存在托管 Flash 文件的同一服务器上。Web 服务器将运行 ASP.Net 技术。看起来很容易,对吧?

许多搜索产生了相同的代码行来使用 Flash 开始网络摄像头捕获。我找不到将捕获的视频发送回服务器的任何东西。

我可以找到很多博客和论坛帖子,暗示需要 3rd 方软件或 Flash Communication Server 才能在服务器上收集它,但我不明白为什么。

看起来 Flash 应该能够捕获一些视频并将其作为 HTTP 帖子发送到托管 Flash 文件的同一服务器。这是非常基本的 Flash/网络摄像头功能,对吧?似乎我们还不需要引入 3rd 方依赖项。

有谁知道这些额外的示例 ActionScript 代码行可能隐藏在哪里?

4

2 回答 2

15

您确实需要 Flash Media Server(或 Red5 等开源替代方案)才能将视频从客户端流式传输到服务器,这基本上就是您想要在此处执行的操作。使用 HTTP POST 无法做到这一点。

但是,您可以将您的视频显示对象绘制为每帧的位图,并使用常规 HTTP 文件上传动态上传这些位图。尽管您可以想象,从性能的角度来看,这并不完全理想。您还会遇到问题,因为 Flash Player 安全模型不允许您在没有用户启动操作的情况下上传文件(即,在堆栈跟踪中存在鼠标单击事件。)但是有一些方法可以解决这个问题,例如通过 AMF 服务将文件作为 AMF ByteArray 发送,但它可能不是未来的证明。

不过,最后,对于任何类型的专业级应用程序,您肯定会想要加入 Flash Media Server(或 Red5)。有些公司可以租用此类服务​​,例如Influxis。沿着这条路线走,您不必自己托管服务器(即 Java)。

于 2009-12-29T07:06:44.450 回答
0

我发现这个博客很有用。

http://www.zeropointnine.com/blog/updated-flv-encoder-alchem/ 此代码基于richardolsson 给出的答案。

我在我的项目中尝试了一次此代码,并且还成功地将 10 秒的视频上传到 Facebook。我写了一篇关于我的经历的详细博客。 http://www.logicmanialab.com/2012/10/upload-video-to-facebook-using.html

如果视频太长,此代码将中断或挂断浏览器。无论如何,值得一试。

除了保存视频的最佳方法是使用 Flash Media 服务器或 RED5 服务器(我的经验)。我从未尝试过 ffmpeg,因为在 PHP 中不是最好的 :)。

于 2013-12-27T06:09:14.957 回答