0

我有一个 ipcamera,只要有多个用户连接到它,它就会变得太慢。我正在考虑使用我的服务器从相机获取流,并且多个客户端应该能够从服务器而不是糟糕的 ipcamera 流。

我也设置了一个快速而肮脏的servlet,看看它是否有效:

@RequestMapping(value = "/", method = RequestMethod.GET, produces = "application/x-shockwave-flash")
public String getVideoStream(Locale locale, Model model, HttpServletRequest request, HttpServletResponse response) throws IOException {

logger.info("Start");

                       // An IPcamera stream example
URL url = new URL("http://www.earthcam.com/swf/ads5.swf");
URLConnection yc = url.openConnection();


OutputStream out = response.getOutputStream();
InputStream in = yc.getInputStream();
String mimeType = "application/x-shockwave-flash";  
byte[] bytes = new byte[100000];
int bytesRead;

response.setContentType(mimeType);

while ((bytesRead = in.read(bytes)) != -1) {
    out.write(bytes, 0, bytesRead);
}

logger.info("End");

我相信这可能会奏效,我现在的问题是:

bytesRead = in.read(bytes)

仅读取 61894 字节,仅此而已:(为什么会发生这种情况?我是否试图弄错流?

顺便说一句:我尝试使用 xuggler 执行此操作,但我遇到了一个不支持压缩 SWF 的错误。

谢谢

4

1 回答 1

0

您的代码运行良好。我刚刚从您的服务器获取 ads5.swf,它的长度确实是 61894 字节。您面临的问题是 SWF 文件只是电影播放器​​。下载后,播放器从服务器获取视频流。默认情况下(如果这是某种交钥匙流解决方案),它可能会尝试从 SWF 所在的同一服务器获取流。

于 2013-05-29T05:02:14.453 回答