java - 如何将服务器网络摄像头流式传输到 servlet

标签 java javascript servlets stream webcam

我想在我的 servlet 中显示连接到服务器的网络摄像头,我在许多网站上看到我可以使用 getUserMedia();但这只能获取用户的视频网络摄像头,而不是服务器上的视频网络摄像头。

我怎样才能做到这一点?我的 servlet 是用 Javascript 编写的

最佳答案

首先,我非常怀疑您的 servlet 是用 JavaScript 编写的。您确定我们不是在谈论 Java 吗?

您所描述的听起来像是您想要对网络摄像头进行直播。与视频点播相比,这是一项艰巨的任务,需要相当多的知识和经验。

我们不是在谈论从一个点到另一个点的流式传输(“单播流式传输”),而是一种多播流,其中有人可以打开网站并连接到该流。为此,您必须将网络摄像头的视频流发送到多播器,并以适合目标受众的方式进行编码。因此,基本上发生的事情是,您捕获网络摄像头的视频数据,将其编码为能够进行流式传输的格式,将其发送到多播器,多播器将流复制到连接到该多播器的每个客户端。该客户端可以是独立的媒体播放器(例如 Quicktime、VLC 或 WMP),也可以是嵌入网站的播放器。

简而言之,更具体一点,您必须执行以下操作:

  1. 捕获网络摄像头的输出并根据您的目标受众对其进行编码。 VLC是一个很好的工具。
  2. 设置一个多播器,例如优秀的 Darwin Streaming Server您将流发送到的位置。该服务器必须可公开访问。
  3. 创建通常由 Darwin Streaming Server 生成的流描述文件(rdp 文件)的链接。这会将客户端连接到流。另一种选择可能是在您的网站中嵌入播放器,这基本上是您的选择。

正确地做到这一点不仅是程序员的工作,也是许多系统管理员的工作。您必须进行一些带宽和容量规划、优化编码器、选择正确的编解码器等等。所有这些选择都很大程度上受到目标受众的类型和规模、直播目的等因素的影响。

关于java - 如何将服务器网络摄像头流式传输到 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23606176/

相关文章:

java - 如何访问 JSONObject、JSONObject 和 JSONArray 中的内容? Java/安卓

java - 如何修复谷歌云消息注册错误 : SERVICE_NOT_AVAILABLE?

hibernate - java.lang.ClassNotFoundException : org. hibernate .HibernateException

java - 如何从java servlet发送数据到android客户端

java - 试图解压缩 BC1 纹理压缩的扰乱 block

java - 如何测试 java.net.http (Java 11) 请求 BodyPublisher?

javascript - 如何在 XML View 中连接属性值

使用 scrollIntoView 的 JavaScript 平滑滚动效果

javascript - webrtc 仅一侧流媒体视频

java - 我怎么知道我的 html 链接是否从 Servlet 被点击?