java - JSP 视频流(使用 Servlet)

标签 java jsp video

我正在使用@BalusC图像servlet http://balusc.blogspot.com/2007/04/imageservlet.html在我的网站上提供图像。事实证明,这个 servlet 是通用的,因此它最终也可以提供文档(如 PDF 文件),但它似乎不太适合视频。我目前正在使用http://videojs.com作为重现视频的库。

我有两个网站,一个在 Amazon S3 上托管上传的文件,另一个在本地托管文件。当文件托管在 S3 上时,视频流工作正常(没有 servlet,您只需指向 video.js 的视频 url)

但是,当尝试流式传输本地存储的文件(因此需要 servlet)时,视频根本无法再现。

问题:

1) 创建 servlet 来传输视频是否可以接受?

2) 如果 1 为"is",为什么 servlet 不流式传输视频?

3) 如果 1 为否,我如何使用 JSP/Java 流式传输视频?

最佳答案

许多媒体播放器要求服务器支持所谓的 HTTP 范围请求。 IE。它必须能够根据请求返回媒体文件的特定字节范围 Range header 。例如,对于 10MB 长的文件,仅包含索引 1000 到 2000 处的字节。这对于许多媒体播放器来说是强制性的,以便能够足够快地跳过媒体流的特定范围和/或通过创建多个连接(每个连接请求文件的不同部分)来提高缓冲速度。

然而,servlet 中存在大量附加代码,需要充分了解 HTTP Range 规范。提供了一个可用的示例 file servlet由您找到的图像 servlet 的同一作者编写。

请注意,容器的内置默认 servlet 通常也支持此功能。因此,如果有机会,您也可以将媒体文件直接放入 Web 应用程序本身,或者将包含媒体文件的文件夹作为新的 Web 应用程序上下文添加到服务器配置中,以便可以通过 URL 直接使用它,而不需要对于本地开发的 servlet。

关于java - JSP 视频流(使用 Servlet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650285/

相关文章:

java - 禁用包含的 servlet 中的调度程序

javascript - 如何在控制台中播放和暂停 Youtube 视频?

java - 从 MySQL 数据库中获取插入行的索引

java - 将 spring-data-jpa 升级到 1.11.13.RELEASE order by throw 异常

Java ForkJoin Future 似乎提前完成

java - 在 JSP 中从 MySQL 数据库中获取值

java - MySQL 中的参数索引超出范围(1 > 参数个数,即 0)

java - 使用 HTML 表单文本输入框在 SQL 数据库中添加/编辑数据

video - 如何使用 tee 选项将参数传递给 ffmpeg 中的比特流过滤器?

video - 如何在 youtube api v3 的播放列表中动态加载最新的 youtube 视频?