我想在我的servlet中显示连接到服务器的网络摄像头,我在许多网站上读到我可以使用getUserMedia();但这只会让视频摄像头拍到用户,而不会拍到服务器。
我该怎么做呢?我的servlet是用Javascript编写的
首先,我非常怀疑您的servlet是用JavaScript编写的。你确定我们说的不是Java吗?
你的描述听起来像是你想做一个网络摄像头的实时流。与视频点播相比,这是一项艰巨的任务,需要相当多的知识和经验。
我们不是在谈论从一个点到另一个点的流("单播流"),而是一个多播流,有人会打开一个网站并连接到流。为了做到这一点,你必须将你的网络摄像头的视频流发送给多播机,并以适合目标受众的方式进行编码。所以基本上发生的事情是,你捕获你的网络摄像头的视频数据,将其编码为能够流的格式,将其发送给组播器,该组播器将流复制到连接到该组播器的每个客户端。这个客户端可以是一个独立的媒体播放器,如Quicktime, VLC或WMP或播放器嵌入到一个网站。
简言之,更具体一点,你必须这样做:
- 捕获网络摄像头的输出,并根据您的目标受众进行编码。VLC是一个很好的工具。
- 设置一个多播器,如优秀的达尔文流服务器,你发送的流。这个服务器必须是公共访问的。
- 创建一个流的描述文件(rdp文件)的链接,通常由达尔文流服务器生成。这将把客户端连接到流。另一种选择可能是在你的网站上嵌入一个播放器,这基本上是你的选择。
做好这个不仅是程序员的工作,也是很多系统管理员的工作。你必须做一些带宽和容量规划,优化编码器,选择正确的编解码器等等。所有这些选择在很大程度上受到目标受众的类型和规模、流的目的等因素的影响。