【问题标题】:Save video captured from webcam using Flash使用 Flash 保存从网络摄像头捕获的视频
【发布时间】:2010-12-30 16:31:58
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: flash actionscript-3 video webcam


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,所以我了解到 Flash 无法从网络摄像头创建 10 秒的视频剪辑,然后将该视频文件发布到服务器。所以网络摄像头数据源就像一根消防水带,flash 无法装下它的sn-p; Flash 只能将流重定向到您的屏幕或特殊的流接收者,如 Red5 的 Flash Media Server。感谢您的信息!
    • 没错!当然,除非您使用将所有帧作为位图存储在内存中的解决方法(使用 BitmapData 类,它是 draw() 方法),然后将这些位图按顺序上传到服务器,在那里它们可以使用 ffmpeg 进行编码。
    【解决方案2】:

    我发现这个博客很有用。

    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 中不是最好的:)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多