使用Flash保存从网络摄像头捕获的视频
我想使用Flash从用户的网络摄像头捕捉视频,然后将其保存在承载Flash文件的同一服务器上。 网络服务器将运行ASP.Net技术。 看起来很简单,对吧?
很多搜索产生了相同的代码行,以使用Flash启动摄像头捕获。 我找不到将捕获的视频发送回服务器的任何内容。
我可以找到很多博客和论坛帖子,暗示第三方软件或Flash Communication Server需要在服务器上收集它,但我不明白为什么。
看起来Flash应该能够捕获一些视频并将其作为HTTP post发送到承载Flash文件的同一台服务器。 这是非常基本的Flash /网络摄像头功能,对吧? 看起来我们不需要引入第三方依赖关系。
有谁知道这些额外的示例ActionScript代码行可能隐藏在哪里?
你确实需要一个Flash Media Server(或者一个开放源码的替代品,例如Red5)才能够将视频从客户端传输到服务器,这实际上就是你想要在这里做的事情。 使用HTTP POST无法做到这一点。
但是,您可以在每帧中将视频显示对象绘制为位图,并使用常规HTTP文件上传即时上传这些位图。 虽然你可以想象,但从性能角度来看,这并不完美。 您还会遇到问题,因为Flash Player安全模型不允许您在没有用户启动操作的情况下上载文件(即,鼠标单击事件在堆栈跟踪中)。有办法解决这个问题,例如通过AMF服务将文件作为AMF ByteArray发送,但它可能不是未来的证明。
最后,对于任何类型的专业级应用程序,您肯定会想要加入Flash Media Server(或Red5)。您可以从中聘请这些服务的公司,其中一个例子是Influxis。 沿着这条路线,你将不必自己托管服务器(也就是Java)。
我发现这个博客有用。
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服务器(我的experienece)。我从来没有尝试过ffmpeg,因为我不是最好的PHP :)。
链接地址: http://www.djcxy.com/p/81019.html