Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用播放器播放java视频流_Java_Sockets_Servlets_Flow - Fatal编程技术网

使用播放器播放java视频流

使用播放器播放java视频流,java,sockets,servlets,flow,Java,Sockets,Servlets,Flow,我想使用Java将实时视频传输到播放器FlowPlayer、JW播放器等 我找到了一个示例,但它使用的是java servlet: Servlet代码: byte[] data = findingService.getVideo(params.id) response.setContentType("video/avi") response.setContentLength(data.length) println "length=${data.length}" byte[] content =

我想使用Java将实时视频传输到播放器FlowPlayer、JW播放器等

我找到了一个示例,但它使用的是java servlet:

Servlet代码:

byte[] data = findingService.getVideo(params.id)
response.setContentType("video/avi")
response.setContentLength(data.length)
println "length=${data.length}"
byte[] content = new byte[1024];
BufferedInputStream is = new BufferedInputStream(new ByteArrayInputStream(data));
OutputStream os = response.getOutputStream();
while (is.read(content) != -1) {
  println "... write bytes";
  os.write(content);
} 

is.close()
os.close()
流生成代码:

<a href="/finding/video.avi?id=99" style="display:block;width:215px;height:150px;" id="flowplayer_99">
<object width="100%" height="100%" id="flowplayer_99_api" name="flowplayer_99_api"  data="/swf/flowplayer-3.2.4.swf?0.1476281308569014" type="application/x-shockwave-flash">
<param name="allowfullscreen" value="true">
<param name="allowscriptaccess" value="always">
<param name="quality" value="high">
<param name="cachebusting" value="true">
<param name="bgcolor" value="#000000">
<param name="flashvars" value="config={"playerId":"flowplayer_99","clip":{"url":"/finding/video.avi?id=99"},"playlist":[{"url":"/finding/video.avi?id=99"}]}">
</object>
</a>
是否可以使用套接字而不是servlet来提供视频

有人能给我举一个使用java套接字或nio通道的例子吗


谢谢

您的情况有一个相当大的问题:您实际上不是流媒体,而是通过HTTP提供文件服务基本上与客户端本地下载并播放文件相同。要真正地流式传输内容,您应该使用像RTSP这样的适当协议,但手工实现这一点几乎是不可能的,这意味着要实现一个RTP服务器,这并不是一件小事;谷歌对于免费的JavaRSTP服务器,有几个。当然,你仍然可以使用HTTP,但手动实现也不是那么容易,而且也没有任何意义。我只想流式传输我从一个服务器上获取的Android屏幕截图,该服务器有一个通过USB连接到公众的Android设备。并使用Flow Player或类似工具向用户显示屏幕截图。有什么建议吗?多久拍一次截图?一个简单的刷新页面是不够的?没有伴侣。屏幕截图每10毫秒拍摄一次,我想把它们播放给用户,让他们感觉像一个视频。我尝试每隔500毫秒或更短的时间用ajax刷新页面,但它没有正确显示所有图像,伪视频序列似乎真的坏了!对于这样的问题没有立即的解决方案,我在过去也遇到过类似的问题,您可以使用像Xuggler这样的编码库;遗憾的是,Java对媒体编码的支持非常糟糕。例如,您可以将GStreamer用于管道。