我想在我的 servlet 中显示连接到服务器的网络摄像头,我在许多网站上看到我可以使用 getUserMedia();但这只能获取用户的视频网络摄像头,而不是服务器上的视频网络摄像头。
我怎样才能做到这一点?我的 servlet 是用 Javascript 编写的
最佳答案
首先,我非常怀疑您的 servlet 是用 JavaScript 编写的。您确定我们不是在谈论 Java 吗?
您所描述的听起来像是您想要对网络摄像头进行直播。与视频点播相比,这是一项艰巨的任务,需要相当多的知识和经验。
我们不是在谈论从一个点到另一个点的流式传输(“单播流式传输”),而是一种多播流,其中有人可以打开网站并连接到该流。为此,您必须将网络摄像头的视频流发送到多播器,并以适合目标受众的方式进行编码。因此,基本上发生的事情是,您捕获网络摄像头的视频数据,将其编码为能够进行流式传输的格式,将其发送到多播器,多播器将流复制到连接到该多播器的每个客户端。该客户端可以是独立的媒体播放器(例如 Quicktime、VLC 或 WMP),也可以是嵌入网站的播放器。
简而言之,更具体一点,您必须执行以下操作:
- 捕获网络摄像头的输出并根据您的目标受众对其进行编码。 VLC是一个很好的工具。
- 设置一个多播器,例如优秀的 Darwin Streaming Server您将流发送到的位置。该服务器必须可公开访问。
- 创建通常由 Darwin Streaming Server 生成的流描述文件(rdp 文件)的链接。这会将客户端连接到流。另一种选择可能是在您的网站中嵌入播放器,这基本上是您的选择。
正确地做到这一点不仅是程序员的工作,也是许多系统管理员的工作。您必须进行一些带宽和容量规划、优化编码器、选择正确的编解码器等等。所有这些选择都很大程度上受到目标受众的类型和规模、直播目的等因素的影响。
关于java - 如何将服务器网络摄像头流式传输到 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23606176/