我有存储在远程服务器中的图像文件(该文件夹中,即http://example.com/images).The图像得到以每100 1图像毫秒的速率更新于做动态地生成的图像的快速I/O 认为传送MJPEG图像 IP凸轮。无法将IP相机
我使用的Apache HTTP客户端API连接到我的远程服务器。我是获取内容的
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://example.com/images/screenshot.jpg");
HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
我结束了在输入流在BufferedInputSt中流以获得更快的I/O。但是由于图像的生成速度非常快,并且平均大小为250kb。
我想使用NIO功能,如FileChannel以及MemoryMappedBuffers 提高I/O性能以及在非阻塞模式下访问远程服务器上生成的图像文件。
但无论我看到的任何样本谈论创建FileInputStream/RandomAccessFiles以文件对象作为参数。
我得到的InputStream作为远程服务器的响应,我无法将其转换为FileInputStream以获取FileChannel。
我想知道是否有任何实现在Apache HTTP客户端API给出fileChannels。
或者我应该探索套接字来获得频道访问权限。 我也讨论过javax.imageIO,但不确定它是否能满足我对更快I/O的要求。
1)您的服务器和客户端之间的带宽是多少? 2)你可以开始传输从远程服务器(通过FTP,目录映射,无论)? – 2010-06-30 14:56:32
带宽约为1 mBps,我只能使用http。尽管ftp协议是由我的ip cam支持的,但它会以60秒为间隔将图像上传到ftp服务器。而且我无法控制上传速度。 其实我的网络摄像头嵌入了Linux和网络服务器,并传输h264流以及mjpeg图像。 我能够将图像下载到我的开发箱上的指定文件夹,但过程非常缓慢。 在我以前的经验中,我发现使用FileChannels完成的文件I/O大大提高了性能 – 2010-06-30 15:05:39