【问题标题】:Very slow fps at webcam streaming网络摄像头流式传输的 fps 非常慢
【发布时间】: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


【解决方案1】:

您可能正在使用 TCP 套接字进行传输。 TCP 有很多相关的开销,所以它真的不适合快速视频流。

我建议您尝试使用 UDP 套接字,这是一种非常快速(尽管不可靠)的协议。

【讨论】:

猜你喜欢
  • 2013-05-14
  • 2014-06-18
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多