代码之家  ›  专栏  ›  技术社区  ›  a7drew

使用Flash保存从网络摄像机捕获的视频

  •  15
  • a7drew  · 技术社区  · 15 年前

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

    许多搜索都产生了相同的代码行,可以使用Flash启动网络摄像头捕获。我找不到任何可以将捕获的视频发送回服务器的内容。

    我可以找到很多博客和论坛帖子,暗示第三方软件或Flash通信服务器需要在服务器上收集,但我不明白为什么。

    似乎flash应该能够捕获一些视频,并将其作为HTTP发帖发送到托管flash文件的同一服务器。这是非常基本的闪光灯/网络摄像头功能,对吧?似乎我们还不需要引入第三方依赖关系。

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

    2 回复  |  直到 11 年前
        1
  •  15
  •   richardolsson    15 年前

    您确实需要一个Flash媒体服务器(或一个开源的替代方案,如Red5)才能 流动 从客户机到服务器的视频,这基本上就是您在这里要做的。使用HTTPPOST无法做到这一点。

    但是,您可以在每帧中将视频显示对象绘制为位图,并使用常规的HTTP文件上载来动态上载这些位图。尽管正如您所能想象的,从性能的角度来看,这并不完全是理想的。您也会遇到问题,因为Flash播放器的安全模式不允许您上传文件,而不需要用户启动操作(即,鼠标点击事件在堆栈跟踪中)。但有办法解决这个问题,例如,通过AMF服务将文件作为AMF bytearray发送,但这可能不是未来的证据。

    不过,最后,对于任何类型的专业级应用程序,您肯定希望合并一个FlashMedia服务器(或Red5)。有一些公司可以从中雇用此类服务,例如 Influxis .沿着这条路线走下去,你就不必自己主持服务器(它是Java)。

        2
  •  0
  •   harilalkm    11 年前

    我发现这个博客很有用。

    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 server或red5 server(我的经验)。我从未尝试过ffmpeg,因为它在php中不是最好的。