【发布时间】:2012-03-25 17:35:41
【问题描述】:
我一直在用 Java 编写一个小型网络摄像头程序,该程序从网络摄像头捕获图像,然后将视频源流式传输到带有套接字的另一个程序(在另一台计算机上)。
到目前为止,我确实流式传输视频,但速度约为 1-5 fps,而它应该能够以大约 30 fps 的速度进行流式传输
服务器通过 te 套接字发送一个带有 RGB 数据的 int 数组。代码如下所示:
客户/接收者
try{
Object o;
o = objInStream.readObject();
if(o != null){
if(o instanceof int[]){
videoFeed.setRGB(0,0,640,480,(int[]) o, 0, 640);
repaint();
}
}
}catch(Exception ex){
System.out.println("Error: " + ex.getMessage());
}
而发送者只是一个ObjectOutputStream:
outStream.send(图像);
然后线程休眠(10 毫秒)。
可以在此处观看该装置的视频:http://www.youtube.com/watch?v=esAMHOdoOUk 注意:视频中的版本只是向本地计算机显示图像。
【问题讨论】:
-
坦率地说,我不知道。我怎么知道?我刚刚做了以下事情: Socket s = new Socket(ip, port);
-
然后是 TCP。查找有关 UDP 套接字的教程。
标签: java performance sockets streaming webcam