从浏览器录制网络摄像头视频并保存到本地文件系统

3
什么是从浏览器中记录网络摄像头视频到本地文件系统的最佳(和最简单!)方法?理想情况下,视频应以高清晰度录制,然后我们可以稍后使用ffmpeg将其转换为所需的格式和大小。
以下是我们研究过的一些内容:
1. 使用Flash流式传输到本地Red5服务器。但是我们在这里遇到了视频质量问题。
2. 使用JMF的Java小程序(我们是否可以从小程序中写入文件系统?)。我们听说这可能不是非常有效。它能处理高清吗?
3. 编写自定义Firefox插件。这会很困难吗?
基本上,这里最难的事情是控件需要嵌入到浏览器中。我们只需要一个框,其中显示用户的网络摄像头帧,然后一些Javascript钩子,以便我们可以在HTML页面中编码启动/停止按钮。
计算机完全受控制(它是一个信息亭),我们可以对其进行任何操作。我们只需要在浏览器中运行的解决方案。我们当前的应用程序在kiosk模式下在Firefox中运行,而网络摄像头录制仅是其中的一部分。

你有读取摄像头的任何功能代码吗? - Thorbjørn Ravn Andersen
这个问题更多是关于建议哪种技术进一步追求;我们想确保没有错过任何想法,或者社区是否有一些资源或链接可能会对我们有用。目前看来,Flash/Red5仍然是一个不错的选择,我们已经投入了一些时间来调整视频质量。 - chroder
4个回答

1
本地的Red5看起来是您最好的选择。无论您可能遇到什么质量问题,听起来都比其他选项更容易解决。
如果您想了解有关调整质量的信息,请访问Red5邮件列表;或者,如果您懂足够的Java,可以自己试一试。
有道理吗?

J


1

正如其他人所提到的,由于安全沙箱的限制,从浏览器向本地文件系统写入任何文件都非常困难。您使用Flash/Red5的解决方案是一个好的选择。

为了解决视频质量问题,Camera对象有一个名为setQuality的函数。根据您想要使用的捕获分辨率(使用Camera.setMode设置),使用一些压缩可能是值得的(出于与Web服务器使用压缩相同的原因)。您可以通过使用cam.setQuality(0,100)完全禁用压缩。如果我犯了错误,您还应该快速查看API

此外,就像Zárate提到的那样,这可能是Red5的配置问题。因此,如果在Flash中更改质量没有帮助,请检查Red5邮件列表


0
如果您仍在寻找解决方案,可以尝试以下方法:

https://framebase.io/

他们有一个录制小部件,当用户保存录制时,它会自动转码视频。一旦完成转码,您只需要进行API调用即可获取视频。


-2

如果您可以完全访问计算机,建议使用桌面应用程序来录制视频。对于 Web 应用程序而言,录制视频和本地存储都相对困难,我认为您的解决方案不会比桌面应用程序更具可移植性。


1
很遗憾,我们无法这样做。视频录制适用于从浏览器中运行的更大应用程序(在亭子模式下),我们不能打断工作流程来启动新应用程序或通过让用户来回切换等方式使其变得复杂。 - chroder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接