【发布时间】:2015-05-22 12:37:29
【问题描述】:
我正在尝试从控制器以字节为单位传递视频并在 jsp 上读取和播放它。它适用于大小小于 1 MB MB 的视频,但不适用于大于 1 MB 的文件。请帮我.. 这是我的控制器,它读取文件并将字节写入输出流。
@RequestMapping(value = "/playVideo", method = RequestMethod.GET)
@ResponseBody
public void home(Locale locale, Model model,HttpServletRequest request,HttpServletResponse response) throws IOException {
logger.info("Welcome home! The client locale is {}.", locale);
String filePath = "D://Uploads//s.mp4";
int fileSize = (int) new File(filePath).length();
response.setContentLength(fileSize);
response.setContentType("video");
FileInputStream inputStream = new FileInputStream(filePath);
ServletOutputStream outputStream = response.getOutputStream();
int value = IOUtils.copy(inputStream, outputStream);
System.out.println("File Size :: "+fileSize);
System.out.println("Copied Bytes :: "+value);
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
response.setStatus(HttpServletResponse.SC_OK);
}
这是我的jsp页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<video width="320" height="240" controls>
<source src="/elearningportal/playVideo" type=video/mp4>
</video>
</body>
</html>
【问题讨论】:
-
Tomcat 有最大帖子大小 (2MB) 的限制。请从谷歌检查它。
-
"适用于大小 >=1 MB 的视频,但不适用于大于 1 MB 的文件" 如果适用于 大小 >= 1MB 的视频,则适用对于大于 1MB 的文件。这是 >= 定义的一部分。
-
对不起,我的意思是小于 1 MB..:(
-
所以现在如果我想流式传输大于 2 MB 的视频我必须做什么?我更改了 maxPostSize="-1" 仍然无法正常工作......我该如何做缓冲之类的事情?什么是Red5服务器?我需要这个吗..?请回复..
-
这是一个 2 岁的线程,问题解决了吗?任何提示解决这个问题。我也面临类似的问题。
标签: java spring jsp spring-mvc